Szukaj…


Elementy

Elementy dostarczane z nawiasami kątowymi są najbardziej widocznym elementem składowym XML.

Elementy mogą być puste, w którym to przypadku są wykonane z pustego znacznika (zauważ końcowe ukośnik):

<an-empty-element/>

Lub mogą mieć treść, w którym to przypadku mają znacznik otwierający (bez ukośnika) i zamykający (początkowy ukośnik):

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

Elementy mogą się zagnieżdżać (ale tylko między tagami otwierającymi i zamykającymi):

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

Nazwy elementów nazywane są QNames (nazwy kwalifikowane). Wszystkie powyższe elementy nie znajdują się w przestrzeni nazw, ale nazwy elementów można również zdefiniować w przestrzeni nazw przy użyciu takich prefiksów:

<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>

Przestrzenie nazw i nazwy elementów są opisane bardziej szczegółowo w tej części dokumentacji .

Atrybuty

Atrybuty to pary nazwa-wartość powiązane z elementem.

Są one reprezentowane przez wartości w pojedynczych lub podwójnych cudzysłowach wewnątrz znacznika elementu otwierającego lub znacznika pustego elementu, jeśli jest to pusty element.

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

Atrybuty nie są uporządkowane (w przeciwieństwie do elementów). Następujące dwa elementy mają te same zestawy atrybutów:

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

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

Atrybutów nie można powtórzyć w tym samym elemencie (w przeciwieństwie do elementów). Poniższy dokument nie jest dobrze sformułowany: <foo a="x" a="y"/> ponieważ atrybut a pojawia się dwukrotnie w tym samym elemencie.

Poniższy dokument jest dobrze sformułowany. Wartości mogą być identyczne, to nazwa atrybutu, której nie można powtórzyć.

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

Atrybuty nie mogą być zagnieżdżone (w przeciwieństwie do elementów).

Tekst

Tekst składa się ze wszystkich znaków spoza jakiegokolwiek znacznika (znaczniki elementu otwierającego, znaczniki elementu zamykającego itp.).

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

Dokładna terminologia XML dla tekstu to dane znakowe . Specyfikacja XML faktycznie używa tekstu słowa dla całego dokumentu XML lub analizowanej encji, ponieważ definiuje XML na poziomie składniowym. Jednak niektóre modele danych, takie jak XDM (XQuery i XPath Data Model), które reprezentują dokumenty XML jako drzewa, odnoszą się do danych znakowych jako węzłów tekstowych , tak że tekst jest często rozumiany jako synonim danych znakowych w praktyce.

Dane znakowe nie mogą zawierać znaku < - byłoby to interpretowane jako pierwszy znak znacznika elementu otwierającego - nie może również zawierać sekwencji znaków ]]> . Zamiast tego odpowiednie znaki muszą być poprzedzone znakiem encji.

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

Dla wygody można także uciec od większej części tekstu za pomocą sekcji CDATA (ale sekwencja ]]> jest nadal niedozwolona z oczywistych powodów):

<?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>

Komentarze

Komentarze w XML wyglądają tak:

<!-- This is a comment -->

Mogą pojawiać się w treści elementu lub na najwyższym poziomie:

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

Komentarze nie mogą pojawiać się wewnątrz tagów ani wewnątrz atrybutów:

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

lub

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

nie są dobrze uformowane.

Sekwencja znaków -- nie może pojawić się w środku komentarza. To nie jest dobrze sformułowany XML:

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

Komentarze w XML, w przeciwieństwie do innych języków, takich jak C ++, są częścią modelu danych : są analizowane, przekazywane i widoczne dla aplikacji używającej.

Instrukcje przetwarzania

Instrukcja przetwarzania służy do bezpośredniego przekazywania niektórych informacji lub instrukcji do aplikacji za pośrednictwem analizatora składni.

<?my-application some instructions ?>

Token za początkowym znakiem zapytania (tutaj my-application ) jest nazywany celem i identyfikuje aplikację, do której skierowana jest instrukcja. To, co następuje, nie jest dalej sprecyzowane, a interpretacja zależy od aplikacji. Odniesienia do encji i znaków nie są rozpoznawane.

Może pojawić się na najwyższym poziomie lub w treści elementu.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow