xsd元素的范围限制

时间:2013-12-04 06:26:04

标签: java xsd xsd-validation

我需要在特定字段上添加限制 - phoneNumber。 右边的限制如下:

        <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 1.因此,需要将模式更改为[0-9]{1}[\-][0-9]{10}

1-1234567890

所以,我有两个问题

  1. 如何在此模式中指定特定范围。
  2. 有没有办法在运行时决定模式?例如如果我把这个国家作为印度,我将保留为[0-9]{2}[\-][0-9]{10},如果我将其作为美国,那么我会将其修改为[0-9]{1}[\-][0-9]{10}

1 个答案:

答案 0 :(得分:0)

希望回答问题1:[0-9]{1,2}-[0-9]{10}\d{1,2}-\d{10}

我最喜欢的RegEx网站:http://www.regular-expressions.info/reference.html

问题2:

条件RegEx:只有数据在文本中才有可能 - 这不是这里的情况

条件XSD =&gt;我只是重定向你: - )

How to add conditional validation in XSD :

xsd property set required according to enum value

希望,这就是你需要的,如果不是,我们可以在这里更深入,当你发布包含有问题的值的xml部分时