Seite 1 von 1

XML Validator vs. Skriptbeispiel

Verfasst: 26. Mai 2009 13:01
von Stumpf.Alex
Wenn man das Beispiel aus Folie NCS-09 - 17 in den Webvalidator eingibt, meckert er, dass IDs mit Buchstaben anfangen müssen. Was ist aber wenn ich wirklich einzigartige numerische IDs als Attribute fordern will. Wie kann man das machen?

DTD - Beispiel aus Folie:

Code: Alles auswählen

<?xml version="1.0"?>
<!DOCTYPE order [
<!ELEMENT order (item+,date,price)>
<!ATTLIST order orderID ID #REQUIRED>
<!ELEMENT item (book|cdrom)+>
<!ELEMENT book EMPTY>
<!ATTLIST book isbn CDATA #REQUIRED>
<!ELEMENT cdrom EMPTY>
<!ATTLIST cdrom title CDATA #REQUIRED>
<!ELEMENT date EMPTY>
<!ATTLIST date ts CDATA '2007-07-09-1111'>
<!ELEMENT price (#PCDATA)>
]>
<order orderID="15632">
  <item>
    <book isbn="123-321"/>
  </item>
  <item>
    <book isbn="456-654"/>
  </item>
  <date ts="2007-07-09-1341"/>
  <price>EUR 49.00</price>
</order>

Re: XML Validator vs. Skriptbeispiel

Verfasst: 27. Mai 2009 02:51
von Tobias
Stumpf.Alex hat geschrieben:Wenn man das Beispiel aus Folie NCS-09 - 17 in den Webvalidator eingibt, meckert er, dass IDs mit Buchstaben anfangen müssen.
So ist das schließlich definiert.
Stumpf.Alex hat geschrieben:Was ist aber wenn ich wirklich einzigartige numerische IDs als Attribute fordern will. Wie kann man das machen?
Du könntest
  • ein NameStartChar vor die ID schreiben. Dann ist sie aber streng genommen nicht mehr numerisch.
  • einen anderen Datentyp verwenden, z.B. NMTOKEN, CDATA oder ganz was anderes. Dann muss die Einzigartigkeit des Namens anders geprüft werden, z.B. manuell bei der Verarbeitung in der Anwendung oder durch Validierung gegen ein geeignetes Schema (z.B. XML-Schema). Mit einer DTD alleine lässt sich in diesem Fall nicht viel ausrichten.