Как использовать XSD 1.1 в Netbeans 8.2? - PullRequest
0 голосов
/ 04 июля 2018

Netbeans, похоже, отклоняет некоторые теги XSD, поддерживаемые XSD 1.1, например, «assert»:

cvc-complex-type.2.4.a: недопустимое содержимое, найденное в элементе 'Хз: утверждать. Одно из значений { "http://www.w3.org/2001/XMLSchema":attribute, «http://www.w3.org/2001/XMLSchema":attributeGroup, "http://www.w3.org/2001/XMLSchema":anyAttribute}' ожидается. [205]

Я пытался использовать некоторые из этих примеров , но безуспешно. Что я могу сделать, чтобы решить мою проблему?

Насколько я знаю, мне нечего делать, чтобы указать в схеме XSD, что я использую некоторые функции XSD 1.1:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

1 Ответ

0 голосов
/ 04 июля 2018

Это в точности зависит от того, что вы подразумеваете под "использовать XSD 1.1 в NetBeans 8.2" , но я предполагаю, что вы хотите использовать пункт контекстного меню Проверить XML в NetBeans против некоторых * 1005 Файл **. xsd с функциями XSD 1.1 (например, assert ). Если я это сделаю, я вижу ту же ошибку "cvc-complex-type.2.4.a: найден недопустимый контент ..." , о которой вы сообщаете.

Нет способа настроить валидатор, используемый командой Validate XML , и, по-видимому, для проверки используется API JDK javax.xml . NetBeans 8.2 использует Java 8, но даже с JDK 9 нет способа проверить возможности XSD 1.1 :

Java 9.

... Большая новость заключается в том, что, наконец, мы получаем внутренние порты Xerces обновлено. Оракул (и Солнце до них) действительно ослабли пренебрегая этим так долго: Java зависла, используя Xerces 2.7.n для 11 годы ради бога. Новые порты эквивалентны Apache Xerces 2.11.0. ( ПРИМЕЧАНИЕ: XSD по-прежнему только 1.0, обновления XSD 1.1 имеют не было введено в действие , но это, вероятно, отражает медленный Apache Xerces темп, чтобы сделать официальные изменения.)

Та же проблема возникает при использовании Apache NetBeans 9.0 RC1 , поэтому эта проблема, вероятно, не будет решена до тех пор, пока:

  • NetBeans использует JDK, который использует версию Xerces, которая поддерживает проверку функций XSD 1.1.
  • NetBeans использует другой подход для проверки XSD.

Я также не вижу никаких плагинов NetBeans, которые бы помогли. Конечно, есть еще сторонние инструменты и (возможно) конфигурация для проектов Maven, которые могут помочь, но я не вижу решения, использующего только NetBeans.

...