xml - XSD 架构:对另一个元素继承的属性的限制
问题描述
我的 XSD 架构有问题。我有一个称为 xsd:string 类型的属性 id 的元素,它必须没有限制。然后还有另一个元素扩展并具有更多属性,但继承的属性“id”必须仅由字母和数字组成。这是我的代码:
我尝试同时添加 and to 并赋予 id 属性一个新类型,但它不起作用。
<xsd:complexType name="BaseElement">
<xsd:attribute name="id" type="xsd:string" />
</xsd:complexType>
<xsd:complexType name="Element">
<xsd:complexContent>
<xsd:restriction base="BaseElement">
<xsd:attribute name="id" type="xsd:idNewType" />
</xsd:restriction>
<xsd:extension base="identifiedEntityType">
<xsd:attribute name="attr2" type="xsd:string"/>
<xsd:attribute name="attr3" type="xsd:string"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
解决方案
您不能在一个步骤中定义限制和扩展,但您可以将 X 定义为 Y 的限制,并将 Y 定义为 Z 的扩展,因此扩展步骤将添加两个属性,然后限制步骤将限制一个其中。
推荐阅读
- java - 为什么我的对象不强制转换为不调用默认方法的接口?
- apache-spark - IntelliJ 中的独立 Spark 应用程序
- mysql - 使用下几行的最小值更新行列
- google-kubernetes-engine - 在集群中创建WINDOWS_SAC节点池时如何修复“404 Not Found”错误(快速发布)
- linux - 文件大小没有按预期增长
- android - 在 Android 应用程序和服务器 Couchbase Lite 之间同步数据
- authentication - .NET Core 3(预览版)Web API 返回 UnAuthorized (401) 而不是 NotFound (404)
- angular - 从变量应用类
- java - 合并对象列表的 k 个列表
- javascript - 如何重用常用类型