xml Samouczek
Rozpoczęcie pracy z xml
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:
XML używa składni samoopisującej. Prolog definiuje wersję XML i kodowanie znaków:
<?xml version="1.0" encoding="UTF-8"?>
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 -->
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>
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"/>
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 --> />
Znak
<
może nie pojawiać się w tekście lub w wartościach atrybutów."
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ą'
.Sekwencja znaków
--
może nie pojawiać się w komentarzu.Dosłowne
<
i&
znaki muszą być ocalałem przez odpowiednie podmioty<
i&
.
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