我有一个以下架构只接受COM1-4。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:complexType name="Component">
<xs:attribute name="type" type="ComponentType"/>
</xs:complexType>
<xs:simpleType name="ComponentType">
<xs:restriction base="xs:string">
<xs:enumeration value="COM1"/>
<xs:enumeration value="COM2"/>
<xs:enumeration value="COM3"/>
<xs:enumeration value="COM4"/>
</xs:restriction>
</xs:simpleType>
现在要求已经改变。我需要允许任何字符(小写或大写)。我需要使它与以前在生产环境中填充的值向后兼容。
我想保留&#39; ComponentType&#39; ComponentType的名称和枚举类型。我想尽量减少代码更改。如果可能的话,我想在架构级别处理它。这些COM [1-4]只是为这篇文章改变了命名约定。实际值不同。
有没有办法更改架构,可以接受架构范围内的任何字符(小写或大写),而无需重新生成java工件或对java代码进行更改?
感谢。
答案 0 :(得分:0)
我认为这会有效,但我不知道对Java代码的影响:
<xs:simpleType name="ComponentType">
<xs:restriction base="xs:string">
<xs:pattern value="[cC][oO][mM][1-3]"/>
</xs:restriction>
</xs:simpleType>