shoppingSchema.xsd
<?xml version="1.0" encoding="gb2312"?>
<!-- edited with XMLSPY v2004 rel. 4 U (http://www.xmlspy.com) by mosj (linkage) -->
<xs:schema targetNamespace="http://www.shopping.com/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns="http://www.shopping.com/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:sp="http://www.shopping.com/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="SP">
<xs:annotation>
<xs:documentation>This a test of XMLSchema!</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="allMembers">
<xs:complexType>
<xs:sequence>
<xs:element name="member" type="member" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="organizations">
<xs:complexType>
<xs:sequence>
<xs:element name="organization" type="organization" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:key name="keyMid">
<xs:selector xpath="./sp:allMembers/sp:member"/>
<xs:field xpath="sp:mid"/>
</xs:key>
<xs:keyref name="captainorganization" refer="keyMid">
<xs:selector xpath=".//sp:organization"/>
<xs:field xpath="sp:captain"/>
</xs:keyref>
</xs:element>
<xs:complexType name="member">
<xs:sequence>
<xs:element name="mid">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="SP[0-9]{1,3}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="corporation">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="公司A"/>
<xs:enumeration value="公司B"/>
<xs:enumeration value="公司C"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="MSN" type="emailType"/>
<xs:element name="email" type="emailType"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
<xs:complexType name="organization">
<xs:sequence>
<xs:element name="captain" type="xs:string"/>
<xs:element name="subaltern" type="xs:string" minOccurs="0"/>
<xs:element name="member" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
<xs:simpleType name="emailType">
<xs:restriction base="xs:string">
<xs:pattern value="[\p{L}_-]+(\.[\p{L}_-]+)*@[\p{L}_]+(\.[\p{L}_]+)+"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>

解决方案 »

  1.   

    invalidate.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <SP xmlns="http://www.shopping.com/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.shopping.com/XMLSchema 
    E:\temp\ShoppingSchema.xsd">
    <allMembers>
    <member name="刘德华">
    <mid>SP001</mid>
    <corporation>公司A</corporation>
    <MSN>ldhhotmail.com</MSN>
    <email>ldhhotmail.com</email>
    </member>
    <member name="李嘉欣">
    <mid>SP002</mid>
    <corporation>公司B</corporation>
    <MSN>[email protected]</MSN>
    <email>[email protected]</email>
    </member>
    <member name="莫文蔚">
    <mid>SP003</mid>
    <corporation>公司C</corporation>
    <MSN>[email protected]</MSN>
    <email>[email protected]</email>
    </member>
    <member name="成龙">
    <mid>SP004</mid>
    <corporation>公司C</corporation>
    <MSN>[email protected]</MSN>
    <email>[email protected]</email>
    </member>
    <member name="朱茵">
    <mid>SP005</mid>
    <corporation>公司C</corporation>
    <MSN>[email protected]</MSN>
    <email>[email protected]</email>
    </member>
    </allMembers>
    <organizations>
    <organization name="领导小组">
    <captain>SP009</captain>
    <subaltern>SP003</subaltern>
    <member>SP004</member>
    </organization>
    <organization name="需求小组">
    <captain>SP005</captain>
    <subaltern>SP002</subaltern>
    <member>SP003</member>
    <member>SP004</member>
    </organization>
    </organizations>
    </SP>
      

  2.   

    validate.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <SP xmlns="http://www.shopping.com/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.shopping.com/XMLSchema 
    E:\temp\ShoppingSchema.xsd">
    <allMembers>
    <member name="刘德华">
    <mid>SP001</mid>
    <corporation>公司A</corporation>
    <MSN>[email protected]</MSN>
    <email>[email protected]</email>
    </member>
    <member name="李嘉欣">
    <mid>SP002</mid>
    <corporation>公司B</corporation>
    <MSN>[email protected]</MSN>
    <email>[email protected]</email>
    </member>
    <member name="莫文蔚">
    <mid>SP003</mid>
    <corporation>公司C</corporation>
    <MSN>[email protected]</MSN>
    <email>[email protected]</email>
    </member>
    <member name="成龙">
    <mid>SP004</mid>
    <corporation>公司C</corporation>
    <MSN>[email protected]</MSN>
    <email>[email protected]</email>
    </member>
    <member name="朱茵">
    <mid>SP005</mid>
    <corporation>公司C</corporation>
    <MSN>[email protected]</MSN>
    <email>[email protected]</email>
    </member>
    </allMembers>
    <organizations>
    <organization name="领导小组">
    <captain>SP001</captain>
    <subaltern>SP002</subaltern>
    <member>SP003</member>
    </organization>
    <organization name="需求小组">
    <captain>SP001</captain>
    <subaltern>SP002</subaltern>
    <member>SP003</member>
    <member>SP004</member>
    <member>SP005</member>
    </organization>
    </organizations>
    </SP>