Ошибка при проверке XML-схемы - PullRequest
7 голосов
/ 21 сентября 2011

Я хочу создать простую схему для пустого элемента

 <product orderid="4"/>

Я создал свой XSD следующим образом:

<?xml version="1.0" encoding="UTF-8"?>


<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://xml.netbeans.org/schema/first"
xmlns:tns="http://xml.netbeans.org/schema/first"
elementFormDefault="qualified">

<xsd:element name="product" type="prodtype"/>
<xsd:complexType name="prodtype">
        <xsd:attribute name="prodid" type="xsd:integer"/>
</xsd:complexType>

</xsd:schema>

Я получаю следующую ошибку при проверке XML поXSD:

 Error resolving component 'prodtype'. It was detected that 'prodtype' has no namespace, but components with no target namespace are not referenceable from schema document 'file:/D:/Teacher%20assistant%202011/First%20term/web%20services/test%20programs/BpelModule1/src/product.xsd'. If 'prodtype' is intended to have a namespace, perhaps a prefix needs to be provided. If it is intended that 'prodtype' has no namespace, then an 'import' without a "namespace" attribute should be added to 'file:/D:/Teacher%20assistant%202011/First%20term/web%20services/test%20programs/BpelModule1/src/product.xsd'.

Ответы [ 2 ]

13 голосов
/ 06 июня 2013

Это будет работать, добавляя 'tns:' к типу.

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://xml.netbeans.org/schema/first"
    xmlns:tns="http://xml.netbeans.org/schema/first"
    elementFormDefault="qualified">    
    <xsd:element name="product" type="tns:prodtype"/>
    <xsd:complexType name="prodtype">
        <xsd:attribute name="prodid" type="xsd:integer"/>
    </xsd:complexType>    
</xsd:schema>

В данном случае prodtype определяется в targetNamespace схемы 'http://xml.netbeans.org/schema/first'.. Для ссылки на него необходимо включить определенное пространство имен. В вашем примере вы пытаетесь сослаться на prodtype. в пространстве имен по умолчанию, которое не определено.

7 голосов
/ 06 сентября 2012

Если вы измените свой XSD и вставите xmlns="http://xml.netbeans.org/schema/first" в xsd:schema элемент, он должен работать (он сделал для меня)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...