Ошибка проверки XML-схемы "Префикс не связан" - PullRequest
16 голосов
/ 28 февраля 2012

Я совершенно новичок в XML-схеме и пытаюсь понять основы. Вот мой код XML-схемы (имя файла: example1.xsd):

<?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, которое говорит: Префикс «sample» для элемента «sample: school» не привязан. [9]

Ответы [ 3 ]

19 голосов
/ 28 февраля 2012

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

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

или

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

13 голосов
/ 28 февраля 2012

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

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

Кроме того, это скорее связано с пространствами имен XML .

0 голосов
/ 29 марта 2018

Это не прямой ответ на ваш вопрос, но я наткнулся здесь, пытаясь решить свою собственную проблему, так что, возможно, это тоже кому-то поможет.

Моя собственная ошибка «Префикс ns2 не связан» всплыл послеобновление с Weblogic 10.3.6 до 12.2.1.2.

В более высокой версии по умолчанию реализация JAXB - Moxy, поэтому мне пришлось изменить javax.xml.bind.JAXBContext на com.sun.xml.bind.v2.ContextFactory.

Как указать реализацию JAXBContext в weblogic 12.1.3

...