Detailed introduction to code examples of namespaces in XML

黄舟
Release: 2017-03-29 15:55:58
Original
1562 people have browsed it

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>
Copy after login

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>
Copy after login

If the above two XML document fragments happen to be used together, there will be a naming conflict because both fragments contain

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>
Copy after login

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>
Copy after login

Now it has There is no element naming conflict problem, because the two documents use different prefixes for their respective table elements, which are ( and ) # 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>
Copy after login

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>
Copy after login

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"
Copy after login

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


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

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">
Copy after login

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>
Copy after login

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>
Copy after login

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

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>
Copy after login

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!

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template