我正在尝试在Visual Studio中创建自己的xml架构。但我不能创建任何复杂类型,如Rectangle类型,也不能创建可继承类型,如Shape。 schema.xsd如下,我得到的错误是:
此架构中无法引用“命名空间”。 [第6行xs:扩展基数=“形状”>
未定义的complexType'Shape'用作复杂类型扩展的基础[第6行]
内容:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema
attributeFormDefault="unqualified"
elementFormDefault="qualified"
xmlns:xs ="http://www.w3.org/2001/XMLSchema"
targetNamespace="MySchema">
<xs:complexType name="Rectangle">
<xs:complexContent>
<xs:extension base="Shape">
<xs:sequence>
<xs:element minOccurs="0" name ="X" type="xs:int"/>
<xs:element minOccurs="0" name ="Y" type="xs:int"/>
<xs:element minOccurs="0" name ="Width" type="xs:int"/>
<xs:element minOccurs="0" name ="Height" type="xs:int"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Shape">
<xs:sequence>
<xs:element name="Complexity" type="xs:string"/>
</xs:sequence>
</xs:complexType>
答案 0 :(得分:4)
您需要将前缀绑定到目标命名空间:
xmlns:m="MySchema"
并在对模式中定义的组件的引用中使用它
base="m:Shape"
答案 1 :(得分:3)
要解决Namespace '' is not available to be referenced in this schema.
您可以设置默认的''
命名空间,而无需更改文件的其余部分:
添加此xmlns="MySchema"
<?xml version="1.0" encoding="utf-8"?>
<xs:schema
attributeFormDefault="unqualified"
elementFormDefault="qualified"
xmlns:xs ="http://www.w3.org/2001/XMLSchema"
xmlns="MySchema"
targetNamespace="MySchema">
...