CINXE.COM

XML Namespace

<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="keywords" content="xml namespace, duplicate element names, syntax, programming, how to, xml tutorial, extensible markup language, learn xml"> <meta name="Description" content="Learn about XML namespaces with this free XML tutorial."> <link rel="canonical" href="https://www.quackit.com/xml/tutorial/xml_namespace.cfm"> <title>XML Namespace</title> <script src="//ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> <link rel="shortcut icon" href="/pix/favicon96.png"> <link rel="apple-touch-icon" href="/pix/apple-touch-icon.png"> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;1,400&display=swap" rel="stylesheet"> <link href="/common/css/master.45.min.css" rel="stylesheet"> <script async src="https://cdn.fuseplatform.net/publift/tags/2/3499/fuse.js"></script> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-Q3H025ZKLN"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-Q3H025ZKLN'); </script> </head> <body> <header class="site-header"> <div class="site-header-base"> <div class="site-logo"> <a title="Quackit Homepage" target="_top" href="/"><img src="/pix/quackit_logo_watermark.png" width="87" height="33" alt="Quackit Logo"></a> </div> <button id="site-nav-toggler" class="site-nav-toggler" aria-expanded="false" aria-controls="site-nav"> <span class="sr-only">Toggle navigation</span> &#9776; </button> </div> <nav id="site-nav" class="site-nav"> <div class="site-links"> <ul> <li><a href="/"><i class="fa fa-home"></i> <span class="sr-only">Home</span></a></li> <li><a href="/html/">HTML</a></li> <li><a href="/css/">CSS</a></li> <li><a href="/scripting/">Scripting</a></li> <li><a href="/database/">Database</a></li> </ul> </div> <div class="site-search-top"> <form action="/search/" id="cse-search-box-bottom" class="site-search"> <div> <input type="hidden" name="cx" value="partner-pub-6331358926293806:98x0fk-bbgi"> <input type="hidden" name="cof" value="FORID:10"> <input type="hidden" name="ie" value="ISO-8859-1"> <input type="text" name="q" size="20" class="site-search-input"> <button type="submit" name="sa" class="site-search-button"><i class="fa fa-search"></i></button> </div> </form> </div> </nav> </header> <div class="main"> <article class="content"> <h1 class="page-title">XML Namespace</h1> <div class="ad ad-top"> <!-- GAM 71161633/QCKIT_quackit/article_header --> <div data-fuse="23059883623"></div> </div> <ul class="pager"> <li><a href="/xml/tutorial/xml_xsl.cfm"><i class="fa fa-long-arrow-left" aria-hidden="true"></i> XML XSL</a></li> <li><a href="/xml/tutorial/xml_local_namespace.cfm">Local Namespace <i class="fa fa-long-arrow-right" aria-hidden="true"></i></a></li> </ul> <p class="lead">In XML, a <dfn>namespace</dfn> is used to prevent any conflicts with element names.</p> <p>Because XML allows you to create your own element names, there's always the possibility of naming an element exactly the same as one in another <a href="/xml/tutorial/xml_documents.cfm">XML document</a>. This might be OK if you never use both documents together. But what if you need to combine the content of both documents? You would have a name conflict. You would have two different elements, with different purposes, both with the same name.</p> <div class="ad"> <!-- GAM 71161633/QCKIT_quackit/article_incontent_1 --> <div data-fuse="23059883629"></div> </div> <h2>Example Name Conflict</h2> <p>Imagine we have an XML document containing a list of books. Something like this:</p> <script src="/common/js/codemirror/lib/codemirror.js"></script> <script src="/common/js/codemirror/mode/htmlmixed/htmlmixed.js"></script> <script src="/common/js/codemirror/mode/css/css.js"></script> <script src="/common/js/codemirror/mode/javascript/javascript.js"></script> <script src="/common/js/codemirror/mode/xml/xml.js"></script> <div class="code-only"> <textarea id="example1" autocomplete="off" spellcheck="false">&lt;books&gt;&#xd;&#xa; &lt;book&gt;&#xd;&#xa; &lt;title&gt;The Dream Saga&lt;&#x2f;title&gt;&#xd;&#xa; &lt;author&gt;Matthew Mason&lt;&#x2f;author&gt;&#xd;&#xa; &lt;&#x2f;book&gt;&#xd;&#xa; ...&#xd;&#xa;&lt;&#x2f;books&gt;</textarea> </div> <script> var exampleCode1 = CodeMirror.fromTextArea(document.getElementById("example1"), { mode: "htmlmixed", tabMode: "indent", styleActiveLine: false, lineNumbers: false, lineWrapping: true, theme: "q-dark" }); </script> <p>And imagine we want to combine it with the following <a href="/html/tutorial/getting_started.cfm">HTML page</a>:</p> <script src="/common/js/codemirror/mode/htmlmixed/htmlmixed.js"></script> <div class="code-only"> <textarea id="example2" autocomplete="off" spellcheck="false">&lt;html&gt;&#xd;&#xa; &lt;head&gt;&#xd;&#xa; &lt;title&gt;Cool Books&lt;&#x2f;title&gt;&#xd;&#xa; &lt;&#x2f;head&gt;&#xd;&#xa; &lt;body&gt;&#xd;&#xa; &lt;p&gt;Here&#x27;s a list of cool books...&lt;&#x2f;p&gt;&#xd;&#xa;&#xd;&#xa; &#x28;XML content goes here&#x29;&#xd;&#xa;&#xd;&#xa; &lt;&#x2f;body&gt;&#xd;&#xa;&lt;&#x2f;html&gt;</textarea> </div> <script> var exampleCode2 = CodeMirror.fromTextArea(document.getElementById("example2"), { mode: "htmlmixed", tabMode: "indent", styleActiveLine: false, lineNumbers: false, lineWrapping: true, theme: "q-dark" }); </script> <p>We will encounter a problem if we try to combine the above documents. This is because they both have an element called <code>title</code>. One is the title of the book, the other is the title of the HTML page. We have a name conflict.</p> <p>What we can do to prevent this name conflict is, create a namespace for the XML document.</p> <h2>Example Namespace</h2> <p>Using the above example, we could change the XML document to look something like this:</p> <div class="code-only"> <textarea id="example3" autocomplete="off" spellcheck="false">&lt;bk&#x3a;books xmlns&#x3a;bk&#x3d;&quot;http&#x3a;&#x2f;&#x2f;somebooksite.com&#x2f;book_spec&quot;&gt;&#xd;&#xa; &lt;bk&#x3a;book&gt;&#xd;&#xa; &lt;bk&#x3a;title&gt;The Dream Saga&lt;&#x2f;bk&#x3a;title&gt;&#xd;&#xa; &lt;bk&#x3a;author&gt;Matthew Mason&lt;&#x2f;bk&#x3a;author&gt;&#xd;&#xa; &lt;&#x2f;bk&#x3a;book&gt;&#xd;&#xa; ...&#xd;&#xa;&lt;&#x2f;bk&#x3a;books&gt;</textarea> </div> <script> var exampleCode3 = CodeMirror.fromTextArea(document.getElementById("example3"), { mode: "htmlmixed", tabMode: "indent", styleActiveLine: false, lineNumbers: false, lineWrapping: true, theme: "q-dark" }); </script> <p>We have added the <code>xmlns:{prefix}</code> attribute to the root element. We have assigned this attribute a unique value. This unique value is usually in the form of a Uniform Resource Identifier (URI). This defines the namespace.</p> <p>And, now that the namespace has been defined, we have added a <code>bk</code> prefix to our element names. </p> <p>Now, when we combine the two documents, the XML processor will see two different element names: <code>bk:title</code> (from the XML document) and <code>title</code> (from the HTML document).</p> <div class="info"> <p><b>Note:</b> If you have defined your tags and attributes in a <a href="/xml/tutorial/dtd_introduction.cfm">DTD</a>, you will need to update your DTD in order to make the new element names legal.</p> </div> <ul class="pager"> <li><a href="/xml/tutorial/xml_xsl.cfm"><i class="fa fa-long-arrow-left" aria-hidden="true"></i> XML XSL</a></li> <li><a href="/xml/tutorial/xml_local_namespace.cfm">Local Namespace <i class="fa fa-long-arrow-right" aria-hidden="true"></i></a></li> </ul> </article> <div class="sidebar"> <nav> <ul> <li> <h3><a href="/xml/tutorial/" title="">XML Tutorial</a></h3> <ul> <li><a href="/xml/tutorial/about_xml.cfm" title="">About XML</a></li> <li><a href="/xml/tutorial/xml_viewers.cfm" title="">XML Viewers</a></li> <li><a href="/xml/tutorial/xml_editors.cfm" title="">XML Editors</a></li> <li><a href="/xml/tutorial/xml_documents.cfm" title="">XML Documents</a></li> <li><a href="/xml/tutorial/xml_syntax.cfm" title="">XML Syntax</a></li> <li><a href="/xml/tutorial/xml_elements.cfm" title="">XML Elements</a></li> <li><a href="/xml/tutorial/xml_attributes.cfm" title="">XML Attributes</a></li> <li><a href="/xml/tutorial/xml_css.cfm" title="">XML with CSS</a></li> <li><a href="/xml/tutorial/xml_xsl.cfm" title="">XML with XSL</a></li> <li><a href="/xml/tutorial/xml_namespace.cfm" title="">XML Namespace</a></li> <li><a href="/xml/tutorial/xml_local_namespace.cfm" title="">XML Local Namespace</a></li> <li><a href="/xml/tutorial/xml_default_namespace.cfm" title="">XML Default Namespace</a></li> <li><a href="/xml/tutorial/xml_entities.cfm" title="">XML Entities</a></li> <li><a href="/xml/tutorial/xml_creating_entities.cfm" title="">XML Creating Entities</a></li> <li><a href="/xml/tutorial/xml_cdata.cfm" title="">XML CDATA</a></li> </ul> </li> <li> <h3 class="heading-only">DTD</h3> <ul> <li><a href="/xml/tutorial/dtd_introduction.cfm" title="">DTD Introduction</a></li> <li><a href="/xml/tutorial/dtd_doctype.cfm" title="">DTD DOCTYPE</a></li> <li><a href="/xml/tutorial/dtd_internal_dtd.cfm" title="">DTD Internal</a></li> <li><a href="/xml/tutorial/dtd_external_dtd.cfm" title="">DTD External</a></li> <li><a href="/xml/tutorial/dtd_combined_dtd.cfm" title="">DTD Combined</a></li> <li><a href="/xml/tutorial/dtd_fpi.cfm" title="">DTD FPI</a></li> <li><a href="/xml/tutorial/dtd_elements.cfm" title="">DTD Elements</a></li> <li><a href="/xml/tutorial/dtd_element_operators.cfm" title="">DTD Element Operators</a></li> <li><a href="/xml/tutorial/dtd_attributes.cfm" title="">DTD Attributes</a></li> <li><a href="/xml/tutorial/dtd_attribute_default_values.cfm" title="">DTD Attribute Default Values</a></li> <li><a href="/xml/tutorial/dtd_attribute_types.cfm" title="">DTD Attribute Types</a></li> <li><a href="/xml/tutorial/dtd_general_entities.cfm" title="">DTD General Entities</a></li> <li><a href="/xml/tutorial/dtd_parameter_entities.cfm" title="">DTD Parameter Entities</a></li> <li><a href="/xml/tutorial/dtd_embedded_images.cfm" title="">DTD Embedded Images</a></li> </ul> </li> <li> <h3 class="heading-only">XSLT</h3> <ul> <li><a href="/xml/tutorial/xslt_introduction.cfm" title="">XSLT Introduction</a></li> <li><a href="/xml/tutorial/xslt_example.cfm" title="">XSLT Example</a></li> <li><a href="/xml/tutorial/xslt_syntax.cfm" title="">XSLT Syntax</a></li> <li><a href="/xml/tutorial/xslt_template.cfm" title="">XSLT &lt;template&gt;</a></li> <li><a href="/xml/tutorial/xslt_apply-templates.cfm" title="">XSLT &lt;apply-templates&gt;</a></li> <li><a href="/xml/tutorial/xslt_value-of.cfm" title="">XSLT &lt;value-of&gt;</a></li> <li><a href="/xml/tutorial/xslt_for-each.cfm" title="">XSLT &lt;for-each&gt;</a></li> <li><a href="/xml/tutorial/xslt_sort.cfm" title="">XSLT &lt;sort&gt;</a></li> <li><a href="/xml/tutorial/xslt_if.cfm" title="">XSLT &lt;if&gt;</a></li> <li><a href="/xml/tutorial/xslt_choose.cfm" title="">XSLT &lt;choose&gt;</a></li> </ul> </li> <li> <h3 class="heading-only">XPath</h3> <ul> <li><a href="/xml/tutorial/xpath_introduction.cfm" title="">XPath Introduction</a></li> <li><a href="/xml/tutorial/xpath_location_path.cfm" title="">XPath Location Path</a></li> <li><a href="/xml/tutorial/xpath_location_path_absolute.cfm" title="">XPath Location Path - Absolute</a></li> <li><a href="/xml/tutorial/xpath_location_path_relative.cfm" title="">XPath Location Path - Relative</a></li> <li><a href="/xml/tutorial/xpath_attributes.cfm" title="">XPath Attributes</a></li> <li><a href="/xml/tutorial/xpath_axis.cfm" title="">XPath Axis</a></li> <li><a href="/xml/tutorial/xpath_node_test.cfm" title="">XPath Node Test</a></li> <li><a href="/xml/tutorial/xpath_predicate.cfm" title="">XPath Predicate</a></li> <li><a href="/xml/tutorial/xpath_node_set.cfm" title="">XPath Node Set</a></li> <li><a href="/xml/tutorial/xpath_comparison_operators.cfm" title="">XPath Comparison Operators</a></li> <li><a href="/xml/tutorial/xpath_boolean_operators.cfm" title="">XPath Boolean Operators</a></li> <li><a href="/xml/tutorial/xpath_number_operators.cfm" title="">XPath Number Operators</a></li> <li><a href="/xml/tutorial/xpath_string_functions.cfm" title="">XPath String Functions</a></li> <li><a href="/xml/tutorial/xml_tutorial_summary.cfm" title="">Tutorial Summary</a></li> </ul> </li> </ul> </nav> <div class="ad ad-left"> <!-- GAM 71161633/QCKIT_quackit/article_vrec_2 --> <div data-fuse="23059511712"></div> </div> </div> <div class="ads"> <div class="ad ad-right"> <!-- GAM 71161633/QCKIT_quackit/article_vrec_1 --> <div data-fuse="23059883626"></div> </div> </div> </div> <div class="searchbox-bottom"> <form action="/search/" id="cse-search-box-bottom" class="site-search"> <div> <input type="hidden" name="cx" value="partner-pub-6331358926293806:npmuvy-i8kk"> <input type="hidden" name="cof" value="FORID:10"> <input type="hidden" name="ie" value="ISO-8859-1"> <input type="text" name="q" size="30" class="site-search-input"> <button type="submit" name="sa" class="site-search-button"><i class="fa fa-search"></i></button> </div> </form> <script src="//cse.google.com/cse/brand?form=cse-search-box-bottom&amp;lang=en"></script> </div> <footer> <p class="about"><a href="/"><i class="fa fa-home"></i> Home</a> | <a href="/about.cfm" rel="nofollow">About</a> | <a href="/contact.cfm" rel="nofollow">Contact</a> | <a href="/terms_of_use.cfm" rel="nofollow">Terms&nbsp;of&nbsp;Use</a> | <a href="/privacy_policy.cfm" rel="nofollow">Privacy&nbsp;Policy</a></p> <p>&#169; Copyright 2000 - 2024 Quackit.com &nbsp;</p> </footer> <script src="/common/js/spectrum/spectrum.js"></script> <script src="/common/js/lightbox2-master/dist/js/lightbox.min.js" charset="utf-8"></script> <script> $(document).ready(function(){ $( "#site-nav-toggler" ).click(function() { $( "#site-nav" ).toggle( "slow" ); }); }); </script> <script> $(function(){var a=window.location.href;$(".sidebar nav a").each(function(){a==this.href&&$(this).closest("li").addClass("selected")})}); </script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10