Inhalt (Übungen aus der Vorlesung zum Thema Dokumenttypdefinitionen (DTDs).)

  1. Übungen aus der Vorlesung zum Thema Dokumenttypdefinitionen (DTDs). [4]

Erstellen eines Beispieldokuments

Gegeben sei folgende DTD. Erstellen Sie ein Beispieldokument dazu.

Eine mögliche Lösung zu dieser Aufgabe finden Sie auf der nächsten Seite.

<?xml version="1.0" encoding="UTF-8"?>
<!-- Aus einer DTD ein Beispieldokument erstellen -->
<!DOCTYPE test [
   <!ELEMENT test (ElementA, ElementC)>
   <!ELEMENT ElementA (ElementB?)>
<!--   <!ATTLIST ElementA 
    att1 CDATA #IMPLIED>-->
   <!ELEMENT ElementB (#PCDATA | color )*>
   <!ELEMENT color (#PCDATA)>
   <!ELEMENT ElementC (ElementA, ElementD)>
   <!ELEMENT ElementD (ElementE+)>
   <!ELEMENT ElementE EMPTY>
]>

Erstellen eines Beispieldokuments - Lösung

Nachfolgendes Listing zeigt ein mögliches Instanzdokument für die gegebene DTD.

<?xml version="1.0" encoding="UTF-8"?>
<!-- Aus einer DTD ein Beispieldokument erstellen -->
<!DOCTYPE test [
   <!ELEMENT test (ElementA, ElementC)>
   <!ELEMENT ElementA (ElementB?)>
   <!ATTLIST ElementA 
    att1 CDATA #IMPLIED>
   <!ELEMENT ElementB (#PCDATA | color )*>
   <!ELEMENT color (#PCDATA)>
   <!ELEMENT ElementC (ElementA, ElementD)>
   <!ELEMENT ElementD (ElementE+)>
   <!ELEMENT ElementE EMPTY>
]>
<!-- 
<!ATTLIST ElementA
  att1 CDATA #FIXED '42'> -->
<test>
   <ElementA att1="42">
      <ElementB>the quick <color>brown</color>
      fox jumps over the lazy dog</ElementB>
   </ElementA>
   <ElementC>
      <ElementA/>
      <ElementD>
         <ElementE/>
         <ElementE/>
      </ElementD>
   </ElementC>
</test> 

Erstellen einer DTD

Gegeben sei folgendes XML-Dokument. Erstellen Sie eine DTD dazu.

Eine mögliche Lösung zu dieser Aufgabe finden Sie auf der nächsten Seite.

<?xml version="1.0" encoding="UTF-8"?>
<!-- Aus einem Beispieldokument eine DTD erstellen -->
<root>
   <elementA attA="42">
      <elementB/>
      <elementC attC="77">
         <elementD>
            <elementE attA="test" attB="">
               <nothing/>
            </elementE>
         </elementD>
      </elementC>
      <elementC/>
   </elementA>
   <elementA attA="99">
      <nothing/>
   </elementA>
</root>

Erstellen einer DTD - Lösung

Nachfolgendes Listing zeigt eine mögliche DTD für das angegebene XML-Dokument.

<?xml version="1.0" encoding="UTF-8"?>
<!-- Aus einem Beispieldokument eine DTD erstellen -->
<!DOCTYPE root [
  <!ELEMENT root (elementA+)>
  <!ATTLIST elementA 
    attA CDATA #REQUIRED>
  <!ELEMENT elementA ( (nothing)* | (elementB, elementC+) )>
  <!ELEMENT nothing EMPTY>
  <!ELEMENT elementB EMPTY>
  <!ELEMENT elementC (elementD?)>
  <!ATTLIST elementC
    attC CDATA #FIXED "77">
  <!ELEMENT elementD (elementE)>
  <!ELEMENT elementE (nothing)>
  <!ATTLIST elementE
    attA CDATA #FIXED "test"
    attB CDATA #IMPLIED>
]>
<root>
   <elementA attA="42">
      <elementB/>
      <elementC attC="77">
         <elementD>
            <elementE attA="test" attB="">
               <nothing/>
            </elementE>
         </elementD>
      </elementC>
      <elementC/>
   </elementA>
   <elementA attA="99">
      <nothing/>
   </elementA>
</root>