Некоторая огромная базовая вещь неправильная - «Не могу найти элемент X» - PullRequest
0 голосов
/ 03 марта 2011

Мой xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<credits> 
</credits>

Моя схема

<?xml version="1.0" encoding="UTF-8" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="credits">

  </xsd:element>

</xsd:schema>

И он говорит "SaxParseException: не удается найти объявление элемента" credits ""

Что ?!: P Как это возможно?Абсолютно смущен здесь.Уже несколько часов ничего не гуглил.

Спасибо ТАК!

        SchemaFactory schemaFactory = SchemaFactory.newInstance( XMLConstants.W3C_XML_SCHEMA_NS_URI );
        Schema schemaXSD = schemaFactory.newSchema( new File ( "test.xsd" ) );

        Validator v = schemaXSD.newValidator();
       DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();
  Document document = parser.parse( new File( "test.xml" ) );
        document.toString();
        DOMSource testSource = new DOMSource(document);
        v.validate( testSource );

РЕДАКТИРОВАТЬ: найдено решение.Гугл наконец-то уступил.: P Мне пришлось добавить

factory.setNamespaceAware(true);

к моему объекту DocumentBuilderFactory.: D

1 Ответ

1 голос
/ 03 марта 2011

означает, что test.xml не имеет элемента credits.Если это приемлемо, установите minOccurs="0"

...