如果我正确读取XML Schema specification for default attribute values,验证过程实际上应该更改DOM以填充默认值。
default指定该属性将无条件地出现在后架构验证信息集中
这是对规格的正确读数吗?更重要的是,任何库(Java,C#,Python等)都支持这个吗?
在我看到的所有内容中,验证(文档)方法不会改变文档。
答案 0 :(得分:2)
是的,这是对规范的正确读数。但是许多XSD架构验证器只提供是/否答案,它们实际上并不构建PSVI。
Xerces验证器当然可以让您访问完整的PSVI,但我不熟悉您需要使用的API来查看它。
Saxon模式验证器使您可以访问模式感知XSLT和XQuery使用的PSVI部分,其中包括扩展默认属性。
答案 1 :(得分:0)
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);
需要启用架构验证功能。