当前位置 : 主页 > 网页制作 > xml >

如何在我自己的xml架构中使用继承(即xs:extension)?

来源:互联网 收集:自由互联 发布时间:2021-06-13
我正在尝试在Visual Studio中创建自己的xml架构.但我不能创建任何复杂类型,如Rectangle类型,也不能创建可继承类型,如Shape. schema.xsd如下,我得到的错误是: 名称空间”无法在此架构中引用
我正在尝试在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>
您需要将前缀绑定到目标命名空间:

xmlns:m="MySchema"

并在对模式中定义的组件的引用中使用它

base="m:Shape"
网友评论