2015-01-10 4 views
1

Я пытаюсь написать свой первый XSD. , , XSD выглядит следующим образом и не подтверждается.Ошибка проверки XSD - сложный тип, указанный в том же определении

<xsd:schema elementFormDefault="qualified" 
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <xsd:complexType name="Hdr"> 
     <xsd:sequence> 
      <xsd:element name="ID" type="xsd:string" /> 
     </xsd:sequence> 
    </xsd:complexType>  
    <xsd:element name="Header" type="xsd:Hdr" /> 
</xsd:schema> 

Я использую http://www.utilities-online.info/xsdvalidation/ для проверки

Я получаю эту ошибку

Не valid.Error - Линия 7, 49: org.xml.sax.SAXParseException; lineNumber: 7; columnNumber: 49; src-resolve.4.2: Компонент ошибки «xsd: Hdr». Было обнаружено, что «xsd: Hdr» находится в пространстве имен «http://www.w3.org/2001/XMLSchema», но компоненты из этого пространства имен не могут быть использованы из документа схемы «null». Если это неправильное пространство имен, возможно, необходимо изменить префикс «xsd: Hdr». Если это правильное пространство имен, то к 'null' следует добавить соответствующий тег 'import'. Ошибка - строка 7, 49: org.xml.sax.SAXParseException; lineNumber: 7; columnNumber: 49; src-resolve: Не удается разрешить имя 'xsd: Hdr' компоненту определения типа (n).

Я не могу понять, что не так в моем XSD. Может ли кто-нибудь помочь.

ответ

2

Изменить

<xsd:element name="Header" type="xsd:Hdr" /> 

в

<xsd:element name="Header" type="Hdr" /> 

Если целевое пространство имен были определены, вы должны использовать его префикс для ссылки Hdr, но вы никогда не использовать http://www.w3.org/2001/XMLSchema пространство имен, чтобы сделать такую ​​ссылку ,

+0

Спасибо @kjhughes – Guddu

Смежные вопросы