【发布时间】:2015-07-13 11:14:34
【问题描述】:
我收到这种 XML:
<?xml version="1.0" encoding="utf-8"?>
<root-element xmlns="SomeSpecificNameSpace">
<some-elements />
<some-other-elements/>
<some-other-other-element/>
<element-with-empty-namespace xmlns=""/>
</root-element>
我必须检查一下我有这个element-with-empty-namespace,但我不关心内容,所以我尝试了以下方法:
<?xml version="1.0" encoding="utf-8" ?>
<xs:schema targetNamespace="SomeSpecificNameSpace"
elementFormDefault="qualified"
xmlns="SomeSpecificNameSpace"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="MyRootElement">
<xs:complexType>
<xs:sequence>
<!-- Others types here -->
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="element-with-empty-namespace" minOccurs="0" maxOccurs="1" xmlns="">
<xs:complexType>
<xs:sequence>
<xs:any minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:anyAttribute/>
</xs:complexType>
</xs:element>
</xs:schema
但它似乎不接受我的元素,说它期待一个名称空间为 SomeSpecificNameSpace 的元素。
我知道这个结构有点奇怪,但是这个element-with-empty-namespace是我们通过XML提供的一个“值”。
【问题讨论】:
-
我相信
element-with-empty-namespace"inherits"SomeSpecificNamespace只需在root-element内部声明即可 -
是的,但是我的输入 xml 并不是到处都有相同的命名空间
-
您需要处理的 XML 与您提供的样本一模一样吗?我说的是 XML 而不是 xsd。
-
此外,
element-with-empty-namespace应该在MyRootElement内,根据 xml 示例,名称应该是root-namespace。