针对外部数据源验证XSD 1.1内容?

时间:2015-02-16 12:34:13

标签: xml xsd xsd-validation

我已经检查了2009年的答案:xsd - validating values from external dictionary file说不是,但是说它只适用于XSD 1.0,而不是1.1。

我已经按照答案中的链接进行操作,他们没有帮助(我可以看到)。 这个Validation Layer with interdependency checks说plonking schematron在顶部会起作用,但我们真的想避免这种情况(另一种​​技术,我从未使用过的技术,我们正在处理潜在的大量数据)。 / p>

我们需要做“检查此值是否为有效的英国邮政编码”之类的内容。

那么,XSD可以为此验证“标注”吗?

2 个答案:

答案 0 :(得分:0)

你不需要"标注"对此。

在XSD 1.0和XSD 1.1中,xsd:enumeration是一种简单而常用的方法,可以强制值必须是预定义值集的成员。枚举可以在自己的文件中定义,included or imported也可以定义到XSD中。

xsd:pattern正则表达式提供了一般性的提升。如果你想走这条路,请参见UK Postcode Regex (Comprehensive)。同样,XSD 1.0和1.1都可以使用。

答案 1 :(得分:0)

正式地说,XSD 1.1断言中使用的XPath表达式不允许使用doc()函数来访问外部文档;这是因为工作组并不热衷于文档有效性应该依赖于实例文档和模式之外的因素。在实践中,可能存在(依赖于实现的)方法。当然,使用Saxon XSD 1.1处理器,您的断言可以调用Java扩展函数,它可以执行任何他们喜欢的操作。