我正在使用Visual Studio 2013来开发一个XSD架构,该架构导入另一个架构以使用它的"颈部"类型。出于某种原因,Visual Studio不喜欢我使用type =" wn:Neck",导致标题中提到的错误。下面是我的父模式,之后是子模式。在视觉上,架构看起来正确,但VS2013不同意。有谁知道为什么会这样?我见过类似的问题,但没有找到直接解决这个问题的方法。
父
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:wn="http://fxb.co/xsd/warmoth/neck.xsd"
targetNamespace="http://fxb.co/xsd/warmoth/customitem.xsd">
<xs:import namespace="http://fxb.co/xsd/warmoth/neck.xsd" schemaLocation="./Neck.xsd"/>
<xs:element name="CustomItems">
<xs:complexType>
<xs:sequence>
<xs:element name="CustomItemOption">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Neck" type="wn:Neck" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
子
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://fxb.co/xsd/warmoth/neck.xsd" >
<xs:element id="Neck" name="Neck">
<xs:complexType>
<xs:sequence>
<xs:element name="Headstock">
<xs:complexType>
<xs:attribute name="active" type="xs:boolean" default="true" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
答案 0 :(得分:2)
在父XSD中,更改
<xs:element minOccurs="0" maxOccurs="unbounded" name="Neck" type="wn:Neck" />
到
<xs:element minOccurs="0" maxOccurs="unbounded" ref="wn:Neck" />
因为您希望从子XSD的命名空间引用Neck元素,而不是。