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

前端之家收集整理的这篇文章主要介绍了如何在我自己的xml架构中使用继承(即xs:extension)?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试在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"

猜你在找的XML相关文章