Home  >  Article  >  Backend Development  >  Detailed introduction to code examples of namespaces in XML

Detailed introduction to code examples of namespaces in XML

黄舟
黄舟Original
2017-03-29 15:55:581554browse

XML Namespace provides a way to avoid naming elements Conflicting methods.

---------------------------------------- ----------------------------------------

Naming conflict
Because the elements used in XML documents are not fixed, it may happen that two different XML documents use the same name to describe different types of elements, and this situation often leads to naming conflicts. Please see the following two. Example

This XML document carries fruit information in the table element:

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

This XML document carries table information (furniture, not edible) in the table element:

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

If the above two XML document fragments happen to be used together, there will be a naming conflict because both fragments contain f5d188ed2c074f8b944552db028f98a1 elements, and the definitions of these two table elements. The contents are different from each other.

---------------------------------- --------------------------------------------------

Use prefixes to resolve naming conflicts
The following XML document carries information in the table element:

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

The following XML document carries information about the furniture table:

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

Now it has There is no element naming conflict problem, because the two documents use different prefixes for their respective table elements, which are (fae077d51b591786197c1ce2523c9adb and 20e0d2c31ebbe4ee5491ba472c0918be) # in the two documents.

##By using the prefix, we create two different table elements

------------------------ -------------------------------------------------- -----

Use namespace

The following XML document carries information in the table element:

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

The following XML document carries information about the furniture table:

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

In addition to using prefixes in the above two examples, both table elements use the xmlns

attribute to associate the elements with different namespaces

--. -------------------------------------------------- ----------------------------

Namespace attributes

Namespace attributes are generally placed at the start tag of an element , its usage syntax is as follows:

xmlns:namespace-prefix="namespace"

In the above example, the namespace defines an Internet address:


xmlns:f="http://www.w3schools.com/furniture"

W3C Naming specification statement The namespace itself is a Uniform Resource Identifier, Uniform Resource Identifier (URI).

When we use a namespace at the start tag of an element, all child elements of the element will be related to the same namespace through a prefix.

Note: The network address used to identify the namespace is not called by the XML parser. The XML parser does not need to find information from this network address. The role of the network address is only to give the namespace a unique Name, so this network address can also be virtual. However, many companies often treat this network address value like a real Web page. This address contains more detailed information about the current namespace.

Uniform Resource Identifier

Uniform Resource Identifier (A Uniform Resource Identifier (URI)) is a
string that identifies a network resource. The most common URI should be the Uniform Resource Locator (URL). A URL is used to identify the address of a network host. On the other hand, another less commonly used URI is the Universal Resource Name (URN). In our case, URLs are generally used.

Since the previous example used the URL address to identify the namespace, we can be sure that this namespace is unique.

-------------------------------------------------- ------------------------------------

Default namespace

Definition A default XML namespace eliminates the need for prefixes in the opening tags of child elements. His syntax is as follows:

<element xmlns="namespace">

The following XML document contains fruit information in the table element:


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

The following XML document contains furniture table information:

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

-------------------------------------------------- ------------------------------------

Use namespace

file start When using XSL, you will find that namespaces are used so frequently. XSL style sheets are mainly used to convert XML documents into a format similar to HTML files.

If you look at the XSL document below, you will find that many tags are HTML tags. Those tags are not HTML tags, but prefixed XSL. This XSL prefix is ​​identified by the namespace "http://www.w3.org/TR/xsl":

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl=" 
<xsl:template match="/">
<html>
<body>
<table border="2" bgcolor="yellow">
<tr>
<th>Title</th>
<th>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>

The above is the detailed content of Detailed introduction to code examples of namespaces in XML. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn