XML -zelfstudie

XML HOME XML-introductie XML Hoe te gebruiken XML-structuur XML-syntaxis XML-elementen XML-kenmerken XML-naamruimten XML-weergave XML HTTP-verzoek XML-parser XML-DOM XML XPath XML XSLT XML XQuery XML XLink XML-validator XML-DTD XML Schema XML-server XML-voorbeelden XML-quiz XML-certificaat

XML AJAX

Ajax-introductie AJAX XMLHttp Ajax-verzoek Ajax-reactie AJAX XML-bestand AJAX PHP Ajax ASP AJAX-database AJAX-toepassingen Ajax-voorbeelden

XML-DOM

DOM-introductie DOM-knooppunten DOM-toegang DOM Node Info Lijst met DOM-knooppunten DOM doorkruisen DOM-navigatie DOM Waarden ophalen DOM-wijzigingsknooppunten DOM Knooppunten verwijderen DOM Knooppunten vervangen DOM Knooppunten maken DOM Knooppunten toevoegen DOM-kloonknooppunten DOM-voorbeelden

XPath- zelfstudie

XPath-introductie XPath-knooppunten XPath-syntaxis XPath-assen XPath-operators XPath-voorbeelden

XSLT- zelfstudie

XSLT-introductie XSL-talen XSLT-transformatie XSLT <sjabloon> XSLT <waarde-van> XSLT <voor elk> XSLT <sorteren> XSLT <if> XSLT <kiezen> XSLT toepassen XSLT op de client XSLT op de server XSLT Bewerk XML XSLT-voorbeelden

XQuery- zelfstudie

XQuery-introductie XQuery-voorbeeld XQuery FLWOR XQuery HTML XQuery-voorwaarden XQuery-syntaxis XQuery toevoegen XQuery selecteren XQuery-functies

XML -DTD

DTD Introductie DTD-bouwstenen DTD-elementen DTD-kenmerken DTD Elements vs Attr DTD-entiteiten DTD-voorbeelden

XSD- schema

XSD-introductie XSD Hoe kan ik? XSD <schema> XSD-elementen XSD-kenmerken XSD-beperkingen

XSD- complex

XSD-elementen XSD Leeg Alleen XSD-elementen Alleen XSD-tekst XSD gemengd XSD-indicatoren XSD <elke> XSD <anyAttribute> XSD-vervanging XSD-voorbeeld

XSD- gegevens

XSD-string XSD-datum XSD Numeriek XSD Diversen XSD-referentie

Webservices _

XML-services XML-WSDL XML SOAP XML-RDF XML-RSS

Referenties

Typen DOM-knooppunten DOM Node DOM-knooppuntlijst DOM NamedNodeMap DOM-document DOM-element DOM-kenmerk DOM-tekst DOM CDATA DOM-opmerking DOM XMLHttpRequest DOM-parser XSLT-elementen XSLT/XPath-functies

XML -naamruimten


XML-naamruimten bieden een methode om conflicten met elementnamen te voorkomen.


Naamconflicten

In XML worden elementnamen gedefinieerd door de ontwikkelaar. Dit resulteert vaak in een conflict bij het mixen van XML-documenten uit verschillende XML-toepassingen.

Deze XML bevat HTML-tabelinformatie:

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

Deze XML bevat informatie over een tafel (een meubel):

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

Als deze XML-fragmenten bij elkaar zouden worden opgeteld, zou er een naamconflict ontstaan. Beide bevatten een <table>-element, maar de elementen hebben een verschillende inhoud en betekenis.

Een gebruiker of een XML-applicatie zal niet weten hoe met deze verschillen om te gaan.


Het naamconflict oplossen met een voorvoegsel

Naamconflicten in XML kunnen eenvoudig worden vermeden door een naamvoorvoegsel te gebruiken.

Deze XML bevat informatie over een HTML-tabel en een meubelstuk:

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

In het bovenstaande voorbeeld is er geen conflict omdat de twee <table>-elementen verschillende namen hebben.



XML-naamruimten - Het xmlns-kenmerk

Bij gebruik van prefixen in XML moet een naamruimte voor de prefix worden gedefinieerd.

De naamruimte kan worden gedefinieerd door een xmlns -attribuut in de starttag van een element.

De naamruimtedeclaratie heeft de volgende syntaxis. 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.w3schools.com/furniture">
  <f:name>African Coffee Table</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>

</root>

In bovenstaand voorbeeld:

Het xmlns attribuut in het eerste <table> element geeft het h: prefix een gekwalificeerde naamruimte.

Het xmlns attribuut in het tweede <table> element geeft het f: prefix een gekwalificeerde naamruimte.

Wanneer een naamruimte is gedefinieerd voor een element, worden alle onderliggende elementen met hetzelfde voorvoegsel gekoppeld aan dezelfde naamruimte.

Naamruimten kunnen ook worden gedeclareerd in het XML-rootelement:

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

Opmerking: De naamruimte-URI wordt niet door de parser gebruikt om informatie op te zoeken.

Het doel van het gebruik van een URI is om de naamruimte een unieke naam te geven.

Bedrijven gebruiken de naamruimte echter vaak als een verwijzing naar een webpagina met informatie over de naamruimte.


Uniform Resource Identifier (URI)

Een Uniform Resource Identifier (URI) is een reeks tekens die een internetbron identificeert.

De meest voorkomende URI is de Uniform Resource Locator (URL) die een internetdomeinadres identificeert. Een ander, niet zo gebruikelijk type URI is de Uniform Resource Name (URN).


Standaard naamruimten

Het definiëren van een standaard naamruimte voor een element bespaart ons het gebruik van voorvoegsels in alle onderliggende elementen. Het heeft de volgende syntaxis:

xmlns="namespaceURI"

Deze XML bevat HTML-tabelinformatie:

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

Deze XML bevat informatie over een meubel:

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

Naamruimten in echt gebruik

XSLT is een taal die kan worden gebruikt om XML-documenten om te zetten in andere formaten.

Het onderstaande XML-document is een document dat wordt gebruikt om XML om te zetten in HTML.

De naamruimte "http://www.w3.org/1999/XSL/Transform" identificeert XSLT-elementen in een HTML-document:

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

Als je meer wilt weten over XSLT, lees dan onze XSLT-zelfstudie .