Tipps & Tricks
Dokument-Varianten in XML verwalten
In XML sind anders als in SGML keine Marked Sections im Dokument möglich. Deshalb muss man bei der Verwaltung mehrerer Dokument-Varianten (z. B. in verschiedenen Sprachen) einen Umweg gehen. Statt mit Marked Sections im Dokument kann man in XML mit Entities (Verweisen) in der DTD arbeiten.
Ein Beispiel: Für Textbausteine in verschiedenen Sprachen stehen in der Haupt-XML-Datei nur Entities (Verweise) für diese Bausteine, die sich wiederum in einer anderen Datei befinden. Unterschiedliche Auflösungen dieser Verweise ergeben unterschiedliche Sprachen. Da die Auflösung von Entity-Verweisen in der XML-DTD erfolgt und DTD-Deklarationen auch im Dokument stehen können (internal subset) kann man auf diesem Weg mit nur einem »Schalter« in XML den gleichen Effekt erzielen. Ein genaueres Beispiel für diese Vorgehensweise finden Sie im Beitrag Dokumentstrukturierung in XML, Abschnitt Internal Subset und Marked Sections.
Datumsformate in XML-Attributen festlegen
Zu den häufigsten Verwaltungsdaten gehören Datumsangaben, Versionsangaben u. ä. Solche Daten werden oft in Attributen abgelegt. Da der XML-DTD-Standard nicht vorsieht, den erlaubten Inhalt von Attributen genau zu spezifizieren, kann es problematisch sein, die Einhaltung von Datumsformaten u. ä. sicherzustellen.
Abhilfe bieten hier Attributkombinationen vom Aufzählungstyp. Anstelle eines Attributs mit dem Datentyp NMTOKEN oder gar CDATA verwenden Sie drei Attribute vom Aufzählungstyp, jeweils eines für Tag, Monat, und Jahr (die Auslassungspunkte müssen natürlich mit den fehlenden Zahlen aufgefüllt werden):
<!ATTLIST element
pub.datum.tag (1|2|3|4|5|6 ... |31) #REQUIRED
pub.datum.monat (1|2|3|4|5|6 ... |12) #REQUIRED
pub.datum.jahr (... 2000|2001|2002|2003 ...) #REQUIRED >


