任何人都可以告诉我为什么下面的模式是错误的吗?当我在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>