我发布的问题是因为我不理解xmlns
,xmlns:xsd
和xmlns:xsi
的关键字。
我找到了一个XpathNavigator MoveToChile
方法的示例,并附加了xml文件示例。
XmlDocument document = new XmlDocument();
document.Load("contosoBooks.xml");
XPathNavigator navigator = document.CreateNavigator();
navigator.MoveToChild("bookstore", "http://www.contoso.com/books");
来自MSDN的示例Xml文件。
<?xml version="1.0" encoding="utf-8" ?>
<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>
您能否描述xmlns
,xmlns:xsd
和xmlns:xsi
的区别。在我的情况下,我可以用什么来代替http://www.contoso.com/books
?或者我可以插入另一个像xmlns="http://www.mycase.com"
这样的xmlns?
或者我不需要简单地包含URL。有点像navigator.MoveToChild("bookstore", "");
我的xml文件,
<?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=""/>
赞赏你的回复。
答案 0 :(得分:1)
查看此tutorial on XML namespaces。
基本上,您为XML命名空间定义前缀以使其更易于使用:
<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" />
属于默认命名空间的那些元素可能是您最需要的那些元素,因此您可以定义一个没有前缀的XML命名空间 - 默认命名空间:
<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" />
现在,XML中没有特定前缀的所有元素(此处为<License>
标记)都是默认 XML命名空间的一部分。