XML-nimilaatikkot

XML-nimitystila tarjoaa menetelmän elementin nimen konfliktien välttämiseksi.

Nimityskonflikti

XML:ssä elementtien nimet määrittää kehittäjä. Kun kaksi eri dokumenttia käyttävät samaa elementin nimeä, tapahtuu nimityskonflikti.

Tämä XML-dokumentti sisältää tietoja jossain taulukossa:

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

Tämä XML-dokumentti sisältää tietoja pöydästä (huonekalusta):

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

Jos nämä kaksi XML-dokumenttia käytetään yhdessä, tapahtuu nimityskonflikti, koska molemmat dokumentit sisältävät <table>-elementtejä, joilla on eri sisältö ja määritelmä.

Käyttäjä tai XML-sovellus ei voi määrittää, miten tällaista konfliktia käsitellään.

Nimiliitteellä ratkaistaan nimityskonfliktit

Nimiliitteen avulla voidaan helposti välttää XML:n nimityskonfliktit.

Tämä XML sisältää tietoja HTML-taulukoista ja yhdestä huonekalusta:

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

Nyt nimityskonflikti ei ole enää olemassa, koska molemmat dokumentit käyttävät erilaisia nimiä nimittääksensä <table>-elementtinsä (<h:table> ja <f:table>)。

Käyttämällä etuliitettä loimme kaksi erilaista tyyppistä <table>-elementtiä.

XML-nimitystila - xmlns-ominaisuus

Kun käytetään XML:ssä etuliitettä, etuliitteen on oltava määriteltyNimiavaruudet(Nimiavaruudet)。

Nimiavaruus voidaan määrittää elementin alkumerkinnässä xmlns ominaisuutta määrittämään.

Nimiavaruuden ilmoittaminen käyttää tällaista syntaksia: 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="https://www.codew3c.com/furniture">
  <f:name>African Coffee Table</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>
</root>

Yllä olevassa esimerkissä:

ensimmäisessä <table>-elementissä xmlns ominaisuus on h: Etuliite tarjoaa määriteltyyn nimiavaruuteen.

toisessa <table>-elementissä xmlns ominaisuus on f: Etuliite tarjoaa määriteltyyn nimiavaruuteen.

Jos elementille määritetään nimiavaruus, kaikki samalla etuliitteellä olevat alielementit liittyvät samaan nimiavaruuteen.

Nimiavaruudet voidaan myös ilmoittaa XML:n juuri-elementissä:

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

Huomioitavaa:Parseri ei käytä nimenavaruuden URI:a tiedon hakemiseen.

URI:n käyttötarkoitus on vain tarjota nimenavaruudelle ainutlaatuinen nimi.

Kuitenkin, monet yritykset käyttävät usein nimenavaruuden osoittajana osoittamaan todelliseen sivustoon, joka sisältää nimenavaruuden tietoja.

Yhtenäinen resurssinimentunniste (URI)

Yhtenäinen resurssinimentunniste (Uniform Resource Identifier,URI) on Internet-resurssin tunnistaja.

) on Internet-resurssin tunnistavan merkkijonon.Yhtenäinen resurssinimilokaihtaja (Uniform Resource Locator,URL),se tunnistaa Internetin verkkotunnuksen.

Toinen harvemmin käytetty URI-tyyppi onYhtenäinen resurssinimi (Uniform Resource Name,URN)。

Oletusnimiavaruus (Default Namespaces)

Määrittämällä elementille oletusnimiavaruus voimme välttää etuliitteiden käyttämisen kaikissa alielementeissä.

Käytä seuraavaa syntaksia:

xmlns="namespaceURI"

Tämä XML-dokumentti sisältää HTML-taulukon tiedot:

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

Tämä XML sisältää tietoja yhdestä huonekalusta:

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

Nimiavaruuden todellinen käyttö

XSLT on kieli, jota voidaan käyttää XML-dokumenttien muuntamiseen muihin muotoihin.

Alla oleva XML-dokumentti käytetään XML:n muuntamiseen HTML:ksi.

Jos tarkasti tarkastelet alla olevaa XSL-dokumenttia, huomaat, että suurin osa merkinnöistä on HTML-merkinnöitä.

Ei-HTML-merkkijonot kaikki ovat etuliitteellä xsl, ja nimenavaruus merkkiääneellä: "http://www.w3.org/1999/XSL/Transform":

Nimiavaruus "http://www.w3.org/1999/XSL/Transform" tunnistaa HTML-dokumentin XSLT-elementit:

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

Jos haluat syventyä lisää XSLT:ään, lue XSLT oppituntio.