XMLSpy和xmllint中的xml架构模式验证有什么区别?

时间:2013-12-01 22:14:52

标签: xsd

任何人都可以告诉我为什么下面的模式是错误的吗?当我在XMLSpy中测试时,它运行良好。但是当我用xmllint验证它时,模式不接受Email和Phone元素.XML Shema如下所示:

                <xs:complexType>
                <xs:sequence minOccurs="1" maxOccurs="1">
                    <xs:element name="ID">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:pattern value="[0-9A-Za-z]{3}\d{1}"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element name="Name">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:pattern value="[A-Z][a-z]* ([A-Z][a-z.]* )?[A-Z][a-z]*"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element name="Email">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:pattern value="(\w[-._\w]*\w@\w[-._\w]*\w\.\w{2,3})"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element name="Phone">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:pattern value="[(][1-9]\d{2}[)] [1-9]\d{2}[-]\d{4}"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>

XML文件如下:

        <Author>
        <ID>21f3</ID>
        <Name>Garth M. Shelton</Name>
        <Email>gshelton@gmail.com</Email>
        <Phone>(470) 949-7859</Phone>
    </Author>
    <Author>
        <ID>14d3</ID>
        <Name>Beverly Rich</Name>
        <Email>beverly@deuce.net</Email>
        <Phone>(927) 407-2460</Phone>
    </Author>

0 个答案:

没有答案