Grundlæggende XML og XML- baserede teknologier til textmodellering DTD 2. kursusgang (7/ )
Fra sidst Skemaer og validering DTD og gyldighed Interne og eksterne DTD’er Erklæring af elementer og elementtyper Erklæring af attributter og attributtyper Entiteter XML og data Øvelser
XML Hvad er XML? Hvordan repræsenteres XML-strukturen? Opmærkningstyper Elementer Attributter Velformede XML-dokumenter
XML - gyldighed Reglerne som definerer hvilke elementer og attributter der gælder for et eller flere XML- dokumenter, samt dokumentets hierarkiske struktur defineres i såkaldte skemaer og kaldes et vokabular Skemaerne giver muligheden for validering af XML-dokumenter. En XML-parser kan kontrollere at XML-dokumenter følger de regler specificeret i de skemaer de følger: gyldighed XML-dokumenter skal være velformede for at være gyldige (valid)
Gyldige dokumenter Er forbundet et eller flere skemaer (fx DTD’er eller XML-skemaer) Er velformede Er gyldige ifølge de angivne skemaer On line parsere: check.htmlhttp:// check.html
Typer af DTD’er interne: indlejret i XML-dokument …. eksterne SYSTEM PUBLIC
Public DTD DTD-navn: "(+|-)//Owner//DTD label //XX//"
Erklæring af elementer og elementtyper 1.Ekementer med indhold 2.Elementer uden indhold 1. fx
Eksempler Elementnavn=XML-navn: indeholder: bogstaver; tal; underscore ”_”,apostrof, punktum Starter med: bogstaver, _ XML-navne: bo, BO, bo3, _bo, bo’s, bo_3’s.NaVn, φεαν, طظعس, ikke XML-navne:.bo, 3bo, bo;3, b o._3
Elementer med indhold
Antal af elementer tegnene "?", "+", "*" efter elementnavn: " ?" elementet kan forekomme 0 eller 1 "+" elementet kan forekomme 1 eller flere gange "*" elementet kan forekomme 0, 1 eller flere gange
Blandede elementer (mixed elements) The Abrasion resistance indicates the ability of a construction element to resist mechanical abrasion such as foot traffic and wind blown particles which tend to progressively remove materials from exposed surfaces such as roofing the membranes
Elementer uden indhold (Empty elements) Tomme elementer erklæres således: fx
Attributter
Attributtyper CDATA: alle tekststrenge der er tilladt i XML NMTOKEN: name token (ingen mellemrum, ellers bogstaver, tal, -,.,og _. Ingen restriktioner på første tegn) NMTOKENS: flere name tokens adskilt af mellemrum Enumeration: list af name tokens (ntok1 |ntok2|ntok3|...|...) ID: et XML navn, ikke en NMTOKEN. Alle ID's i et dokument skal være forskellige IDREF: Refererer til ID'er (XML-navne).Bruges til at referere mellem elementer IDREFS: Liste af IDREF'er, adskilt af mellemrum ENTITY: Navnet på en ikke-parset entitet erklæret et andet sted i DTD'en ENTITIES: Liste af entities, adskilt af mellemrum NOTATION: Navnet på en "notation", en benævnelse
Attibut-default #IMPLIED: attributtet er optionelt fx XML #REQUIRED: attributtet er obligatorisk og der er ikke nogen default- værdi. fx XML #FIXED "default value": hvis attributtet ikke har en værdi, binder XML-parseren default-værdien til attributtet. Hvis værdien angives i XML-dokumentet dens værdi skal matche default-værdien. Literal : den aktuelle værdi er givet som en tekststreng
CDATA bla…bla
NMTOKEN bla…bla
Liste (Enumeration) …. bla…bla
ID og IDREF …
Notation & Entities <!ATTLIST billede type NOTATION (gif | jpeg) #REQUIRED kilde ENTITY #REQUIRED>
Entitettyper
Tegn-entiteter prædefinerede, > && ‘ ' “ " Nummererede: et tal angiver et tegn fx Cedilla (ç) er det 231. tal i Unicode: & #231; &#e7; Navngivne tegnentiteter: et tegn angives med et navn fx £ kan skrives £ Þ kan skrives som Þ
Mixed content entiteter: Syntaks: interne eksterne Interne generelle entiteter (erklærede i DTD) &writer;©right;
Eksterne generelle entiteter Syntaks: eller <!ENTITY copyright SYSTEM "entities/copyright.xml“ ©right;&footer;
Eksterne ikke parsede entiteter Der er ingen standard for hvad man skal referere til. Det er op til applikationen. En anden mulighed er at bruge "notations" til at specificere noget der ikke er et XML-navn.
Parameter-entiteter Parameter-entiteter ligner generelle entiteter, blot bruges der % istedet for &. De kan bruges i DTD'en (interne), mens generelle entiteter kun kan bruges i dokumentet. fx
Betinget inkludering IGNORE ]]> INCLUDE ]]>