FGS:er och deras tekniska regelverk 1
FGS:er och deras tekniska regelverk
Karin Bredenberg 2019-04-11
Standarder
2
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
FGS:er och deras tekniska regelverk 3
XML Standarder (2003) men fortfarande aktuell
http://www.daisy.org/samples/daisypedia/bigpix.html 5
Kombinera XML-familjens medlemmar
6
Metadata standarder
• http://jennriley.com/metadatamap/
7
Mål: Skapa en svensk profil inte en ny standard
FGS:er och deras tekniska regelverk 5
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
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!!!
FGS:er och deras tekniska regelverk 7
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
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.
FGS:er och deras tekniska regelverk 9
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
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)
FGS:er och deras tekniska regelverk 11
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
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
FGS:er och deras tekniska regelverk 13
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
26
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/
FGS:er och deras tekniska regelverk 15
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
Snabbkurs i Schematron 2(5)
31
Snabbkurs i Schematron 3(5)
FGS:er och deras tekniska regelverk 17
Snabbkurs i Schematron 4(5)
33
Snabbkurs i Schematron 5(5)
34
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
FGS:er och deras tekniska regelverk 19
Textdokument
• Fokuserar vi inte på nu
• Vi tittar på anpassningarna av valideringsreglerna
37
Anpassningar i Schema
38
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
FGS:er och deras tekniska regelverk 21
Tillgängliga restriktioner för datatyperna
41
Attributvärdelista
42
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
FGS:er och deras tekniska regelverk 23
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)
46
T.ex så här
Schemat i sig tillåter 3(10)
• Mer kod
47
Schemat i sig tillåter 4(10)
• Än mer kod
FGS:er och deras tekniska regelverk 25
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
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
FGS:er och deras tekniska regelverk 27
Schemat i sig tillåter 8(10)
53
Schemat i sig tillåter 9(10)
54
Schemat i sig tillåter 10(10)
• Extra från FGS Paketstruktur
55
Anpassningar i Schematron
FGS:er och deras tekniska regelverk 29
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
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?
FGS:er och deras tekniska regelverk 31
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
62
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
FGS:er och deras tekniska regelverk 33
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
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
FGS:er och deras tekniska regelverk 35
Binary64 i METS
• Man kan koda om filer till Base64
69
Egen XML i METS 1(3)
• För att underlätta
70
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
FGS:er och deras tekniska regelverk 37
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
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
FGS:er och deras tekniska regelverk 39
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
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
FGS:er och deras tekniska regelverk 41
Tack för uppmärksamheten!
Karin Bredenberg
ra-fgs@riksarkivet.se