XSD验证从http://www.utilities-online.info/xsdvalidation/开始失败。我尝试了不同的XSD提交-全部失败。我从先前的发布中复制了一个简单的代码示例。
错误-s4s-elt-invalid-content.1:“#AnonType_root”的内容无效。元素“断言”无效放错位置,或者发生得太频繁。
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
vc:minVersion="1.1">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="Type" type="xs:integer" />
<xs:element minOccurs="0" maxOccurs="1" name="Comment" type="xs:string" />
</xs:sequence>
<xs:assert test="Comment or not(Type = 0)"/>
</xs:complexType>
</xs:element>
</xs:schema>
答案 0 :(得分:0)
即使您写<xs:assert>
而不是<xs:aaassert>
,它也会报告相同的错误。
这意味着,它不了解XSD 1.1
此外,在该页面http://www.utilities-online.info/xsdvalidation/上,您可以阅读:
此页面中使用的库是jaxp,它是Java™SE运行时环境(内部版本1.7.0_06-b24)的1.4版XML处理Java API。
因此,他们实际上使用JAXP 1.4。另一方面,在Java library that supports XSD 1.1中提到JAXP 1.4不正确支持XSD 1.1。
好吧,这就是使用一些免费的在线东西的意思。您应该期待它,并准备寻找其他东西...
答案 1 :(得分:0)
谢谢您和ColdFusion。 ColdFusion,聪明的测试,我会在未来牢记这一点。我确实找到了另一个支持断言的免费验证器。 https://www.liquid-technologies.com/online-xsd-validator。总而言之,它是一个更好的验证器,可以识别XSD语法错误的实际位置。第一个验证器没有指示XSD语法错误的位置。