我的解析器是否需要XML名称空间?

我的解析器是否需要XML名称空间?,xml,parsing,xml-parsing,Xml,Parsing,Xml Parsing,我正在定义一个XML模式并为其编写解析器。这是完全合法的: <?xml version="1.0"?> <a:root xmlns:a="http://somewhere/a/"> <a:element/> <a:element/> <a:element/> </a:root> 但我对以下两份文件有疑问: <?xml version="1.0"?> <root> <elem

我正在定义一个XML模式并为其编写解析器。这是完全合法的:

<?xml version="1.0"?>
<a:root xmlns:a="http://somewhere/a/">
  <a:element/>
  <a:element/>
  <a:element/>
</a:root>

但我对以下两份文件有疑问:

<?xml version="1.0"?>
<root>
  <element/>
  <element/>
  <element/>
</root>


如果我将这两个文档交给解析器,结果应该是什么?在这个主题上有类似w3的建议吗


出于您的兴趣,以下是我的想法:

  • 对于没有任何
    xmlns
    声明的文档,结果应该是空对象

  • 对于混合了
    xmlns
    的文档,结果应该是只包含
    元素的文档


  • 您真的在编写自己的解析器吗?或者您只是在编写自己的模式?我不明白为什么您需要自己做XML解析器为什么不使用@JanusTroelsen:我正在为它编写模式和解析器。当然,我不是从头开始编写XML解析器。@JanusTroelsen:XSD验证工具会告诉我文档是否正确。它们是完全正确的XML文档。这个问题不是关于它们的形式,而是它们的意义。
    <?xml version="1.0"?>
    <a:root xmlns:a="http://somewhere/a/" xmlns:b="http://somewhere/b/">
      <a:element/>
      <b:element/>
      <element/>
      <element/>
    </a:root>