【发布时间】:2013-12-04 06:26:03
【问题描述】:
我需要对特定字段添加限制 - 电话号码。 现在限制看起来像这样:
<xsd:element minOccurs="0" name="phoneNumber">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern value="[0-9]{2}[\-][0-9]{10}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
所以,如果电话号码有值,这将起作用
91-1234567890
但对于美国联系人,我希望国家代码为 1。因此,模式需要更改为 [0-9]{1}[\-][0-9]{10}
1-1234567890
所以,我有两个问题
- 如何在此模式中指定特定范围。
- 有没有办法在运行时决定模式?例如如果我将国家设为印度,我会将其保留为
[0-9]{2}[\-][0-9]{10},如果我将其设为美国,则将其修改为[0-9]{1}[\-][0-9]{10}
【问题讨论】:
-
第二个问题:您是在 xsd 还是 RegEx 中要求条件分支?
-
@kurellajunior 无论哪种方式都可以。基本上我试图找出我们是否可以在运行时决定模式。该决定将基于 xsd 中的另一个元素 - 国家
标签: java xsd xsd-validation