FGS:er och deras tekniska regelverk
Karin Bredenberg, FGS funktionen
Standarder
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
XML Standarder (2003) men fortfarande aktuell
http://www.daisy.org/samples/daisypedia/bigpix.html 5
Kombinera XML-familjens medlemmar
Metadata standarder
• http://jennriley.com/metadatamap/
7
Mål: Skapa en svensk profil inte en ny standard
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
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!!!
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
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.
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 ’’
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)
XML-schema
21
Scheman
• XML-schema samt Relax NG i sina två smaker (DTD)
• https://www.w3.org/XML/Schema
• http://www.relaxng.org/
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
Kardinalitet
25 Relax NG
XML-schema (+DTD) FGS
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
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/
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
Snabbkurs i Schematron 2(5)
31
Snabbkurs i Schematron 3(5)
Snabbkurs i Schematron 4(5)
33
Snabbkurs i Schematron 5(5)
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
Textdokument
• Fokuserar vi inte på nu
• Vi tittar på anpassningarna av valideringsreglerna
37
Anpassningar i Schema
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 prohibited0 or 1 or another number
0 or unbounded or a number
Tillgängliga restriktioner för datatyperna
41
Attributvärdelista
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
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)
Schemat i sig tillåter 3(10)
• Mer kod
47
Schemat i sig tillåter 4(10)
• Än mer kod
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
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
Schemat i sig tillåter 8(10)
53
Schemat i sig tillåter 9(10)
Schemat i sig tillåter 10(10)
• Extra från FGS Paketstruktur
55
Anpassningar i Schematron
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
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?
Att implementera anpassningarna i XML- dokumentet
• 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
Elementvärdelista i EAC-CPF
• Användningen ser ut så här
63
Värdelistan använd
Egna attribut i METS 1(2)
• För att underlätta:
• Men, går givetvis att anropa schemat där det används
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
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
Binary64 i METS
• Man kan koda om filer till Base64
69
Egen XML i METS 1(3)
• För att underlätta
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
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
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
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)
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
Tack för uppmärksamheten!
Karin Bredenberg
ra-fgs@riksarkivet.se