Я должен уменьшить количество обрабатываемых данных нашим приложением.Мне нужно расширить наш файл xsd, но для внесения необходимых изменений мне придется использовать атрибуты <xs:assert>
или <xs:alternative>
.
К сожалению, когда я пытаюсь построить проект, я получаю следующую ошибку:
org.xml.sax.SAXParseException; Unexpected <xs:assert> appears at line 36 column 9
Я попытался использовать команду в консоли karaf, но ничего не изменилось.Я попытался добавить некоторые дополнительные свойства в файл xsd (версия = "1.1" и т. Д.), Но ничего не изменилось.
Я скачал эту точную версию предохранителя jboss: https://developers.redhat.com/download-manager/file/jboss-fuse-6.1.0.GA-full_zip.zip
Похоже, мойсервер не настроен на использование xsd версии 1.1.Есть Караф 2.3 и Верблюд 2.12.0.redhat-610379.Согласно http://camel.apache.org/camel-2120-release.html саксонский получил повышение до 9,5.Я обнаружил, что в каталоге / lib / есть две версии saxon - 9.5.1 и 9.5.2 и, согласно https://www.saxonica.com/html/documentation/schema-processing/schema11/, он может поддерживать xsd 1.1.
Чтобы разрешить использование функций XML-схемы 1.1, установите флаг командной строки -xsdversion: 1.1 или эквивалент в API.
Мой XSD выглядит более так:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://myApp"
targetNamespace="http://myApp"
elementFormDefault="qualified"
>
...
<xs:complexType name="msg">
<xs:sequence>
<xs:element type="elem1" name="idName" minOccurs="0" maxOccurs="1" />
<xs:element type="elem2" name="idName2" minOccurs="1" maxOccurs="1" />
</xs:sequence>
<xs:assert test="1 eq 1"/> <-- SAXParseException
</xs:complexType>
Без <xs:assert
все накапливается и работает нормально.Когда я добавляю его, я получаю исключение.
В каталоге / etc / есть много файлов конфигурации, но я не нашел ни одного свойства saxon.Ни что иное, как xsdversion = 1,0.
Любые советы и предложения будут с благодарностью.Я постараюсь обновить сообщение, если будет предложено.