Szukaj…


Uwagi

XML to język znaczników służący do przechowywania danych hierarchicznych w plikach tekstowych. Jest również znany jako dane częściowo ustrukturyzowane, takie jak JSON. XML można odczytać maszynowo, ale może być również czytany i wytwarzany przez ludzi.

XML składa się z elementów, czasem nazywanych zupą tagów , które same mogą zawierać inne elementy i / lub tekst. Elementy mogą również zawierać atrybuty.

XML jest często używany do wymiany danych między platformami, zwłaszcza przez Internet. Jest również coraz częściej wykorzystywany do przechowywania częściowo ustrukturyzowanych danych w magazynach danych NoSQL (bazach danych XML / magazynach dokumentów). Ponadto ma elastyczność w obsłudze danych zorientowanych na dokumenty (tekst ze znacznikami), co czyni je bardzo popularnymi w branży wydawniczej. XML jest również szeroko stosowany do plików konfiguracyjnych.

Jednym z głównych powodów, dla których XML jest tak szeroko stosowany, jest jego standaryzacja z dostępnością wielu parserów, w tym open source. To sprawia, że koszt używania XML jest niższy niż wynalezienie własnej nowej składni.

Więcej informacji o pochodzeniu i celach XML można znaleźć w oficjalnej Rekomendacji W3C .

Istnieją dwie wersje XML, pokazane w poniższej tabeli. Edycje każdej wersji są tylko wersjami oryginalnych dokumentów, a nie zmianami standardów.

Pierwsza wersja XML to 1.0 . XML 1.1 został pierwotnie zmieniony z powodu zmiany wersji Unicode z 2.0 na 3.1 i określa zestaw nowych reguł dotyczących używania i interpretacji nowych znaków Unicode.

Wersje

Wersja Data wydania
1.0 1998-02-10
1.1 2001-12-13

Instalacja lub konfiguracja

XML to składnia, co oznacza, że wystarczy prosty edytor tekstu, aby rozpocząć.

Jednak posiadanie edytora specyficznego dla XML, który pokazuje, kiedy i gdzie dokument nie jest dobrze sformułowany, jest prawie nieodzowny dla wydajności. Takie edytory mogą również umożliwiać sprawdzanie poprawności dokumentów XML pod kątem schematu XML, a nawet generowanie schematów XML na podstawie dokumentów XML (i odwrotnie).

Niektóre przykłady edytorów to oXygen, Atom, Eclipse i Altova XMLSpy. Alternatywnym rozwiązaniem jest użycie parsera XML wiersza polecenia, takiego jak Apache Xerces.

Podstawowe bloki konstrukcyjne

XML składa się z podstawowych elementów składowych, które są:

  • element
  • tekst
  • atrybuty
  • komentarze
  • instrukcje przetwarzania

Element ma nawiasy kątowe:

<element/>

<element>some content</element>

Atrybut pojawia się w znaczniku elementu otwierającego:

<element
  attribute-name="attribute value"
  other-attribute='single-quoted value'>
  ...
</element>

Tekst może pojawić się w dowolnym miejscu w obrębie elementów lub między nimi:

<element>some more <b>bold</b> text</element>

Komentarze używają następującej składni. Ważne jest, aby wiedzieć, że komentarze XML, w przeciwieństwie do języków programowania, są częścią modelu i będą widoczne dla aplikacji nad analizatorem składni.

<!-- this is a comment -->

Instrukcje przetwarzania pozwalają na przekazywanie komunikatów do używającej aplikacji (np. Sposobu wyświetlania lub arkusza stylów itp.). XML nie ogranicza formatu instrukcji przetwarzania.

<?target-application these are some instructions?>

Więcej szczegółów na temat bloków konstrukcyjnych można znaleźć w tym temacie

Dobrze uformowana

Dokument XML to plik tekstowy, który jest zgodny z dobrze sformułowanymi regułami specyfikacji XML. Taki zgodny dokument jest uważany za dobrze sformułowany (nie należy go mylić z ważnym ). XML jest bardzo rygorystyczny z dobrze uformowaną formą w porównaniu do innych języków, takich jak HTML. Plik tekstowy, który nie jest dobrze sformatowany, nie jest uważany za XML i nie może być w ogóle używany przez aplikacje.

Oto kilka zasad dotyczących dokumentów XML:

  1. XML używa składni samoopisującej. Prolog definiuje wersję XML i kodowanie znaków:

    <?xml version="1.0" encoding="UTF-8"?>
    
  2. Musi być dokładnie jeden element najwyższego poziomu.

    Jednak komentarze, instrukcje przetwarzania, a także wstępna deklaracja XML są dozwolone również na najwyższym poziomie. Tekst i atrybuty nie są.

    <?xml version="1.0"?>
    <!-- some comments -->
    <?app a processing instruction?>
    <root/>
    <!-- some more comments -->
    
  3. Elementy mogą się zagnieżdżać, ale muszą być „odpowiednio zagnieżdżone”:

    <name>
      <first-name>John</first-name>
      <last-name>Doe</last-name>
    </name>
    

    Znaczniki początkowe i końcowe osadzonego elementu muszą znajdować się w znacznikach początkowym i końcowym elementu kontenera. Nakładanie się elementów jest nielegalne. W szczególności nie jest to dobrze sformułowany XML: <foo><bar></foo></bar>

  4. Atrybuty mogą pojawiać się tylko w znacznikach elementów otwierających lub pustych, a nie w znacznikach elementów zamykających. Jeśli między elementami pojawia się składnia atrybutu, nie ma ona znaczenia i jest analizowana jako tekst.

    <person first-name="John" last-name="Doe"/>
    

    To nie jest dobrze sformułowane: <person></person first-name="John"/>

  5. Komentarze, instrukcje przetwarzania, tekst i inne elementy mogą pojawiać się w dowolnym miejscu elementu (tj. Między znacznikiem otwierającym i zamykającym), ale nie wewnątrz znaczników.

    <element>
        This is some <b>bold</b> text.
        <!-- the b tag has no particular meaning in XML -->
    </element>
    

    Ten przykład nie jest dobrze sformułowany: <element <-- comment --> />

  6. Znak < może nie pojawiać się w tekście lub w wartościach atrybutów.

  7. " Znak może nie pojawiać się w wartościach atrybutów cytowanych za pomocą " . ' Znak może nie pojawiać się w wartościach atrybutów, które są cytowane za pomocą ' .

  8. Sekwencja znaków -- może nie pojawiać się w komentarzu.

  9. Dosłowne < i & znaki muszą być ocalałem przez odpowiednie podmioty &lt; i &amp; .

Witaj świecie

<?xml version="1.0"?>
<?speech-generator voice="Siri"?>
<root xmlns:vocabulary="http://www.example.com/vocabulary">
  <!-- These are the standard greetings -->
  <vocabulary:greetings>
    <vocabulary:greeting xml:lang="en-US" type="informal">
      Hi!
    </vocabulary:greeting> 
    <vocabulary:greeting xml:lang="en-US" type="intermediate">
      Hello!
    </vocabulary:greeting> 
    <vocabulary:greeting xml:lang="en-US" type="formal">
      Good morning to <b>you</b>!
    </vocabulary:greeting> 
  </vocabulary:greetings>
</root>

Przestrzenie nazw

Nazwy elementów i atrybutów znajdują się w przestrzeniach nazw, które są identyfikatorami URI. Przestrzenie nazw są powiązane z przedrostkami, które są używane w rzeczywistych nazwach elementów i atrybutów, które nazywane są QNames.

Ten dokument wiąże przestrzeń nazw z prefiksem prefix i definiuje domyślną przestrzeń nazw związaną z brakiem prefiksu.

<?xml version="1.0"?>
<document
    xmlns="http://www.example.com/default-namespace"
    xmlns:prefix="http://www.example.com/another-namespace">
  <prefix:element/>
</document>

Więcej szczegółów na temat przestrzeni nazw można znaleźć w tym temacie



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