Как использовать XSD 1.1 в Netbeans 8.2?

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

cvc-complex-type.2.4.a: Недопустимый контент, обнаруженный в элементе 'xs: assert'. Одно из значений {"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">

person gouessej    schedule 04.07.2018    source источник


Ответы (1)


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

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

Java 9.

... Большая новость заключается в том, что наконец-то мы обновили внутренние порты Xerces. Oracle (и Sun до них) действительно так долго пренебрегали этим: 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.

person skomisa    schedule 04.07.2018
comment
Спасибо. Да, я хочу использовать пункт контекстного меню Проверить XML в NetBeans и schemavalidate в Apache Ant. Apache Xerxes Java 2.12.0 поддерживает XSD 1.1. Придется подождать :( - person gouessej; 06.07.2018