Dtd

Hallo wissende,

ich bin absolut neu in sachen DTD. Ich brauche folgendes:
DTD which defines an attribute to be of type ID

Ich möchte eigt. nur definieren das ein Attribut „id“ eine xml:id ist , wie mache ich das?

und wie speicher ich die DTD ? Als myDTD.xml ? oder ist die endung egal?

Theoretisch könnte ich auch in der XHTML Datei:

 text 

schreiben aber das kommt natürlich nicht durch die validator von w3c.

Danke für eure Zeit und Hilfe.
Indyk

Hallo wissende,

Huhu

ich bin absolut neu in sachen DTD. Ich brauche folgendes:
DTD which defines an attribute to be of type
ID

z.B. so:

Das Attribut ‚unique‘ des Elements ‚Node‘ ist jetzt eine ID und darf innerhalb einer XML-Datei nicht doppelt vergeben werden

Dann gibt das hier:

<?xml version="1.0"?>
]\>
xyzzyx

einen Parsefehler (sofern beim Parsen validiert wird).

und wie speicher ich die DTD ? Als myDTD.xml ? oder ist die
endung egal?

Letztlich ist die Endung egal. Üblich ist die Endung .dtd. Eine DTD ist *keine* XML-Datei.

Wenn obige DTD z.B. in myDTD.dtd gespeichert ist, kann man das XML-Dokument auch so speichern (diesmal ohne Fehler!):

<?xml version="1.0"?>xyzzyx

Exakte Beschreibung findet sich hier:
http://www.w3.org/TR/REC-xml/#sec-prolog-dtd

Gruß,
Ralf

Huhu

Hallo Ralf.

z.B. so:

Genau so steht es jetzt in meiner DTD.
Und genau so sieht mein Baum aus:

 Test 


 Muh 

Jedoch bekomme ich keinen Fehler!

Das Attribut ‚unique‘ des Elements ‚Node‘ ist jetzt eine ID
und darf innerhalb einer XML-Datei nicht doppelt vergeben
werden

darf ich das attribute nur einmal vergeben, oder muss der wert einzigartig sein?

selbst wenn ich die richtlinien selbst befolge komme ich leider nicht zum gewünschten ergebnis mit der dtd, wenn ich aber xml:id benutze jedoch schon.

kannst du oder jemand mir vll. weiterhelfen?

Danke für die Zeit und Mühe.

Ok ich habe mich jetzt durch ein Tutorium durchgearbeitet und verstehe jetzt warum das nicht funktioniert hat.

Mit !ELEMENT definiert man einen Knoten dem man einen bestimmten namen zuweisen muss in dem Beispiel von Ralf wäre der erste Knoten „Doc“ danach legt man fest welche kinder Knoten dieses Doc Element haben darf, in dem Fall „Node“ das + steht für „mindestens eins oder mehr kinder knoten“

Danach muss man den Kinderknoten ebenfalls definieren (#PCDATA) steht für den Inhalt den dieser knoten haben darf (PCDATA steht für daten die geparsed werden)

mit !ATTLIST definiert man für das angegebene Element Attribute in dem Fall gibt man dem Knoten „Node“ das Attribut „unique“ die ID steht für das bekanntgeben einer ID und #IMPLIED für "kann vorhanden sein, muss aber nicht , sprich, nicht jedes „Node“ Element/Knoten muss das Attribut „unique“ besitzen.

Leider funktioniert es selbst mit dem verständnis noch nicht so wie ich es mir wünsche ( ; aber vll. hilft es ja jemand anderem weiter.