我有一个描述架构的XSD文件。
架构中的根元素需要一个在另一个xsd(我有url for)中定义的属性。具体来说,我希望文档的根元素需要属性:
xsi:noNamespaceSchemaLocation="schema/SomeSchema.xs"
,其中
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
我如何在文档xsd中描述这个?
答案 0 :(得分:1)
xsd.exe基于XSD 1.0规范;该规范不适用于对xsi:attributes的引用。
但是,这应该适用于XSD 1.1处理器:
<?xml version="1.0" encoding="utf-8"?>
<!--XML Schema generated by QTAssistant/XSD Module (http://www.paschidev.com)-->
<xsd:schema xmlns="urn:tempuri-org:XSD" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="urn:tempuri-org:XSD" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="root">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute ref="xsi:noNamespaceSchemaLocation" use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
</xsd:schema>
您无法使其在XSD 1.0中使用XSI命名空间中的属性的原因是因为它们是"special"。 XSD 1.1放松了一些。