以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 XML基础 』 (http://bbs.xml.org.cn/list.asp?boardid=1) ---- [求助]xsd一段验证问题 (http://bbs.xml.org.cn/dispbbs.asp?boardid=1&rootid=&id=63744) |
-- 作者:dragonxml -- 发布时间:6/14/2008 8:49:00 PM -- [求助]xsd一段验证问题 <?xml version="1.0" encoding="UTF-8"?> <!-- edited with XMLSPY v5 rel. 4 U (http://www.xmlspy.com) by Vladislav Gavrielov (Altova) --> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <!--总验证--> <xs:element name="expense-report"> <xs:annotation> <xs:documentation>expense-report is the root element.</xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <!--验证person--> <xs:element name="Person"> <xs:complexType> <xs:sequence> <xs:element name="First"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="1"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="Last"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="1"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="Title" type="xs:string"/> <xs:element name="Phone"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[0-9 \-]*"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="Email" type="emailType"/> </xs:sequence> </xs:complexType> </xs:element> <!--/验证person--> <xs:element ref="expense-item" maxOccurs="unbounded"/> <!--ref127line--> <!--引用expense-item(expense-item在下面验证) --> </xs:sequence> <xs:attribute name="detailed" type="xs:boolean" use="required"/> <xs:attribute name="currency" use="required"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="USD"/> <xs:enumeration value="Euro"/> <xs:enumeration value="JPY"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="total-sum" type="xs:decimal" use="required"/> <!--top--> </xs:complexType> </xs:element> <!--**********************************************************--> 从这开始 <!--/总验证--> <xs:element name="expense" type="xs:decimal"/> <!--expense-item中expense验证--> <xs:complexType name="TextType" mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="strong"/> <xs:element ref="italic"/> </xs:choice> <!--??????????????????????--> </xs:complexType> <xs:element name="description" type="TextType"/> <!--expense-item中description验证--> <!--/expense-item--> <xs:element name="Travel"> <xs:complexType> <xs:sequence> <xs:element name="Destination" type="xs:string"/> <xs:element name="Mileage" type="xs:decimal" minOccurs="0"/> </xs:sequence> <xs:attribute name="means"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="Taxi"/> <xs:enumeration value="CharterAir"/> <xs:enumeration value="Airline"/> <xs:enumeration value="Limo"/> <xs:enumeration value="CharterSea"/> <xs:enumeration value="Rail"/> <xs:enumeration value="CharterLand"/> <xs:enumeration value="Bus"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <xs:element name="Meal"> <xs:complexType> <xs:sequence> <xs:element name="Name" type="xs:string" minOccurs="0"/> <xs:element ref="Location"/> </xs:sequence> <xs:attribute name="mealtype"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="dinner"/> <xs:enumeration value="breakfast"/> <xs:enumeration value="lunch"/> <xs:enumeration value="other"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <xs:element name="Parking"> <xs:complexType> <xs:sequence> <xs:element ref="Location"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Date" type="xs:date"/> <xs:simpleType name="emailType"> <xs:restriction base="xs:string"> <xs:pattern value="[\p{L}_-]+(\.[\p{L}_-]+)*@[\p{L}_]+(\.[\p{L}_]+)+"/> </xs:restriction> </xs:simpleType> 到这结束 <!--**********************************************************--> <!--验证expense-item--> <xs:element name="expense-item"> <xs:complexType> <xs:sequence> <xs:element ref="Date"/> <xs:element ref="expense"/> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="Meal"/> <xs:element name="Lodging"> <xs:complexType> <xs:sequence> <xs:element name="Name" type="xs:string" minOccurs="0"/> <xs:element ref="Location"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element ref="Travel"/> <xs:element ref="Parking"/> <xs:element name="Entertainment"> <xs:complexType> <xs:sequence> <xs:element name="Client-name" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Misc"> <xs:complexType> <xs:attribute name="misctype"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="TeamBuilding"/> <xs:enumeration value="Tips"/> <xs:enumeration value="Fines"/> <xs:enumeration value="Rental"/> <xs:enumeration value="EverythingElse"/> <xs:enumeration value="Tolls"/> <xs:enumeration value="Telephone"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> </xs:choice> <xs:element ref="description" minOccurs="0"/> </xs:sequence> <xs:attribute name="type" use="required"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="Meal"/> <xs:enumeration value="Lodging"/> <xs:enumeration value="Travel"/> <xs:enumeration value="Parking"/> <xs:enumeration value="Entertainment"/> <xs:enumeration value="Misc"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="expto" use="required"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="Development"/> <xs:enumeration value="Marketing"/> <xs:enumeration value="Accounting"/> <xs:enumeration value="Sales"/> <xs:enumeration value="Operations"/> <xs:enumeration value="Support"/> <xs:enumeration value="IT"/> </xs:restriction> </xs:simpleType> </xs:attribute> <!--type验证 type--> <!--/type验证--> <!--expto验证 expense to--> <!--expto验证--> <!--expense-item说明--> <!--/--> <!--page type xml定义--> <!--/page type--> </xs:complexType> </xs:element> <!--/验证expense-item--> <xs:element name="Location" type="xs:string"/> <xs:element name="strong" type="TextType"/> <xs:element name="italic" type="TextType"/> </xs:schema> xml文件内容如下: <?xml version="1.0" encoding="UTF-8"?> <!-- edited with XMLSPY v5 rel. 4 U (http://www.xmlspy.com) by Vladislav Gavrielov (Altova) --> <?altova_sps ExpReport.sps?> <expense-report xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ExpReport.xsd" currency="USD" detailed="false" total-sum="556.9"> <Person> <First>Fred</First> <Last>Landis</Last> <Title>Project Manager</Title> <Phone>123-456-7890</Phone> <Email>f.landis@nanonull.com</Email> </Person> <expense-item type="Lodging" expto="Sales"> <Date>2003-01-01</Date> <expense>122.11</expense> </expense-item> <expense-item type="Lodging" expto="Development"> <Date>2003-01-02</Date> <expense>122.12</expense> <description>Played penny arcade</description> </expense-item> <expense-item type="Lodging" expto="Marketing"> <Date>2003-01-02</Date> <expense>299.45</expense> <description>Treated Clients</description> </expense-item> <expense-item type="Entertainment" expto="Development"> <Date>2003-01-02</Date> <expense>13.22</expense> <Misc misctype="TeamBuilding"/> <description>Bought signed "XMLSPY Handbook" from Larry Kim</description> </expense-item> </expense-report>
[此贴子已经被作者于2008-6-14 21:19:56编辑过]
|
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
6,312.500ms |