例如我想有几个保留的字符串,它们在程序中具有自定义行为。我想与使用Schema的人交流,哪些值将具有预先编程的行为。
说“ a”,“ b”,“ c”,“ d”被保留。
如果有人指定“ customOperation1”,那么它将在代码中被视为自定义值。
如果有人使用“ a”,则将调用“ a”的预编程行为。
当前我只是将其作为字符串字段使用,但是有没有办法将“带有额外含义和关键字的字符串”传达给XML?
例如
<xs:simpleType name="operation" final="restriction">
<xs:restriction base="xs:string">
<xs:enumeration value="a"/>
<xs:enumeration value="b"/>
</xs:restriction>
</xs:simpleType>
请允许我指定一个名为operation的枚举,其值为“ a”和“ b”
如何做同样的事情,但也允许自定义项?
答案 0 :(得分:1)
您可以使用枚举和字符串的并集,例如:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="SpecialOp" final="restriction">
<xs:restriction base="xs:string">
<xs:enumeration value="a"/>
<xs:enumeration value="b"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="CustomOp">
<xs:restriction base="xs:string"/>
</xs:simpleType>
<xs:simpleType name="Operation">
<xs:union memberTypes="SpecialOp CustomOp"/>
</xs:simpleType>
<xs:element name="op" type="Operation"/>
</xs:schema>
这将接受op
的任何字符串值,但仍传达特殊值的含义。