Namespaces are an important part of XML, and it is essential to understand the concepts behind namespaces in order to query XML documents that use them. This chapter first provides a refresher on namespaces in XML input documents in general. It then covers the use of namespaces in queries: how to declare and refer to them, and how to control their appearance in your results.
Namespaces are used to identify the vocabulary to which XML elements and attributes belong, and to disambiguate names from different vocabularies. For example, both of the XHTML and XSL-FO vocabularies have a
table element, but it has a different structure in each vocabulary. Some XML documents combine elements from multiple vocabularies, and namespaces make it possible to distinguish between them.
Namespaces are defined by a W3C recommendation called Namespaces in XML. Two versions are available: 1.0 and 1.1. XQuery implementations may support either version; you should check with your product's documentation to determine which version is supported.
A namespace is identified by a URI (Uniform Resource Identifier) reference.[*] A namespace URI is most commonly an HTTP URL, such as http://datypic.com/prod. It could also be a Uniform Resource Name (URN), which might take the form
The use of a URI helps to ensure the uniqueness of the name. If a person owns the domain name datypic.com, he is likely to have some control over that ...