Разбор встроенной XML-схемы (Xerces для Java) - PullRequest
1 голос
/ 20 января 2011

Можно ли проанализировать файл XML с помощью встроенной схемы с помощью Xerces? Я старался изо всех сил, чтобы сделать эту работу, но я не смог добиться успеха. Всегда выдается исключение в последней строке кода ниже (схема - это строка, содержащая XML и встроенную схему):

private XSModel getXSModel(String schema) throws XNIException, IOException{
    XMLGrammarPreparser preparser = new XMLGrammarPreparser();  
    preparser.registerPreparser(XMLGrammarDescription.XML_SCHEMA, null);  
    XSGrammar g = (XSGrammar)preparser.preparseGrammar(XMLGrammarDescription.XML_SCHEMA,new XMLInputSource(null, null, null,new ByteArrayInputStream(schema.getBytes()), "ISO-8859-1"));  
    return g.toXSModel(); 
}

Ошибка следующая:

[Ошибка]: 1: 9586: символ s4s-elt: непробельные символы недопустимы в элементах схемы, кроме «xs: appinfo» и «xs: Документация» ...

Это сообщение появляется для каждой строки, принадлежащей XML (из тега схемы)


Обновление: Вот пример:

<root>
    <schema xmlns="http://www.w3.org/2001/XMLSchema">
        <element name="age" type="integer"/>
    </schema>
    <!--HERE THE XML BEGINS-->
    <age>35</age>
</root>

Ответы [ 2 ]

1 голос
/ 30 апреля 2014

Оказывается, что он поддерживает встроенные схемы: http://xerces.apache.org/xerces2-j/samples-jaxp.html#InlineSchemaValidator

0 голосов
/ 20 января 2011

Возможно, вы захотите прочитать файл как обычный xml-файл, используя выражение xpath для выбора элемента схемы, а затем преобразовать его во входной поток.Затем вызовите анализатор в этом входном потоке.

...