开发者

Question on xmlns for Xml file in C#

I post the question for I don't understand the keywords of xmlns, xmlns:xsd and xmlns:xsi.

I find an example for XpathNavigator MoveToChile method as this, attached the xml file sample as well.

XmlDocument document = new XmlDocument();
document.Load("contosoBooks.xml");
XPathNavigator navigator = document.CreateNavigator();

navigator.MoveToChild("bookstore", "http://www.contoso.com/books");

The sample Xml file from MSDN.

<?xml version="1.0" encoding="utf-8" ?>开发者_JS百科
<bookstore xmlns="http://www.contoso.com/books">
    <book genre="autobiography" publicationdate="1981-03-22" ISBN="1-861003-11-0">
        <title>The Autobiography of Benjamin Franklin</title>
        <author>

Can you please describe the the difference for xmlns, xmlns:xsd and xmlns:xsi. What can I used to replace http://www.contoso.com/books in my case? or I can just insert another xmlns like xmlns="http://www.mycase.com"?

Or I don't need include the URL simply. a little like this navigator.MoveToChild("bookstore", "");

My xml file as this,

<?xml version="1.0" encoding="UTF-8"?>
<Equipment xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <License licenseId="" licensePath=""/>

Appreciated for your replies.


Check out this tutorial on XML namespaces.

Basically, you define a prefix for your XML namespace to make it easier to use:

<Equipment 
     xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <License licenseId="" licensePath=""/>
   <xsd:element ..... xsi:nil="true" />

Those elements that belong into the default namespace are probably those that you need the most, so you can define one XML namespace without a prefix - the default namespace:

<Equipment 
     xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns="http://www.yourcompany.com/your/default/namespace" >
   <License licenseId="" licensePath=""/>
   <xsd:element ..... xsi:nil="true" />

Now, all the elements in your XML without a specific prefix (here: the <License> tag) are part of your default XML namespace.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜