FGS:er och deras tekniska regelverk Karin Bredenberg, FGS funktionen Standarder 2 FGS:er och deras tekniska regelverk 1
Standarder Det finns många standarder och ingen bild med alla på Det finns inte heller någon standard som gäller för allt 3 Lilla XML-familjen 4 FGS:er och deras tekniska regelverk 2
XML Standarder (2003) men fortfarande aktuell http://www.daisy.org/samples/daisypedia/bigpix.html 5 Kombinera XML-familjens medlemmar 6 FGS:er och deras tekniska regelverk 3
Metadata standarder http://jennriley.com/metadatamap/ 7 Mål: Skapa en svensk profil inte en ny standard https://imgs.xkcd.com/comics/standards.png 8 FGS:er och deras tekniska regelverk 4
Se det så här Utgångsläget är en internationell standard och dess utbytesformat (Det skapas en EU profil) Det skapas en nationell profil Det skapas en lokal profil 9 I systemen som sedan tar emot Finns inget i standarderna som säger hur systemen ska hantera informationen som överförs Finns inget i FGS:erna som säger hur systemen ska hantera informationen som överförs Systemtillverkarna implementerar mappning baserad på standard/fgs så att informationen hamnar på rätt ställe i systemet (egna element är utökande krav) 10 FGS:er och deras tekniska regelverk 5
extensible Markup Language aka. XML 11 XML Så att vi använder samma begrepp kommer en snabb genomgång/repetition https://www.w3.org/tr/2006/rec-xml11-20060816/ https://www.w3.org/tr/1998/rec-xml-19980210 En mogen 20 åring!!! 12 FGS:er och deras tekniska regelverk 6
Allra första raden <?xml version="1.0" encoding="utf-8"?> eller <?xml version="1.0" encoding= ISO-8859-1"?> Är XML deklarationen Talar om version samt teckenkodning UTF-8 = Unicode Transformations Format åtta-bitars ISO-8859-1 = Latin-1/West European character set 13 Ett XML-dokuments innehåll Första raden XML <note> eller <mets:mets> eller <ead> osv. Rotelementet i dokumentet. Dvs. vad är jag, vad beskriver jag Rader emellan Alla möjliga barnelement Sista raden </note> eller </mets:mets> eller </ead> osv. Rotelementets slut i dokumentet. Dvs. här tar jag slut. 14 FGS:er och deras tekniska regelverk 7
Regler 1(2) Allt som har en början måste ha ett slut! <start>min start har ett slut men det heter start</start> Skiftlägeskänsligt, name, Name och NAME tre olika element. Nästling måste avslutas på rätt sätt. Rätt <text><fetstil>fetstils text</fetstil></text> Fel <text><fetstil>fetstils text</text></fetstil> Det måste finnas ett rot-element. Någon som är förälder till alla följande element. Attribut värden skrivs inom eller 15 Regler 2(2) Vissa tecken har en speciell mening och måste skrivas med en entitets referens istället. < < less than > > greater than & & ampersand ' apostrophe " quotation mark Kommentarer har sitt eget skrivsätt <!-- Detta är en kommentar--> Mellanslag (White-space) bevaras. Skriver man 10 mellanslag är det tio mellanslag. Ny rad (returslag) sparas som LF (Line-feed) 16 FGS:er och deras tekniska regelverk 8
Element Kan innehålla andra element Kan innehålla text Kan innehålla båda Kan ha attribut Namnregler för element: Kan innehålla bokstäver, siffror och andra tecken Kan inte börja med nummer eller skiljetecken Kan inte börja med bokstäverna xml Kan inte innehålla mellanslag 17 Attribut Extra/utökande information Innehåller ofta något som inte är del av datat men kan vara viktigt för den som ska manipulera datat Måste ha eller ID Är en speciell XML typ som har egenskapen att det bara får finnas en med det värdet i hela dokumentet. Ett ID får inte börja på en siffra. 18 FGS:er och deras tekniska regelverk 9
Well-formed XML Följer reglerna och har korrekt XML syntax Repetition -Rotelement -Sluttagg -Skifteskänslig -Nästlade på rätt sätt -Attribut med eller 19 Validerad XML Well-formed Följer och uppfyller regler i en dtd eller ett schema (avsett schematyp) 20 FGS:er och deras tekniska regelverk 10
XML-schema 21 Scheman XML-schema samt Relax NG i sina två smaker (DTD) https://www.w3.org/xml/schema http://www.relaxng.org/ 22 FGS:er och deras tekniska regelverk 11
Vad är Schemat? Oavsett XML-schema, Relax NG, DTD gäller att det är: Regeluppsättningen som styr vilka element och attribut som är tillåtna i XML-dokumentet Anger kardinalitet Kan ange värdelistor 23 Dvs. XML-schemat definierar: Element som kan finnas i ett dokument Attribut som kan finnas i ett dokument Vilka element som är barnelement Ordningen på barnelement (eventuell ordning) Antal barn element Om ett element är tomt (endast innehåller barn eller attribut) eller kan innehålla text och barn eller attribut Datatyp för element och attribut Förvalda eller fixerade värden för element och attribut 24 FGS:er och deras tekniska regelverk 12
Kardinalitet FGS XML-schema (+DTD) Relax NG 25 XML-schema Och så är det ju en hel massa mer men ni ska i undantagsfall utveckla scheman så vi går vidare redan nu med annat 26 FGS:er och deras tekniska regelverk 13
Schematron 27 Schematron Scheman kan dock inte hantera alla typer av önskade valideringar Schematron är regler som ej går att uttrycka med ett schema dvs du kan med hjälp av regler testa element, attribut och innehåll på ett mer explicit sätt Kräver en Schematron processor för att fungera Är en ISO standard, ISO/IEC 19757-3 http://schematron.com/ 28 FGS:er och deras tekniska regelverk 14
Snabbkurs Schematron?! Ska vi hoppa över de kommande bilderna? -Näe, vi behöver en gemensam grund och gemensamma begrepp 29 Snabbkurs i Schematron 1(5) Assertions det som ska testas samt beskrivning av förhållande/läge/status som man vill få vetskap om Messages vad du får tillbaka när ett test lyckas eller misslyckas Rules testerna samlas i regler som gäller för specifika XML element (kontext) Patterns regler grupperas in i familjer som kallas mönster Phases Aktiverar olika mönster vid olika tillfällen 30 FGS:er och deras tekniska regelverk 15
Snabbkurs i Schematron 2(5) 31 Snabbkurs i Schematron 3(5) 32 FGS:er och deras tekniska regelverk 16
Snabbkurs i Schematron 4(5) 33 Snabbkurs i Schematron 5(5) 34 FGS:er och deras tekniska regelverk 17
Anpassningar 35 Vi har en FGS Vi ska anpassa standarden till en FGS:en för vår nationella användning alt. en lokal anpassning Vad behöver göras? Ett dokument som beskriver anpassningen: [Ansvarig för anpassningen] av FGS [Informationstyp] för [Syfte och användningsområde för anpassningen] Valideringsregler som följer anpassningen En ändrad regeluppsättning till exempel ett ändrat XML-schema Ett nytt Schematron dokument 36 FGS:er och deras tekniska regelverk 18
Textdokument Fokuserar vi inte på nu Vi tittar på anpassningarna av valideringsreglerna 37 Anpassningar i Schema 38 FGS:er och deras tekniska regelverk 19
Anpassningar Olika möjligheter Bra och dåliga. Här fokus på XML-schema men motsvarande finns i Relax NG Jag använder scheman från FGS:erna som exempel; FGS Paketstrukturs METS XML-schema, FGS Arkivredovisning (Verksamhetsbaserad) s EAC-CPF XML-schema, Draft (utkast) för ERMS 39 Ändra kardinalitet optional or required or prohibited 0 or 1 or another number 0 or unbounded or a number 40 FGS:er och deras tekniska regelverk 20
Tillgängliga restriktioner för datatyperna 41 Attributvärdelista 42 FGS:er och deras tekniska regelverk 21
Elementvärdelista 43 Bättre lösning för värdelistor och kardinalitet Att implementera Schematron så man inte påverkar original scheman från standarderna Håller på att bli rekommendationerna från standardgrupperna Värdelistor går att hämta från externa källor, till exempel som EAD3 hämtar landskoder 44 FGS:er och deras tekniska regelverk 22
Schemat i sig tillåter 1(10) Att lägga till egna attribut från valfritt schema Det egna attribut schemat (ser ut som vilket schema som helst ) 45 Schemat i sig tillåter 2(10) Att lägga till egna element via att det finns ett element som skapar ett nytt element (elementen kan heta vad som helst och se ut hur som helst) T.ex så här 46 FGS:er och deras tekniska regelverk 23
Schemat i sig tillåter 3(10) Mer kod 47 Schemat i sig tillåter 4(10) Än mer kod 48 FGS:er och deras tekniska regelverk 24
Schemat i sig tillåter 5(10) Binär data (elementet kan heta vad som helst) 49 Binär data aka. Base64 Base64 är ett format som endast innehåller tecknen: A-z, a-z, 0-9 samt + och / där = används som en speciell suffix kod. Filkonverteringen medför att den konverterade filens storlek ökar med cirka 1/3. Alltså kommer XML-dokumentets totala storlek om man bäddar in alla filer att bli summan av filernas storlek gånger en och en tredjedel. När man sedan vill få fram informationen från den/de inbäddade filerna så måste man göra om konverteringen så att det blir ursprungsformatet igen. Detta kräver att man vet vilket format (filändelse) som filen/filerna ursprungligen haft. (Hur hanterar man detta?!) 50 FGS:er och deras tekniska regelverk 25
Schemat i sig tillåter 6(10) XML-data (elementet kan heta vad som helst) 51 Schemat i sig tillåter 7(10) Anpassning? Referering till en annan fil tex XML dokument. Elementet kan se ut hur som helst och heta vad som helst 52 FGS:er och deras tekniska regelverk 26
Schemat i sig tillåter 8(10) 53 Schemat i sig tillåter 9(10) 54 FGS:er och deras tekniska regelverk 27
Schemat i sig tillåter 10(10) Extra från FGS Paketstruktur 55 Anpassningar i Schematron 56 FGS:er och deras tekniska regelverk 28
Anpassningar/regler i Schematron Att anpassa med sina egna regler gör man i ett eget Schematron- Schema/dokument Repetition Det går att göra avancerade regler som behöver uppfyllas för den egna anpassningen Det går att säga att om värdet i detta element/attribut är X måste detta element/attribut finnas 57 De egna Schematron reglerna 58 FGS:er och deras tekniska regelverk 29
Att utöka antalet Schematron anpassningar/regler I detta exempel utökas de regler som finns i EAD3 med FGS:ens regler I detta exempel utökas FGS:ens regler samt EAD3 reglerna med den egna anpassningens regler 59 Hur ser anpassningarna ut i XML-dokumenten? 60 FGS:er och deras tekniska regelverk 30
Att implementera anpassningarna i XMLdokumentet Vi använder METS, EAD3 och EAC-CPF som exempel 61 Attributsvärdelista i METS Användningen ser ut så här Värdelistan använd 62 FGS:er och deras tekniska regelverk 31
Elementvärdelista i EAC-CPF Användningen ser ut så här Värdelistan använd 63 Egna attribut i METS 1(2) För att underlätta: Men, går givetvis att anropa schemat där det används 64 FGS:er och deras tekniska regelverk 32
Egna attribut i METS 2(2) I XML ser det ut så här 65 Egna element i draft ERMS 1(3) Ett element med värde samt ett attribut 66 FGS:er och deras tekniska regelverk 33
Egna element i draft ERMS 2(3) Ett element med värde samt ett attribut samt ett underelement 67 Egna element i draft ERMS 3(3) Ett element med flera element av samma typ 68 FGS:er och deras tekniska regelverk 34
Binary64 i METS Man kan koda om filer till Base64 69 Egen XML i METS 1(3) För att underlätta 70 FGS:er och deras tekniska regelverk 35
Egen XML i METS 2(3) För att underlätta ser i XML ut så här 71 Egen XML i METS 3(3) Går även att där man vill använda den andra XML-en att anrop schemat och det ser i XML-en ut så här 72 FGS:er och deras tekniska regelverk 36
Referera till en fil 1(2) Olika mängd information till en filreferens följande FGS Paketstruktur 73 Referera till en fil 2(2) Filreferenser följande EAD3 74 FGS:er och deras tekniska regelverk 37
Att använda Schematron 1(4) Att implementera användningen av Schematron kräver implementering och användning av en Schematron processor Ser olika ut i alla programmeringsspråk Fungerar ibland direkt i en XML-editor (oxygen vet jag om) 75 Att använda Schematron 2(4) När använder Relax NG 76 FGS:er och deras tekniska regelverk 38
Att använda Schematron 3(4) När använder XML-schema 77 Att använda Schematron 4(4) Validering visar egna meddelanden (från oxygen) 78 FGS:er och deras tekniska regelverk 39
Källor 79 Källor Vissa ihop med sin bild annars: Introduktion till förvaltningsgemen-samma specifikationer (FGS) Beginning XML, 4th Edition (Programmer to Programmer), David Hunter, ISBN 0470114878 / 9780470114872 XML Family of Specifications A Practical Guide, Kennet B. Sall, ISBN 0-201-70359-9 http://www.mulberrytech.com/papers/schematron-philly.pdf https://cryptii.com/binary/base64 80 FGS:er och deras tekniska regelverk 40
Tack för uppmärksamheten! Karin Bredenberg ra-fgs@riksarkivet.se FGS:er och deras tekniska regelverk 41