Как я могу использовать наследование (то есть xs: extension) в моей собственной XML-схеме? - PullRequest
3 голосов
/ 15 сентября 2011

Я пытаюсь создать свою собственную XML-схему в Visual Studio.Но я не могу создавать сложные типы, такие как тип Rectangle, или наследуемые типы, такие как Shape.Ниже приведен schema.xsd, и я получаю следующие ошибки:

  1. Пространство имен '' недоступно для ссылки в этой схеме.[строка 6 xs: расширение base = "Shape">

  2. Неопределенный 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>

Ответы [ 2 ]

4 голосов
/ 15 сентября 2011

Вам необходимо привязать префикс к целевому пространству имен:

xmlns:m="MySchema"

и использовать это в ссылках на компоненты, определенные в схеме

base="m:Shape"
3 голосов
/ 05 сентября 2012

Для разрешения 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"> 
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...