2010-12-13 8 views
1

Kennt jemand wie ein Mixet Inhaltselement (in dtd) gibt es eine Notwendigkeit, das "*" am Ende hinzufügen?dtd und gemischter Inhalt

Zum Beispiel: <!ELEMENT note (#PCDATA|to|from|header|message)*>

Ich bin auf den Fall reffering, wo ich will nichts wieder wiederholen ... Ich will nur in der Lage sein, zwischen #PCDATA und anderen Elementen zu wählen.

Ich weiß, dass, wenn ich die „*“ am Ende des decleration fallen werde ich eine schlechte DTD decleration bekommen ... Aber - ich habe keine Ahnung, was der Grund dafür ist ...

Wer weiß warum?

+0

Aus irgendeinem Grund das Beispiel, das ich nicht angezeigt wird ... geschrieben Das Beispiel ist: amiad21

Antwort

0

Sie irgendwelche

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE things [ 
    <!ELEMENT things ANY> 
]> 
<things> 
    <person name="a" /> 
    <cats /> 
    <dogs /> 
    <animals><a rel="gogo" /></animals> 
</things> 

auch verwenden möchten, ist die * der Bediener mehr Vorkommen für Null. Also die (element|element2)* sagt entweder oder/und

6

Sie treffen diese Einschränkung, weil das gemischte Content-Modell nur beschränken darf, welche Elemente auftreten, nicht ihre Reihenfolge oder die Anzahl von ihnen. Dies ist, ich fürchte, von der XML Specification selbst gefordert.

Gemischter Inhalt ist hart Ich habe Angst. Das Modell wurde mit Dokumenten entworfen - es macht Sinn, wenn Sie an Inline-Text denken, aber in vielen anderen Fällen nicht. Wenn Sie die Wahl haben, empfehlen die besten Praktiken, dass Sie ein Element für Ihre PCDATA erstellen. Wenn Sie das nicht können, fürchte ich, dass Sie an den Grenzen der gemischten Inhaltsmodelle festhalten (eine andere Schema-Sprache zu verwenden, hilft auch nicht viel, fürchte ich).

+0

Hallo, Zunächst einmal - Thanx ! Ich weiß, dass das die Spezifikation ist ... Ich versuche herauszufinden, was ist der Fall? Welches Problem wird auftreten, wenn das * nicht benötigt wird? – amiad21

+0

Ah :) Das ist ein guter Anfang. In SGML gibt es ein Problem, das als "pernicious mixed content" bezeichnet wird. Wenn Sie es googlen, finden Sie gute Beschreibungen. XML wurde so entworfen, dass schädlicher gemischter Inhalt nicht auftreten konnte. Diese Einschränkung des gemischten Inhaltsmodells stellt sicher, dass dies nicht passieren kann. –