XML Validator vs. Skriptbeispiel

Stumpf.Alex
Nerd
Nerd
Beiträge: 643
Registriert: 1. Okt 2007 12:40
Wohnort: Darmstadt
Kontaktdaten:

XML Validator vs. Skriptbeispiel

Beitrag von Stumpf.Alex » 26. Mai 2009 13:01

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>

Tobias
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 132
Registriert: 20. Okt 2004 14:17
Kontaktdaten:

Re: XML Validator vs. Skriptbeispiel

Beitrag von Tobias » 27. Mai 2009 02:51

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.
Wise people talk, because they have something to say; fools, because they have to say something. (Plato)

Antworten

Zurück zu „Archiv“