Frage

es scheint, dass eine lose Definition von PCDATA und CDATA ist, dass

  1. PCDATA Zeichendaten, aber ist analysiert werden.
  2. CDATA Zeichendaten sind, und nicht analysiert werden.

aber dann jemand sagte mir, dass CDATA tatsächlich analysiert wird oder PCDATA ist eigentlich nicht analysiert ... so ist es ein bisschen eine Verwirrung. Weiß jemand, der real deal?

Aktualisieren :. Ich habe tatsächlich die PCDATA Definition auf Wikipedia ... so nehmen Sie diese Antwort nicht zu ernst, wie das ist nur mein grobes Verständnis davon

War es hilfreich?

Lösung

Von WIKI:

PCDATA

  

Einfach gesagt, steht PCDATA für Parsed Zeichendaten. Das heißt, die Zeichen sind durch den XML, XHTML analysiert werden, oder HTML-Parser. (&lt; wird auf <p> genommen werden, um einen Absatz-Tag bedeuten, etc). Vergleichen Sie das mit CDATA, wo die Zeichen nicht vom XML, XHTML oder HTML-Parser analysiert werden.

CDATA

  

Der Begriff CDATA Zeichendaten bedeutet, ist für verschiedene verwendet, sondern Zwecke in der Markup-Sprachen SGML und XML verwendet. Der Begriff zeigt an, dass ein bestimmte Teil des Dokuments ist allgemein Zeichendaten, anstatt Nicht-Zeichendaten oder Zeichendaten mit einer spezifischeren, begrenzten Struktur.

Andere Tipps

Sowohl PCDATA und CDATA werden analysiert. Sie sind beide Charakter Daten.

Sie müssen beide nur gültige Zeichen enthalten. Zum Beispiel, wenn Ihre Dokumentcodierung ist UTF-8, der Gehalt an CDATA-Abschnitten muß noch gültige UTF-8 Zeichen lang sein. So zufällige binäre Daten werden wahrscheinlich das Dokument vor einem wohlgeformten verhindern. Auch CDATA-Abschnitte werden noch analysiert, wenn nur das Ende Abschnitt Tag zu finden. Aber auch andere Markup-ähnliche Zeichen wie <,> und & werden ignoriert und übergeben durch den Parser, wie sie ist.

OTOH in PCDATA Litteral

Also ja, CDATA-Abschnitte sind in der Tat analysiert. Ich bin mir nicht sicher, warum Sie gesagt, dass PCDATA allerdings nicht analysiert wird.

PCDATA - Analysierte Zeichendaten

CDATA - (Unparsed) Zeichendaten

http://www.w3schools.com/XML/xml_cdata.asp

  • PCDATA ist ein Text, der von einem Parser analysiert werden. Tags innerhalb des Textes wird als Markup behandelt und Einheiten erweitert werden.
  • CDATA ist ein Text, wird nicht von einem Parser analysiert werden. Tags innerhalb des Textes werden nicht als Markup behandelt werden und Organisationen werden nicht erweitert werden.

Standardmäßig ist alles PCDATA. Im folgende Beispiel wird die Wurzel zu ignorieren, wird analysiert, und es wird keinen Inhalt hat, aber ein Kind.

<?xml version="1.0"?>
<foo>
<bar><test>content!</test></bar>
</foo>

Wenn wir wollen, angeben, dass ein Element nur Text enthält, und keine untergeordneten Elemente verwenden wir das Schlüsselwort PCDATA, weil dieses Schlüsselwort gibt an, dass das Element parsable Zeichendaten enthalten muss - das heißt, jeder Text mit Ausnahme der Zeichen Less- als (<), größer-als (>), Et-Zeichen (&), Anführungszeichen ( ') und doppelte Anführungszeichen ( ").

Im nächsten Beispiel, eine Bar ist CDATA und nicht analysiert wird, und hat den Inhalt „Inhalt“.

<?xml version="1.0"?>
<foo>
<bar><![CDATA[<test>content!</test>]]></bar>
</foo>

Es gibt mehrere Content-Modelle in SGML. Das #PCDATA Content-Modell sagt, dass ein Element Klartext enthält. Der „analysierte“ einen Teil davon bedeutet, dass Markup (einschließlich PIs, Kommentare und Richtlinien SGML) darin analysiert werden, statt als Ausgangstext angezeigt. Es bedeutet auch, dass Entitätsverweise ersetzt werden.

Eine andere Art von Content-Modell Klartext Inhalte erlaubt ist CDATA. In XML werden die Elementinhaltsmodelle nicht implizit können CDATA gesetzt, aber in SGML, bedeutet dies, dass Markup und Entity-Referenzen in dem Inhalt des Elements ignoriert werden. In Attribute von CDATA Art sind jedoch Entitätsverweise ersetzt.

In XML #PCDATA ist das einzige Klartext Content-Modell. Sie verwenden es, wenn man sich alle Textinhalte im Element zulassen möchten. Das CDATA-Content-Modell explizit durch den CDATA-Block-Markup in #PCDATA verwendet werden kann, aber Element Inhalte dürfen nicht als CDATA standardmäßig definiert werden.

In einer DTD, die Art eines Attributs, das Text enthält, muss CDATA sein. Das CDATA Schlüsselwort in einer Attribut-Deklaration eine andere Bedeutung hat als der CDATA-Abschnitt in einem XML-Dokument. In CDATA-Abschnitt sind alle Zeichen Rechts (einschließlich <,>, &,‘und„Zeichen) mit Ausnahme des ‚]]>‘ End-Tag.

#PCDATA ist für den Typ eines Attributs nicht angemessen. Es ist für die Art von „Blatt“ Text verwendet wird.

#PCDATA wird durch eine Hash vorangestellt (auch als "Hashtag" oder octothorp bekannt) einfach aus historischen Gründen.

Ihre erste Definition korrekt ist.

PCDATA wird analysiert, was bedeutet, dass Entitäten erweitert werden und dass der Text wird als Markup behandelt. CDATA nicht durch einen XML-Parser analysiert.

Wenn nur Elemente CDATA standardmäßig im XHTML DTDs gesetzt wurden, wäre es eine Menge hässliche Handnotbetätigungen speichern ... Warum sollte enthalten Skriptblöcke andere Elemente? Wenn es solche Elemente ist, werden sie von den JS-Interpreter in DOM-Manipulation Aktionen behandelt - in diesem Fall sollten sie immer noch vollständig durch den XML-Parser vor Dokument Einführung und Rendering ignoriert. Ich nehme an, es entworfen wurde, kann die Verwendung von externen Skript-Ressource-Dateien zu erzwingen, die eine letztlich eine gute Sache ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top