假设我有一个这样的 XML:
<foo ...>
<bar a="s1" b="s2" />
<bar a="s3" />
</foo>
我想在 XSD 中定义的是属性的默认值b
应该是属性的值a
。那可能吗?
提前致谢!
假设我有一个这样的 XML:
<foo ...>
<bar a="s1" b="s2" />
<bar a="s3" />
</foo>
我想在 XSD 中定义的是属性的默认值b
应该是属性的值a
。那可能吗?
提前致谢!
简短的回答:没有。
中等答案,根据“XML Schema Part 1: Structures Second Edition”,“3.2.1 属性声明模式组件”部分:“默认指定属性无条件地出现在·post-schema-validation infoset·中,带有当属性实际不存在时使用的提供值”
长而实用的答案:关键是“后模式验证信息集”。所以问问自己,你需要模式文档做什么?
use="required"
for 属性b
XmlSerializer
),那么您必须明确添加一些满足此“post-schema-validation-infoset”术语的后处理 - 您应该检测 的值b
是否未设置并自行设置 - 这是您的业务需求b
视为具有与 相同的值a
)添加文档。XML Schema 没有这样的概念。使用外推法 - 这与“的值b
将是当前美元/欧元比率”的要求相同 - 它只是计算值