【问题标题】:Is there a XML Schema validation library that supports the default attribute value?是否有支持默认属性值的 XML Schema 验证库?
【发布时间】:2011-02-04 17:18:14
【问题描述】:

如果我正确阅读了XML Schema specification for default attribute values,验证过程实际上应该更改DOM以填充默认值。

default 指定属性无条件地出现在 ·post-schema-validation 信息集中·

这是对规范的正确解读吗?更重要的是,是否有任何库(Java、C#、Python 等)支持这一点?

据我所知,validate(document) 方法不会改变文档。

【问题讨论】:

    标签: xml validation xsd


    【解决方案1】:

    是的,这是对规范的正确解读。但是许多 XSD 模式验证器只提供是/否的答案,它们实际上并不构建 PSVI。

    Xerces 验证器当然可以让您访问完整的 PSVI,尽管我不熟悉您需要用来查看它的 API。

    Saxon 模式验证器让您可以访问 PSVI 中模式感知 XSLT 和 XQuery 使用的那部分,这包括扩展默认属性。

    【讨论】:

      【解决方案2】:

      Xerces2 (Java) 提供默认值,但需要在解析器中开启该功能。

          DOMParser parser=new DOMParser();
          parser.setFeature("http://apache.org/xml/features/validation/schema", true);
          parser.setFeature("http://apache.org/xml/features/validation/schema/element-default", true);
      

      架构验证功能需要开启。

      参考:Xerces Features

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-03
        相关资源
        最近更新 更多