Samouczek XML

Strona główna XML Wprowadzenie do XML XML Jak używać Drzewo XML Składnia XML Elementy XML Atrybuty XML Przestrzenie nazw XML Wyświetlacz XML Żądanie HTTP XML Parser XML XML DOM XML XPath XML XSLT XML XQuery XML XLink Walidator XML XML DTD Schemat XML Serwer XML Przykłady XML Quiz XML Certyfikat XML

XML AJAX

Wprowadzenie do AJAX AJAX XMLHttp Żądanie AJAX Odpowiedź AJAX Plik XML AJAX AJAX PHP ASP AJAX Baza danych AJAX Aplikacje AJAX Przykłady AJAX

XML DOM

Wprowadzenie do DOM Węzły DOM Dostęp do DOM Informacje o węźle DOM Lista węzłów DOM Przechodzenie DOM Nawigacja DOM DOM Uzyskaj wartości Zmiana węzłów DOM DOM Usuń węzły DOM Zamień węzły DOM Utwórz węzły DOM Dodaj węzły Węzły klonowania DOM Przykłady DOM

Samouczek XPath

Wprowadzenie do XPath Węzły XPath Składnia XPath Osie XPath Operatorzy XPath Przykłady XPath

Samouczek XSLT

Wprowadzenie XSLT Języki XSL Transformacja XSLT XSLT <szablon> XSLT <wartość-z> XSLT <dla każdego> XSLT <sortuj> XSLT <jeśli> XSLT <wybierz> XSLT Zastosuj XSLT na kliencie XSLT na serwerze XSLT Edytuj XML Przykłady XSLT

Samouczek XQuery

Wprowadzenie do XQuery Przykład XQuery XQuery FLWOR XQuery HTML Warunki XQuery Składnia XQuery XQuery Dodaj XQuery Wybierz Funkcje XQuery

XML DTD

Wprowadzenie do DTD Bloki konstrukcyjne DTD Elementy DTD Atrybuty DTD Elementy DTD a Attr Jednostki DTD Przykłady DTD

Schemat XSD

Wprowadzenie do XSD XSD Jak to zrobić XSD <schemat> Elementy XSD Atrybuty XSD Ograniczenia XSD

Kompleks XSD

Elementy XSD XSD Pusty Tylko elementy XSD Tylko tekst XSD Mieszane XSD Wskaźniki XSD XSD <dowolny> XSD <dowolnyAtrybut> Zastąpienie XSD Przykład XSD

Dane XSD

XSD ciąg Data XSD Numeryczne XSD XSD Różne Odniesienie XSD

Usługi internetowe

Usługi XML XML WSDL MYDŁO XML XML RDF XML RSS

Bibliografia

Typy węzłów DOM Węzeł DOM Lista węzłów DOM DOM NamedNodeMap Dokument DOM Element DOM Atrybut DOM Tekst DOM DOM CDATA Komentarz DOM DOM XMLHttpRequest Analizator DOM Elementy XSLT Funkcje XSLT/XPath

Przestrzenie nazw XML


Przestrzenie nazw XML zapewniają metodę unikania konfliktów nazw elementów.


Konflikty nazw

W XML nazwy elementów są definiowane przez programistę. Często powoduje to konflikt podczas próby miksowania dokumentów XML z różnych aplikacji XML.

Ten plik XML zawiera informacje z tabeli HTML:

<table>
  <tr>
    <td>Apples</td>
    <td>Bananas</td>
  </tr>
</table>

Ten kod XML zawiera informacje o stole (meblu):

<table>
  <name>African Coffee Table</name>
  <width>80</width>
  <length>120</length>
</table>

Gdyby te fragmenty XML zostały dodane razem, wystąpiłby konflikt nazw. Oba zawierają element <table>, ale elementy mają inną treść i znaczenie.

Użytkownik lub aplikacja XML nie będzie wiedziała, jak poradzić sobie z tymi różnicami.


Rozwiązywanie konfliktu nazw za pomocą przedrostka

Konflikty nazw w XML można łatwo uniknąć, używając przedrostka nazwy.

Ten kod XML zawiera informacje o tabeli HTML i meblu:

<h:table>
  <h:tr>
    <h:td>Apples</h:td>
    <h:td>Bananas</h:td>
  </h:tr>
</h:table>

<f:table>
  <f:name>African Coffee Table</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>

W powyższym przykładzie nie będzie konfliktu, ponieważ dwa elementy <table> mają różne nazwy.



Przestrzenie nazw XML — atrybut xmlns

Używając prefiksów w XML, należy zdefiniować przestrzeń nazw dla prefiksu.

Przestrzeń nazw można zdefiniować za pomocą atrybutu xmlns w znaczniku początkowym elementu.

Deklaracja przestrzeni nazw ma następującą składnię. xmlns: prefiks = " URI ".

<root>

<h:table xmlns:h="http://www.w3.org/TR/html4/">
  <h:tr>
    <h:td>Apples</h:td>
    <h:td>Bananas</h:td>
  </h:tr>
</h:table>

<f:table xmlns:f="https://www.w3schools.com/furniture">
  <f:name>African Coffee Table</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>

</root>

W powyższym przykładzie:

Atrybut xmlns w pierwszym elemencie <table> daje przedrostkowi h: kwalifikowaną przestrzeń nazw.

Atrybut xmlns w drugim elemencie <table> daje przedrostkowi f: kwalifikowaną przestrzeń nazw.

Gdy przestrzeń nazw jest zdefiniowana dla elementu, wszystkie elementy podrzędne z tym samym prefiksem są skojarzone z tą samą przestrzenią nazw.

Przestrzenie nazw można również zadeklarować w elemencie głównym XML:

<root xmlns:h="http://www.w3.org/TR/html4/"
xmlns:f="https://www.w3schools.com/furniture">

<h:table>
  <h:tr>
    <h:td>Apples</h:td>
    <h:td>Bananas</h:td>
  </h:tr>
</h:table>

<f:table>
  <f:name>African Coffee Table</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>

</root>

Uwaga: Identyfikator URI przestrzeni nazw nie jest używany przez parser do wyszukiwania informacji.

Celem użycia identyfikatora URI jest nadanie przestrzeni nazw unikalnej nazwy.

Jednak firmy często używają przestrzeni nazw jako wskaźnika do strony internetowej zawierającej informacje o przestrzeni nazw.


Jednolity identyfikator zasobu (URI)

Uniform Resource Identifier (URI) to ciąg znaków, który identyfikuje zasób internetowy.

Najpopularniejszym identyfikatorem URI jest adres URL ( Uniform Resource Locator ), który identyfikuje adres domeny internetowej. Innym, nie tak powszechnym typem identyfikatora URI jest Uniform Resource Name (URN).


Domyślne przestrzenie nazw

Zdefiniowanie domyślnej przestrzeni nazw dla elementu pozwala uniknąć używania przedrostków we wszystkich elementach potomnych. Ma następującą składnię:

xmlns="namespaceURI"

Ten plik XML zawiera informacje z tabeli HTML:

<table xmlns="http://www.w3.org/TR/html4/">
  <tr>
    <td>Apples</td>
    <td>Bananas</td>
  </tr>
</table>

Ten plik XML zawiera informacje o meblu:

<table xmlns="https://www.w3schools.com/furniture">
  <name>African Coffee Table</name>
  <width>80</width>
  <length>120</length>
</table>

Przestrzenie nazw w rzeczywistym użyciu

XSLT to język, którego można używać do przekształcania dokumentów XML na inne formaty.

Poniższy dokument XML jest dokumentem używanym do przekształcania XML na HTML.

Przestrzeń nazw „http://www.w3.org/1999/XSL/Transform” identyfikuje elementy XSLT w dokumencie HTML:

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<html>
<body>
  <h2>My CD Collection</h2>
  <table border="1">
    <tr>
      <th style="text-align:left">Title</th>
      <th style="text-align:left">Artist</th>
    </tr>
    <xsl:for-each select="catalog/cd">
    <tr>
      <td><xsl:value-of select="title"/></td>
      <td><xsl:value-of select="artist"/></td>
    </tr>
    </xsl:for-each>
  </table>
</body>
</html>
</xsl:template>

</xsl:stylesheet>

Jeśli chcesz dowiedzieć się więcej o XSLT, przeczytaj nasz samouczek XSLT .