2012-02-27 2 views
14

Я совершенно не знаком с XML-схемой, и я пытаюсь убрать основы. Вот мой XML-код схемы (имя файла: example1.xsd):Ошибка проверки схемы xml «префикс не связан»

<?xml version="1.0"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns:sample="http://www.example" 
targetNamespace="http://www.example.com" 
elementFormDefault="qualified"> 

<xs:element name="school"> 
    <xs:complexType> 
    <xs:sequence> 
     <xs:element name="element1" type="xs:string"/> 
     <xs:element name="element2" type="xs:string"/> 
     <xs:element name="element3" type="xs:string"/> 
     <xs:element name="element4" type="xs:string"/> 
    </xs:sequence> 
    </xs:complexType> 
</xs:element> 

</xs:schema> 

Вот XML документ.

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

<sample:school xmlns="http://www.example.com" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="./example1.xsd"> 

     <element1>hello</element1> 
     <element2>hello</element2> 
     <element3>hello</element3> 
     <element4>hello</element4> 

</sample:school> 

При попытке проверить файл XML, я получаю сообщение об ошибке от NetBeans, который говорит: Приставка «образец» для элемента «образец: школы» не привязана. [9]

ответ

16

В вашем XML, вам необходимо либо:

. Удалить префикс sample: из sample:school

или

B. Изменение xmlns="http://www.example.com" к xmlns:sample="http://www.example.com" и добавить префикс sample: к остальным элементам (<sample:element1>, <sample:element2> и т.д.)

10

Когда вы получите сообщение об ошибке, как это самый простой способ это добавить объявление префиксов; в вашем случае, как на схеме, просто добавьте в корневой элемент следующий атрибут:

xmlns:sample="http://www.example.com" 

Кроме того, это относится скорее с XML namespaces.

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