Suche…


Elemente

Elemente mit spitzen Klammern sind der prominenteste Baustein von XML.

Elemente können entweder leer sein, in diesem Fall bestehen sie aus einem leeren Tag (beachten Sie den abschließenden Schrägstrich):

<an-empty-element/>

Oder sie können Inhalt haben. In diesem Fall haben sie ein öffnendes Tag (kein Schrägstrich) und ein schließendes Tag (Anfangsschrägstrich):

<a-non-empty-element>Content</a-non-empty-element>

Elemente können verschachtelt werden (aber nur zwischen öffnenden und schließenden Tags):

<parent-element>
  <child-element/>
  <another-child-element>
    Some more content.
  </another-child-element>
</parent-element>

Elementnamen heißen QNames (qualifizierte Namen). Alle obigen Elemente befinden sich in keinem Namespace, aber Elementnamen können auch in Namespaces mit Präfixen wie folgt definiert werden:

<my-namespace:parent-element xmlns:my-namespace="http://www.example.com/">
  <my-namespace:child-element/>
  <my-namespace:another-child-element>
    Some more content.
  </my-namespace:another-child-element>
</my-namespace:parent-element>

Namensräume und Elementnamen werden in diesem Abschnitt der Dokumentation ausführlicher beschrieben.

Attribute

Attribute sind Name-Wert-Paare, die einem Element zugeordnet sind.

Sie werden durch Werte in einfachen oder doppelten Anführungszeichen innerhalb des Eröffnungselement-Tags oder durch das leere Element-Tag dargestellt, wenn es ein leeres Element ist.

<document>
  <anElement foo="bar" abc='xyz'><!-- some content --></anElement>
  <anotherElement a="1"/>
</document>

Attribute werden nicht sortiert (im Gegensatz zu Elementen). Die folgenden zwei Elemente weisen dieselben Attributsätze auf:

<foo alpha="1" beta="2"/>

<foo beta="2" alpha="1"/>

Attribute können nicht im selben Element wiederholt werden (im Gegensatz zu Elementen). Das folgende Dokument ist nicht wohlgeformt: <foo a="x" a="y"/> da das Attribut a zweimal im selben Element erscheint.

Das folgende Dokument ist wohlgeformt. Werte können identisch sein, es ist der Attributname, der nicht wiederholt werden kann.

<foo a="x" b="x"/> 

Attribute können nicht verschachtelt werden (im Gegensatz zu Elementen).

Text

Text besteht aus allen Zeichen außerhalb eines Markups (öffnende Element-Tags, schließende Element-Tags usw.).

<?xml version="1.0"?>
<document>
  This is some text and <b>this is some more text</b>.
</document>

Die genaue XML-Terminologie für Text sind Zeichendaten . Die XML - Spezifikation verwendet tatsächlich das Wort Text für das gesamte XML - Dokument oder einen analysierten Entity, weil es XML auf syntaktischer Ebene definiert. Einige Datenmodelle wie XDM (XQuery und XPath Data Model), die XML-Dokumente als Bäume darstellen, beziehen sich jedoch auf Zeichendaten als Textknoten , sodass Text in der Praxis häufig als Synonym für Zeichendaten verstanden wird.

Zeichendaten dürfen kein < Zeichen enthalten - dies würde als erstes Zeichen eines öffnenden Element-Tags interpretiert werden - es darf auch nicht die Zeichenfolge ]]> enthalten. Die entsprechenden Zeichen müssen stattdessen mit einer Entitätsreferenz versehen werden.

<?xml version="1.0"?>
<document>
  It is fine to escape the &lt; character, as well as ]]&gt;.
</document>

Der Bequemlichkeit halber kann man auch einen größeren Textteil mit einem CDATA-Abschnitt schützen (die Reihenfolge ]]> ist jedoch aus naheliegenden Gründen immer noch nicht zulässig.

<?xml version="1.0"?>
<document>
  <![CDATA[
    In a CDATA section, it is fine to write < or even & and entity references
    such as &amp; are not resolved.
  ]]>
</document>

Bemerkungen

Kommentare in XML sehen so aus:

<!-- This is a comment -->

Sie können im Elementinhalt oder auf der obersten Ebene erscheinen:

<?xml version="1.0"?>
<!-- a comment at the top-level -->
<document>
  <!-- a comment inside the document -->
</document>

Kommentare können nicht in Tags oder Attributen angezeigt werden:

<element <!-- comment with -- inside --> />

oder

<element attr="<!-- comment with -- inside -->"/>

sind nicht wohlgeformt

Die Zeichenfolge -- kann nicht in der Mitte eines Kommentars erscheinen. Dies ist kein wohlgeformtes XML:

<!-- comment with -- inside -->

Kommentare in XML sind im Gegensatz zu anderen Sprachen wie C ++ Teil des Datenmodells : Sie werden analysiert, weitergeleitet und für die konsumierende Anwendung sichtbar.

Verarbeitungshinweise

Eine Verarbeitungsanweisung wird verwendet, um einige Informationen oder Anweisungen direkt über den Parser an die Anwendung weiterzuleiten.

<?my-application some instructions ?>

Das Token nach dem ersten Fragezeichen (hier my-application ) wird als Ziel bezeichnet und identifiziert die Anwendung, auf die der Befehl gerichtet ist. Was folgt, wird nicht weiter spezifiziert und es liegt an der Anwendung, es zu interpretieren. Entitäten- und Zeichenreferenzen werden nicht erkannt.

Es kann auf der obersten Ebene oder im Elementinhalt angezeigt werden.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow