Najnowsze tutoriale tworzenie stron internetowych
 

XML Przestrzenie nazw


Przestrzenie nazw XML dostarczenie sposobu, aby uniknąć konfliktów nazwa elementu.


Imię Konflikty

W XML, nazwy elementów są definiowane przez programistę. To często prowadzi do konfliktu, gdy próbuje mieszać dokumentów XML z różnych aplikacji XML.

Ten XML prowadzi HTML informacje o tabeli:

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

Ten XML niesie informacje o tabeli (a piece of furniture) :

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

Jeśli te fragmenty XML były sumowane, nie byłoby konfliktu nazw. Oba zawierają <table> elementu, ale elementy mają różną treść i znaczenie.

Użytkownik lub aplikacja XML nie będą wiedzieć, jak radzić sobie z tych różnic.


Rozwiązywanie konfliktów nazw Korzystanie z prefiksu

konfliktów nazw w XML można łatwo uniknąć przy użyciu nazwy przedrostka.

Ten XML niesie informacje o tabeli HTML, a mebel:

<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 żadnego konfliktu, ponieważ obie <table> elementy mają różne nazwy.


Przestrzenie nazw XML - The xmlns Atrybut

Podczas korzystania z prefiksów w XML, namespace dla prefiksu musi być zdefiniowana.

Namespace może być określona przez xmlns w tagu początkowego elementu.

Zgłoszenie nazw ma następującą składnię. xmlns: prefix =" 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="http://www.w3ii.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:

W xmlns atrybutu w pierwszej <table> Element daje h: prefiks kwalifikowanej nazw.

W xmlns atrybut w drugiej <table> Element daje f: prefiks kwalifikowanej nazw.

Gdy nazw jest określona dla danego elementu, elementy podrzędne z tego samego prefiksu są związane z tym samym nazw.

Przestrzenie nazw można również zadeklarowane elementu głównego XML:

<root
xmlns:h="http://www.w3.org/TR/html4/"
xmlns:f="http://www.w3ii.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>

Note: Przestrzeń nazw URI nie jest używana przez parser do wyszukiwania informacji.

Celem za pomocą URI jest zapewnienie przestrzeni nazw unikalną nazwę.

Jednak firmy często korzystają z nazw jako wskaźnik do strony internetowej zawierającej informacje przestrzeni nazw.


Uniform Resource Identifier (URI)

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

Najczęstszym URI jest Uniform Resource Locator (URL) , który identyfikuje adres domeny internetowej. Innym, nie tak popularnym typem URI jest Universal Resource Name (URN) .


Przestrzenie nazw domyślnych

Definiowanie domyślnej przestrzeni nazw dla elementu ratuje nas przed użyciem przedrostków wszystkich elementów podrzędnych. To ma następującą składnię:

xmlns="namespaceURI"

Ten XML prowadzi HTML informacje o tabeli:

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

XML'u niesie informację o mebla:

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

Przestrzenie nazw w rzeczywistego użytkowania

XSLT jest językiem, który może być użyty do transformacji dokumentów XML do innych formatów.

Dokument XML poniżej, jest dokumentem zastosowano do transformacji XML do HTML.

Przestrzeń nazw "http://www.w3.org/1999/XSL/Transform" identyfikuje elementy XSLT wewnątrz dokumentu 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, zapoznaj się z naszą XSLT Tutorial .