如何使多个枚举的属性?架构 XSD
How to make an attribute of multiple enumerations? schema XSD
我正在尝试建立一个数据库,其中包含一些产品在日本、北美和欧盟的发布日期。
我想让它成为这样,如果在同一产品中重复某个日期,我可以将区域分组在一个元素中,如下所示:
<releasedate>
<zone zone="JP">30/08/1987</zone>
<zone zone="NA|EU">22/11/1987</zone>
</releasedate>
在架构中我有以下代码:
<xsd:attribute name="zone">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="JP"/>
<xsd:enumeration value="NA"/>
<xsd:enumeration value="EU"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
也尝试制作像 "JP|NA|UE" 和“(JP|NA|UE){1,3}”这样的模式。 none 对我有用,我不知道我是否使用错误的方式来分隔值,但我尝试了管道 |并且属性中还有空格
你可以定义一个 xsd:simpleType
:
<xsd:simpleType name="location">
<xsd:restriction base="xsd:string">
<xsd:pattern value="((^|\|)(JP|NA|EU))+$"/>
</xsd:restriction>
</xsd:simpleType>
pattern value
中的正则表达式将匹配 JP
、JP|NA
、JP|NA|EU
和所有其他可能组合的值。
那么您只需要将属性的值限制为 location
:
<xsd:attribute name="zone" type="location"/>
我正在尝试建立一个数据库,其中包含一些产品在日本、北美和欧盟的发布日期。 我想让它成为这样,如果在同一产品中重复某个日期,我可以将区域分组在一个元素中,如下所示:
<releasedate>
<zone zone="JP">30/08/1987</zone>
<zone zone="NA|EU">22/11/1987</zone>
</releasedate>
在架构中我有以下代码:
<xsd:attribute name="zone">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="JP"/>
<xsd:enumeration value="NA"/>
<xsd:enumeration value="EU"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
也尝试制作像 "JP|NA|UE" 和“(JP|NA|UE){1,3}”这样的模式。 none 对我有用,我不知道我是否使用错误的方式来分隔值,但我尝试了管道 |并且属性中还有空格
你可以定义一个 xsd:simpleType
:
<xsd:simpleType name="location">
<xsd:restriction base="xsd:string">
<xsd:pattern value="((^|\|)(JP|NA|EU))+$"/>
</xsd:restriction>
</xsd:simpleType>
pattern value
中的正则表达式将匹配 JP
、JP|NA
、JP|NA|EU
和所有其他可能组合的值。
那么您只需要将属性的值限制为 location
:
<xsd:attribute name="zone" type="location"/>