One goal of XML is to further facilitate the exchange of information; therefore, it makes sense that most XML documents will be designed to be shared with other users, be they developers, designers, or so on. This is why there are so many XML vocabularies currently being developed, ranging from MathML to SVG. One feature all these vocabularies have in common is their own unique Namespaces associated with them.
Having a Namespace associated with a vocabulary is a good way to assist users in using your vocabularies. For example, it may be desirable to mix and match different vocabularies within a single XML document. For instance, if you are writing a paper for submission to a mathematics journal, you might have a generic XML format for the article; however, you might want to include some MathML markup for your formulas, or perhaps some SVG markup for diagrams or illustrations.
The ability to utilize multiple vocabularies within a single document because they are all well-formed XML is one of the great aspects of XML that makes it so “extensible.” However, to avoid possible Namespace conflicts between different vocabularies and each other, or with your own document, you should always use Namespaces when working with XML documents based on a publicly published XML vocabulary.
Here's a list of the Namespaces for some of the technologies discussed in this book:
XML Schemas | http://www.w3.org/2001/XMLSchema |
XML Schema Instance | http://www.3.org/2001/XMLSchema-Instance |
XSL | http://www.w3.org/1999/XSL |
XSLT | http://www.w3.org/1999/XSL/Transform |
XSL-FO | http://www.w3.org/1999/XSL/Format |
XLink | http://www.w3.org/1999/xlink |
XInclude | http://www.w3.org/2001/XInclude |
XHTML | http://www.w3.org/1999/xhtml |
SVG | http://www.w3.org/2000/svg |
SMIL | http://www.w3.org/2001/SMIL20/ |
RDF | http://www.w3.org/1999/02/22-rdf-syntax-ns# |
Keep in mind that as Recommendations are updated, the Namespace associated with the Recommendation's current version may change as well. For example, when XML 2.0 is released, it will likely have a different Namespace from v1.0 to avoid confusion between the versions.
3.129.39.252