【问题标题】:XML Schema V 1.1 Assertions not working in Xerces-JXML Schema V 1.1 断言在 Xerces-J 中不起作用
【发布时间】:2012-08-01 21:22:19
【问题描述】:

我能够在 Oxygen XML Developer Editor 中根据它的 XML V 1.1 模式验证我的 XML 配置文件。

如果我的架构违反了断言约束,例如元素的数字属性大于特定值,它将不会验证 xml 配置文件。

<assert test="6 >= @Number" />

然而,当我在 java 中针对架构解析配置文件时,我的断言被忽略了。

我正在使用 Xerces-J 2.11.0-xml-schema-1.1-beta。

我的项目中包含以下 jars

cupv10K-runtime.jar
icu4j.jar
xerceslmpl.jar
sml-apis.jar
org.eclipse.wst.xml.xpath2.processor_2.1.1v201204060055.jar

我需要包含另一个 jar 吗?

任何关于它为什么忽略断言的建议都会非常有用。

非常感谢。

干杯,

画了

【问题讨论】:

  • 我指的是 XML 1.1 模式中的断言/断言,您指的是这个吗?
  • 对不起!我的错。删除我的评论。
  • 不用担心。谢谢你的帮助:)
  • 你能贴出你用来解析文件的代码吗?
  • 当您使用 Saxon 模式验证器时,断言是否有效?这将有助于确定错误是在您的架构中还是在您的配置中。

标签: java xml jar schema assertions


【解决方案1】:

我使用以下命令行,并且在将 test 应用于当前元素的属性时没有遇到问题: $ export XERCESJ=$HOME/xerces-j/xerces-2_11_0-xml-schema-1.1-beta $ java -classpath $XERCESJ/cupv10k-runtime.jar:/usr/share/java/org.eclipse.wst.xml.xpath2.processor-2.1.100.jar:/usr/share/java/xercesImpl-xsd11-2.12-beta-r1667115.jar:$XERCESJ/xml-apis.jar:$XERCESJ/xercesSamples.jar jaxp.SourceValidator -xsd11 -i my_instance.xml

XSD 1.1 语法很好,test 的条件被强制执行。

【讨论】:

  • 这是一个答案吗?我不知道您是否只是发布此链接以链接您的问题。
  • 我会发表评论,而不是提供答案,但我没有足够的权限发表评论。我的“答案”提供了有用的信息,因为我自己的用法与 OP 的用法几乎相同,但我没有 OP 的 test 被忽略的问题。我已经删除了我自己的问题的链接。
  • 对,很公平。您的帖子出现在“第一个帖子”队列中,具有足够代表的用户可以查看新用户的第一个帖子。我不确定这是否只是大量新用户发布的一堆随机废话或有用的信息。我现在可以看到是后者:D
猜你喜欢
  • 2013-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-17
  • 1970-01-01
  • 1970-01-01
  • 2013-09-02
  • 1970-01-01
相关资源
最近更新 更多