我正在尝试更新现有架构以使用其自己的命名空间,因此我可以稍后将其导入另一个架构并明确正在使用的类型来自导入的架构。
我尝试更改默认命名空间和目标命名空间,但它导致架构验证中断并隐藏根节点。从我所看到的我已经将我的根元素隐藏在另一个命名空间中,但我不确定如何配置它以获得我想要的结果。
这是我尝试过的基本示例
XML
<Parent Id="P">
<Child Id="C"/>
</Parent>
XSD
<xsd:schema targetNamespace="http://myNameSpace.com"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://myNameSpace.com"
elementFormDefault="qualified" >
<xsd:element name="Child">
<xsd:complexType>
<xsd:attribute name="Id" />
</xsd:complexType>
</xsd:element>
<xsd:element name="Parent">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="Child" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="Id" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
验证
无效。
错误 - 第 1、19 行:org.xml.sax.SAXParseException;行号:1;列号:19;cvc-elt.1:找不到元素“父”的声明。