Όνομα Χώρου XML

Ο ονοματικός χώρος XML παρέχει μια μέθοδο για την αποφυγή συγκρούσεων ονομάτων στοιχείων.

Συγκρουση ονομάτων

Στο XML, τα ονόματα των στοιχείων καθορίζονται από τους προγραμματιστές. Όταν δύο διαφορετικές τεκμηρίες χρησιμοποιούν το ίδιο όνομα στοιχείου, προκύπτει συγκρουση ονομάτων.

Αυτό το XML μεταφέρει πληροφορίες από μια συγκεκριμένη τράπεζα:

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

Αυτό το XML περιέχει πληροφορίες για το τραπέζι (ένα έπιπλο):

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

Αν αυτές οι δύο XML τεκμηρίες χρησιμοποιηθούν μαζί, λόγω του ότι και οι δύο περιέχουν στοιχεία <table> με διαφορετικό περιεχόμενο και定義, θα προκύψει συγκρουση ονομάτων.

Ο χρήστης ή η εφαρμογή XML δεν θα μπορέσει να καθορίσει πώς να χειριστεί αυτές τις συγκρούσεις.

Επίλυση συγκρούσεων ονομάτων με προέλαση

Με τη χρήση προέλασης μπορεί να αποφευχθεί εύκολα η συγκρουση ονομάτων στο XML.

Αυτό το XML περιέχει πληροφορίες για τα HTML πίνακες και ένα έπιπλο:

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

Τώρα, δεν υπάρχει συγκρούση ονομάτων, λόγω του ότι και οι δύο τεκμηρίες χρησιμοποιούν διαφορετικά ονόματα για τα στοιχεία <table> τους (<h:table> Και <f:table>)。

Με τη χρήση προέλασης, δημιουργήσαμε δύο διαφορετικούς τύπους στοιχείων <table>.

XML Ονοματικός Χώρος - Ενδεικτικός Πίνακας xmlns

Όταν χρησιμοποιείται πρόθεμα στο XML, πρέπει να οριστεί το πρόθεμα.Ονοματοχώρος(Namespaces).

Ο ονοματοχώρος μπορεί να οριστεί από το στοιχείο του κινήματος αρχής xmlns παράμετρος για να οριστεί.

Η δήλωση ονοματοχώρου χρησιμοποιεί αυτή τη γραμματική: 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>

Στο παρακάτω παράδειγμα:

στο πρώτο στοιχείο <table>; xmlns η ιδιότητα είναι h: Το πρόθεμα παρέχει περιορισμένο ονοματοχώρο.

στο δεύτερο στοιχείο <table>; xmlns η ιδιότητα είναι f: Το πρόθεμα παρέχει περιορισμένο ονοματοχώρο.

Αν οριστεί ονοματοχώρος για το στοιχείο, όλα τα υποστοιχε με τον ίδιο πρόθεμα συνδέονται με τον ίδιο ονοματοχώρο.

Οι ονοματοχώροι μπορούν επίσης να δηλωθούν στο ρίζα XML στοιχείο:

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

Σημείωση:Ο αναλυτής δεν χρησιμοποιεί το URI του ονοματοχώρου για να βρει πληροφορίες.

Ο σκοπός της χρήσης URI είναι απλώς να παρέχει μοναδικό όνομα για τον ονοματοχώρο.

Ωστόσο, πολλές εταιρείες συχνά χρησιμοποιούν ονοματοχώρους ως δείκτες για να δείχνουν σε ιστοσελίδες που υπάρχουν πραγματικά, οι οποίες περιέχουν πληροφορίες για τον ονοματοχώρο.

Ομοιόμορφος Ονοματοχώρος Πορείας (URI)

Ομοιόμορφος Ονοματοχώρος Πορείας (Uniform Resource Identifier,URI) είναι μια αλφαβητική συμβολοσειρά που αναγνωρίζει πόρους του Διαδικτύου.

Η πιο συχνά χρησιμοποιούμενη URI είναιΟμοιόμορφος Οδηγός Πόρων (Uniform Resource Locator,URL),η οποία αναγνωρίζει διευθύνσεις διαδικτύου.

Μια άλλη λιγότερο συχνά χρησιμοποιούμενη μορφή URI είναιΟμοιόμορφος Ονοματοχώρος Πόρων (Uniform Resource Name,URN)。

Προεπιλεγμένη ονοματοχώρος (Default Namespaces)

Η οριστική των προεπιλεγμένων ονοματικών χώρων για τα στοιχεία μας μπορεί να μας σώσει από την ανάγκη να χρησιμοποιούμε πρόθεμα σε όλους τους υποστοιχεία.

Παρακαλώ χρησιμοποιήστε την εξής σύνταξη:

xmlns="namespaceURI"

Αυτό το XML έγγραφο φέρει πληροφορίες για ένα HTML πίνακα:

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

Αυτό το XML φέρει πληροφορίες για ένα έπιπλο:

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

Η πραγματική εφαρμογή του ονοματικού χώρου

Το XSLT είναι μια γλώσσα που μπορεί να χρησιμοποιηθεί για τη μετατροπή εγγράφων XML σε άλλες μορφές.

Το παρακάτω XML έγγραφο χρησιμοποιείται για τη μετατροπή XML σε HTML.

Αν παρατηρήσετε προσεκτικά τον παρακάτω XSL έγγραφο, θα δείτε ότι οι περισσότερες ετικέτες είναι ετικέτες HTML.

Όλα τα στοιχεία που δεν είναι HTML έχουν πρόθεμα xsl και υποδεικνύονται από τον παραπάνω ονοματικό χώρο: "http://www.w3.org/1999/XSL/Transform":

Το ονοματικός χώρος "http://www.w3.org/1999/XSL/Transform" σημαίνει τα στοιχεία XSLT ενός 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>

If you want to learn more about XSLT, please read our XSLT Tutorial.