我有这个xml文件,我需要创建一个xsd文件来验证所有数据是否存在并编写将对xsd文件验证xml的代码。如果没有错误,输出将显示“有效”。如果有错误,输出将显示“无效”,输出也会显示错误。
<Student gradYear="2014"> <!--GraduationYear is required-->
<FirstName>
John
</FirstName><!--FirstName is required-->
<LastName>
Smith
</LastName><!--LastName is required-->
<SocialSecurity>
123-45-6789
</SocialSecurity><!--SocialSecurity is required and must be in the format shown-->
<Phone type="Home"> <!--HomePhone is required and must match the format shown-->
<Number>
724-555-5454
</Number>
</Phone>
<PhoneNumber type="Cell"> <!--Cell Phone is optional, but must be in the correct format if used-->
<Number>
724-555-5858
</Number>
</PhoneNumber>
</Student>
我有一个xsd文件,显示它是否有效,但不包括需要所需的字段或检查格式。它只能检查以确保xml文件包含所有元素。
答案 0 :(得分:0)
此XSD将验证强制格式和格式,但是显示的错误将取决于正在进行验证的内容。
<?xml version="1.0" encoding="utf-16"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Student">
<xs:complexType>
<xs:sequence>
<xs:element name="FirstName">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="LastName">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="SocialSecurity">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Phone">
<xs:complexType>
<xs:sequence>
<xs:element name="Number">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[0-9][0-9][0-9]-[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
<xs:attribute name="type" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Home" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="PhoneNumber">
<xs:complexType>
<xs:sequence>
<xs:element name="Number">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[0-9][0-9][0-9]-[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
<xs:attribute name="type" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Cell" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="gradYear" type="xs:unsignedShort" use="required" />
</xs:complexType>
</xs:element>
</xs:schema>