Netbeans似乎拒绝了XSD 1.1支持的一些XSD标签,例如“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]
我试图使用一些these examples但没有成功 . 我该怎么做才能解决我的问题?
据我所知,我无需在XSD架构中指定我使用XSD 1.1的一些功能:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
1 回答
它完全取决于"use XSD 1.1 in NetBeans 8.2"的含义,但我假设您要使用NetBeans中的上下文菜单项 Validate XML 来对应具有XSD 1.1功能的某些 *.xsd 文件(例如 assert ) . 如果我这样做,我会看到您报告的相同"cvc-complex-type.2.4.a : Invalid content found..."错误 .
无法自定义 Validate XML 命令使用的验证器,显然它使用JDK的 javax.xml API进行验证 . NetBeans 8.2使用Java 8,但even with JDK 9 there is no way to validate XSD 1.1 features:
使用Apache NetBeans 9.0 RC1时会出现同样的问题,因此在下列情况之前,此问题可能无法解决:
NetBeans使用JDK,它使用支持XSD 1.1功能验证的Xerces版本 .
NetBeans使用不同的方法进行XSD验证 .
我也没有看到任何有用的NetBeans插件 . 当然,仍有第三方工具和(可能)Maven项目的配置可能有所帮助,但我没有看到只使用NetBeans的解决方案 .