如何解决这个 XSD 限制是什么意思具有限制的派生类型只是基类型的一个属性
有一个基本类型“Objectnummering-e”和一个派生类型“ObjectNummering-geoBAG”。 “ObjectNummering-geoBAG”的限制提到了基类型的一个属性。
我不清楚这是做什么的。对我来说,这两种类型是相同的。但他们是吗?
<complexType name="ObjectNummering-geoBAG">
<simpleContent>
<restriction base="BG:ObjectNummering-e">
<attribute ref="StUF:novalue"/>
</restriction>
</simpleContent>
</complexType>
<complexType name="ObjectNummering-e">
<simpleContent>
<extension base="BG:ObjectNummering">
<attributeGroup ref="StUF:element"/>
</extension>
</simpleContent>
</complexType>
<simpleType name="ObjectNummering">
<restriction base="string">
<length value="16"/>
</restriction>
</simpleType>
<attributeGroup name="element">
<attribute ref="StUF:novalue"/>
<attribute ref="StUF:exact"/>
</attributeGroup>
解决方法
与往常一样,回答此类问题的唯一可靠方法是查看 W3C 规范。您的复杂类型是“内容简单的复杂类型”,因此相关部分是:
https://www.w3.org/TR/xmlschema-1/#declare-type,小节 Complex Type Definition with simple content Schema Component
3 如果类型定义由基础 [属性] 的实际值 · 解析为复杂类型定义,则该类型定义的{属性使用},除非选择了替代方案,在这种情况下某些可能不包括该类型定义的 {attribute uses} 成员,即其 {attribute declaration} 的 {name} 和 {target namespace} 与以下之一相同的成员: 3.1 上面第 1 条或第 2 条的集合中使用的属性的{属性声明}的{名称}和{目标命名空间}; 3.2 上面第 1 条的集合中使用的属性的{属性声明}的{名称}和{目标命名空间}是什么,但对于 [属性] 中相关的使用 [属性] 的·实际值·儿童] 被禁止。
简单来说,这意味着复杂的类型限制必须重新声明它想要保留的任何属性——它们不会自动继承。所以派生类型“ObjectNummering-geoBAG”只有1个属性,没有2个。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。