Had jij altijd al willen weten wat XML is? Of behoor je tot de mensen, waar ik me in het verleden ook onder schaarde, die dachten dat dit weer een commerciële truuk is, die nog in de kinderschoenen staat van de grote firma MicroSoft, om de markt een verbeterde standaard te brengen? Nu, dan is deze cursus precies wat jij nodig hebt.
In deze cursus van zeven delen, gaan we alleen de basis behandelen. We gaan kijken waar XML nu vandaan komt, wat SGML is, hoe je van HTML naar XML gaat en wat XML is. Dan gaan we XML pagina's maken en we gaan ook de koppeling zien van XML en CSS. Aan het eind van deze cursus kan je dan ook een echte webpagina maken met dynamische inhoud.
XML deel 5 Document Type Definition (DTD) vervolg.
We gaan verder met de DTD, we gaan elementen overlopen en toevoegen.
Elementen:
Elementdeclaratie:
- Syntax:
<!ELEMENT naam toegelaten_inhoud>
Een paar voorbeelden:
<!ELEMENT boodschap (#PCDATA)>
<!ELEMENT figuur EMPTY>
Welke inhoud willen we toelaten:
#PCDATA
-Parsed Data Character Data ("tekst zonder opmaak")
EMPTY
-Het element heeft geen inhoud (leeg element)
ANY
-De inhoud van het element mag alles zijn wat geldig is.
-Wordt meestal gebruikt als we nog niet weten wat de inhoud precies is.
Child-elementdeclaratie:
Kind-element(en) - Children element(s)
Ouder-element(en) - Parent element(s)
- Elementen die geplaatst worden in andere elementen noemt men een kind-element.
- De elementen waarin kind-elementen worden geplaatst, heten ouder-elementen.
Gemengde inhoud
- inhoud is een combinatie van #PCDATA en kind-elementen
Zie voorbeeld vb05.
- In een ouder-element geven we op welke kind-elementen het bezit.
- In het vorige artikel hebben we al twee voorbeelden gezien met een ouder en kind-elementen
- In de volgende regels moet het kind-element gedeclareerd worden.
- Syntax:
<!ELEMENT oudernaam (kind-element)>
<!ELEMENT kind-element
toegelaten_inhoud>
Voorbeeld:
<!ELEMENT student (stamnummer)>
<!ELEMENT stamnummer (#PCDATA) >
Meerdere kinderen definiëren:
- We kunnen meerdere kind-elementen definiëren, we hebben de volgende opties:
- Een reeks van kind-elementen:
- In een ouder-element kunnen we meerdere kind-elementen definiëren.
- In de volgende regels moeten dan de kind-elementen gedeclareerd worden.
- De kind-elementen moeten opgegeven worden in volgorde met telkens een komma ertussen.
- Syntax:
<!ELEMENT oudernaam (kind-element1, kind-element2,…)>
<!ELEMENT
kind-element toegelaten_inhoud>
Voorbeeld:
<!ELEMENT student(stamnummer, naam, voornaam)>
<!ELEMENT stamnummer
(#PCDATA)>
<!ELEMENT naam (#PCDATA)>
<!ELEMENT voornaam
(#PCDATA)>
Een optioneel kind-element:
- Optioneel: het kind-element komt 0 of 1 keer voor.
- Om aan te geven dat een kind-element optioneel is moeten we er een vraagteken bij plaatsen.
- Syntax:
<!ELEMENT oudernaam (kind-element?)>
<!ELEMENT kind-element
toegelaten_inhoud>
Voorbeeld:
<!ELEMENT student(kotstudent?)>
<!ELEMENT kotstudent (#PCDATA)>
In XML (bijvoorbeeld):
<student>
<kotstudent> … </kotstudent>
</student>
Zie voorbeeld vb01.
0 of meer kind-elementen:
Om aan te geven dat een kind-element 0 of meerdere keren mag voorkomen, plaatsen we een asterisk (*).
- Syntax:
<!ELEMENT oudernaam (kind-element*)>
<!ELEMENT kind-element
toegelaten_inhoud>
Voorbeeld:
<!ELEMENT student(cursus*)>
<!ELEMENT cursus (#PCDATA)>
In XML (bijvoorbeeld):
<student>
<cursus> HTML </cursus>
<cursus>
JavaScript </cursus>
<cursus> XML
</cursus>
</student>
Zie voorbeeld vb02.
1 of meer kind-elementen:
Als er altijd minstens één kind-element aanwezig moet zijn, kunnen we dit noteren door een plusteken (+).
- Syntax:
<!ELEMENT oudernaam (kind-element+)>
<!ELEMENT kind-element
toegelaten_inhoud>
Voorbeeld:
<!ELEMENT student(cursus+)>
<!ELEMENT cursus (#PCDATA)>
Zie voorbeeld vb03.
Kiezen tussen kind-elementen:
Als we een keuze willen programmeren, doen we dit door een verticale streep (|) tussen de 2 of meerdere kinderen te plaatsen.
- Syntax:
<!ELEMENT oudernaam (kind-element1 | kind-element2)>
<!ELEMENT
kind-element1 toegelaten_inhoud>
<!ELEMENT kind-element2
toegelaten_inhoud>
Voorbeeld:
<!ELEMENT student(intern | extern) >
<!ELEMENT intern
EMPTY>
<!ELEMENT extern EMPTY>
Zie voorbeeld vb04.
Elementen inbedden:
- Meestal hebben we een combinatie van mogelijkheden.
Symbool met verklaringen:
(...) Duidt een groep aan
A A moet juist eenmaal voorkomen
A+ A moet eenmaal of meerdere malen voorkomen
A? A moet niet of mag maximaal eenmaal voorkomen
A* A mag niet voorkomen of mag meerdere keren voorkomen
+(A) A mag voorkomen
-(A) A mag niet voorkomen
A | B A en/of B moet(en) voorkomen. De volgorde is niet van belang
A, B A en B moeten voorkomen. In deze volgorde
A & B A en B moeten voorkomen. De volgorde is niet van belang
Véél succes Joël.