This appendix contains the following examples:
Specifying a tsd:index
element with a
tsd:text
child element
correctly stores the whole XML instance and performs full text indexing on the
terminal nodes.
The definition of an index takes place in lines
0840
-1130
for the elements "surname" and
"firstname", and in lines 1300
-1600
for
the elements street
and
city
, respectively.
The hospital schema is as follows:
Note:
Line numbers were added only to facilitate readability and
reference.
0010 <?xml version = "1.0" encoding = "UTF-8"?> 0020 <xs:schema xmlns:xs = "http://www.w3.org/2001/XMLSchema" xmlns:tsd = "http://namespaces.softwareag.com/tamino/TaminoSchemaDefinition"> 0030 <xs:annotation> 0040 <xs:documentation> 0050 </xs:documentation> 0060 <xs:appinfo> 0070 <tsd:schemaInfo name = "patient"></tsd:schemaInfo> 0080 </xs:appinfo> 0090 </xs:annotation> 0100 <xs:element name = "patient"> 0110 <xs:annotation> 0120 <xs:documentation> Elements </xs:documentation> 0130 </xs:annotation> 0140 <xs:complexType> 0150 <xs:sequence> 0160 <xs:element ref = "name" minOccurs="0"></xs:element> 0170 <xs:element ref = "sex"></xs:element> 0180 <xs:element ref = "born" minOccurs="0"></xs:element> 0190 <xs:element ref = "address" minOccurs="0"></xs:element> 0200 <xs:element ref = "occupation" minOccurs="0"></xs:element> 0210 <xs:element ref = "insurance" minOccurs="0"></xs:element> 0220 <xs:element ref = "nextofkin" minOccurs="0"></xs:element> 0230 <xs:element ref = "submitted"></xs:element> 0240 <xs:element ref = "examination" minOccurs="0" maxOccurs="unbounded"/> 0250 <xs:element ref = "therapy" minOccurs="0"></xs:element> 0260 <xs:element ref = "result" minOccurs="0"></xs:element> 0270 <xs:element ref = "remarks" minOccurs="0" maxOccurs="unbounded"/> 0280 </xs:sequence> 0290 <xs:attribute name = "id" type = "xs:ID"> 0300 <xs:annotation> 0310 <xs:documentation> Attributes </xs:documentation> 0320 </xs:annotation> 0330 </xs:attribute> 0340 </xs:complexType> 0350 </xs:element> 0360 <xs:element name = "submitted"> 0370 <xs:complexType> 0380 <xs:sequence> 0390 <xs:element ref = "date"></xs:element> 0400 <xs:element ref = "symptoms"></xs:element> 0410 <xs:element ref = "diagnosis" maxOccurs="unbounded"/> 0420 <xs:element ref = "doctor" maxOccurs="unbounded"/> 0430 </xs:sequence> 0440 </xs:complexType> 0450 </xs:element> 0460 <xs:element name = "examination"> 0470 <xs:complexType> 0480 <xs:sequence> 0490 <xs:element ref = "date"></xs:element> 0500 <xs:element ref = "report" minOccurs="0" maxOccurs="unbounded"/> 0510 <xs:element ref = "remarks" minOccurs="0" maxOccurs="unbounded"/> 0520 </xs:sequence> 0530 </xs:complexType> 0540 </xs:element> 0550 <xs:element name = "therapy"> 0560 <xs:complexType> 0570 <xs:choice maxOccurs="unbounded"> 0580 <xs:element ref = "medication"></xs:element> 0590 <xs:element ref = "physical"></xs:element> 0600 <xs:element ref = "other"></xs:element> 0610 </xs:choice> 0620 </xs:complexType> 0630 </xs:element> 0640 <xs:element name = "result"> 0650 <xs:complexType> 0660 <xs:choice maxOccurs="unbounded"> 0670 <xs:element ref = "dismissed"></xs:element> 0680 <xs:element ref = "transferred"></xs:element> 0690 <xs:element ref = "deceased"></xs:element> 0700 </xs:choice> 0710 </xs:complexType> 0720 </xs:element> 0730 <xs:element name = "remarks" type = "xs:string"></xs:element> 0740 <xs:element name = "name"> 0750 <xs:complexType> 0760 <xs:sequence> 0770 <xs:element ref = "surname"></xs:element> 0780 <xs:element ref = "firstname"></xs:element> 0790 <xs:element ref = "middlename" minOccurs="0"></xs:element> 0800 <xs:element ref = "title" minOccurs="0"></xs:element> 0810 </xs:sequence> 0820 </xs:complexType> 0830 </xs:element> 0840 <xs:element name = "surname" type = "xs:string"> 0850 <xs:annotation> 0860 <xs:appinfo> 0870 <tsd:elementInfo> 0880 <tsd:physical> 0890 <tsd:native> 0900 <tsd:index> 0910 <tsd:text></tsd:text> 0920 </tsd:index> 0930 </tsd:native> 0940 </tsd:physical> 0950 </tsd:elementInfo> 0960 </xs:appinfo> 0970 </xs:annotation> 0980 </xs:element> 0990 <xs:element name = "firstname" type = "xs:string"> 1000 <xs:annotation> 1010 <xs:appinfo> 1020 <tsd:elementInfo> 1030 <tsd:physical> 1040 <tsd:native> 1050 <tsd:index> 1060 <tsd:text></tsd:text> 1070 </tsd:index> 1080 </tsd:native> 1090 </tsd:physical> 1100 </tsd:elementInfo> 1110 </xs:appinfo> 1120 </xs:annotation> 1130 </xs:element> 1140 <xs:element name = "middlename" type = "xs:string"></xs:element> 1150 <xs:element name = "title" type = "xs:string"></xs:element> 1160 <xs:element name = "sex" type = "xs:string"></xs:element> 1170 <xs:element name = "born" type = "xs:string"></xs:element> 1180 <xs:element name = "address"> 1190 <xs:complexType> 1200 <xs:sequence> 1210 <xs:element ref = "street" minOccurs="0"></xs:element> 1220 <xs:element ref = "housenumber" minOccurs="0"></xs:element> 1230 <xs:element ref = "city" minOccurs="0"></xs:element> 1240 <xs:element ref = "postcode" minOccurs="0"></xs:element> 1250 <xs:element ref = "country" minOccurs="0"></xs:element> 1260 <xs:element ref = "phone" minOccurs="0" maxOccurs="unbounded"/> 1270 </xs:sequence> 1280 </xs:complexType> 1290 </xs:element> 1300 <xs:element name = "street" type = "xs:string"> 1310 <xs:annotation> 1320 <xs:appinfo> 1330 <tsd:elementInfo> 1340 <tsd:physical> 1350 <tsd:native> 1360 <tsd:index> 1370 <tsd:text></tsd:text> 1380 </tsd:index> 1390 </tsd:native> 1400 </tsd:physical> 1410 </tsd:elementInfo> 1420 </xs:appinfo> 1430 </xs:annotation> 1440 </xs:element> 1450 <xs:element name = "housenumber" type = "xs:string"></xs:element> 1460 <xs:element name = "city" type = "xs:string"> 1470 <xs:annotation> 1480 <xs:appinfo> 1490 <tsd:elementInfo> 1500 <tsd:physical> 1510 <tsd:native> 1520 <tsd:index> 1530 <tsd:text></tsd:text> 1540 </tsd:index> 1550 </tsd:native> 1560 </tsd:physical> 1570 </tsd:elementInfo> 1580 </xs:appinfo> 1590 </xs:annotation> 1600 </xs:element> 1610 <xs:element name = "postcode" type = "xs:string"></xs:element> 1620 <xs:element name = "country" type = "xs:string"></xs:element> 1630 <xs:element name = "occupation" type = "xs:string"></xs:element> 1640 <xs:element name = "insurance"> 1650 <xs:complexType> 1660 <xs:sequence> 1670 <xs:element ref = "company"></xs:element> 1680 <xs:element ref = "policynumber" minOccurs="0"></xs:element> 1690 </xs:sequence> 1700 </xs:complexType> 1710 </xs:element> 1720 <xs:element name = "company" type = "xs:string"></xs:element> 1730 <xs:element name = "policynumber" type = "xs:string"></xs:element> 1740 <xs:element name = "nextofkin"> 1750 <xs:complexType> 1760 <xs:sequence> 1770 <xs:element ref = "name"></xs:element> 1780 <xs:element ref = "address" minOccurs="0"></xs:element> 1790 <xs:element ref = "phone" minOccurs="0" maxOccurs="unbounded"/> 1800 <xs:element ref = "fax" minOccurs="0"></xs:element> 1810 </xs:sequence> 1820 <xs:attribute name = "grade" type = "xs:string" use = "required"/> 1830 </xs:complexType> 1840 </xs:element> 1850 <xs:element name = "phone" type = "xs:string"></xs:element> 1860 <xs:element name = "fax" type = "xs:string"></xs:element> 1870 <xs:element name = "date" type = "xs:string"></xs:element> 1880 <xs:element name = "report"> 1890 <xs:complexType> 1900 <xs:attribute name = "files" type = "xs:ENTITIES" use = "required"/> 1910 </xs:complexType> 1920 </xs:element> 1930 <xs:element name = "symptoms" type = "xs:string"></xs:element> 1940 <xs:element name = "diagnosis" type = "xs:string"></xs:element> 1950 <xs:element name = "doctor"> 1960 <xs:complexType> 1970 <xs:sequence> 1980 <xs:element ref = "name"></xs:element> 1990 </xs:sequence> 2000 <xs:attribute name = "pager" type = "xs:string"></xs:attribute> 2010 </xs:complexType> 2020 </xs:element> 2030 <xs:element name = "medication"> 2040 <xs:complexType> 2050 <xs:sequence maxOccurs="unbounded"> 2060 <xs:element ref = "type"></xs:element> 2070 <xs:element ref = "dosage"></xs:element> 2080 </xs:sequence> 2090 </xs:complexType> 2100 </xs:element> 2110 <xs:element name = "type"> 2120 <xs:complexType> 2130 <xs:simpleContent> 2140 <xs:extension base = "xs:string"> 2150 <xs:attribute name = "form" use = "required"> 2160 <xs:simpleType> 2170 <xs:restriction base = "xs:NMTOKEN"> 2180 <xs:enumeration value = "tablet"></xs:enumeration> 2190 <xs:enumeration value = "capsule"></xs:enumeration> 2200 <xs:enumeration value = "drops"></xs:enumeration> 2210 <xs:enumeration value = "intravenous"></xs:enumeration> 2220 </xs:restriction> 2230 </xs:simpleType> 2240 </xs:attribute> 2250 <xs:attribute name = "brand" type = "xs:string"></xs:attribute> 2260 </xs:extension> 2270 </xs:simpleContent> 2280 </xs:complexType> 2290 </xs:element> 2300 <xs:element name = "dosage" type = "xs:string"></xs:element> 2310 <xs:element name = "physical"> 2320 <xs:complexType> 2330 <xs:sequence> 2340 <xs:element ref = "description"></xs:element> 2350 <xs:element ref = "frequency" minOccurs="0"></xs:element> 2360 </xs:sequence> 2370 </xs:complexType> 2380 </xs:element> 2390 <xs:element name = "description" type = "xs:string"></xs:element> 2400 <xs:element name = "frequency" type = "xs:string"></xs:element> 2410 <xs:element name = "other"> 2420 <xs:complexType> 2430 <xs:sequence> 2440 <xs:element ref = "description"></xs:element> 2450 <xs:element ref = "amount" minOccurs="0"></xs:element> 2460 </xs:sequence> 2470 </xs:complexType> 2480 </xs:element> 2490 <xs:element name = "amount" type = "xs:string"></xs:element> 2500 <xs:element name = "dismissed"> 2510 <xs:complexType> 2520 <xs:sequence> 2530 <xs:element ref = "date"></xs:element> 2540 <xs:element ref = "doctor" minOccurs="0"></xs:element> 2550 </xs:sequence> 2560 </xs:complexType> 2570 </xs:element> 2580 <xs:element name = "transferred"> 2590 <xs:complexType> 2600 <xs:sequence> 2610 <xs:element ref = "date"></xs:element> 2620 <xs:element ref = "destination"></xs:element> 2630 <xs:element ref = "doctor" minOccurs="0"></xs:element> 2640 </xs:sequence> 2650 </xs:complexType> 2660 </xs:element> 2670 <xs:element name = "destination" type = "xs:string"></xs:element> 2680 <xs:element name = "deceased"> 2690 <xs:complexType> 2700 <xs:sequence> 2710 <xs:element ref = "date"></xs:element> 2720 <xs:element ref = "doctor" minOccurs="0"></xs:element> 2730 </xs:sequence> 2740 </xs:complexType> 2750 </xs:element> 2760 </xs:schema>
Assuming the collection name is "hospital", this makes specific queries based on the content of the terminal nodes most efficient, for example:
....../patient/name[surname~="A*"]
which returns all name
elements that contain
surname
elements that start with "A".
Compare this expression with:
....../patient[name/surname~="A*"]
which returns all patient
elements that
contain a name
element containing
surname
elements that start with "A".
This example comprises a whole XML schema that models patient data in a hospital application.
<?xml version = "1.0" encoding = "UTF-8"?> <xs:schema xmlns:xs = "http://www.w3.org/2001/XMLSchema" xmlns:tsd = "http://namespaces.softwareag.com/tamino/TaminoSchemaDefinition"> <xs:element name = "patient"> <xs:complexType> <xs:sequence> <xs:element ref = "name" minOccurs="0"></xs:element> <xs:element ref = "sex"></xs:element> <xs:element ref = "born" minOccurs="0"></xs:element> <xs:element ref = "address" minOccurs="0"></xs:element> <xs:element ref = "occupation" minOccurs="0"></xs:element> <xs:element ref = "insurance" minOccurs="0"></xs:element> <xs:element ref = "nextofkin" minOccurs="0"></xs:element> <xs:element ref = "submitted"></xs:element> <xs:element ref = "examination" minOccurs="0" maxOccurs="unbounded"></xs:element> <xs:element ref = "therapy" minOccurs="0"></xs:element> <xs:element ref = "result" minOccurs="0"></xs:element> <xs:element ref = "remarks" minOccurs="0" maxOccurs="unbounded"></xs:element> </xs:sequence> <xs:attribute name = "ID" type = "xs:string"></xs:attribute> </xs:complexType> </xs:element> <xs:element name = "submitted"> <xs:complexType> <xs:sequence> <xs:element ref = "date"></xs:element> <xs:element ref = "symptoms"></xs:element> <xs:element ref = "diagnosis" maxOccurs="unbounded"></xs:element> <xs:element ref = "doctor" maxOccurs="unbounded"></xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name = "examination"> <xs:complexType> <xs:sequence> <xs:element ref = "date"></xs:element> <xs:element ref = "report" minOccurs="0" maxOccurs="unbounded"></xs:element> <xs:element ref = "remarks" minOccurs="0" maxOccurs="unbounded"></xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name = "therapy"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element ref = "medication"></xs:element> <xs:element ref = "physical"></xs:element> <xs:element ref = "other"></xs:element> </xs:choice> </xs:complexType> </xs:element> <xs:element name = "result"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element ref = "discharged"></xs:element> <xs:element ref = "transferred"></xs:element> <xs:element ref = "deceased"></xs:element> </xs:choice> </xs:complexType> </xs:element> <xs:element name = "remarks" type = "xs:string"></xs:element> <xs:element name = "name"> <xs:complexType> <xs:sequence> <xs:element ref = "surname"></xs:element> <xs:element ref = "firstname"></xs:element> <xs:element ref = "middlename" minOccurs="0"></xs:element> <xs:element ref = "title" minOccurs="0"></xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name = "surname" type = "xs:string"></xs:element> <xs:element name = "firstname" type = "xs:string"></xs:element> <xs:element name = "middlename" type = "xs:string"></xs:element> <xs:element name = "title" type = "xs:string"></xs:element> <xs:element name = "sex" type = "xs:string"></xs:element> <xs:element name = "born" type = "xs:string"></xs:element> <xs:element name = "address"> <xs:complexType> <xs:sequence> <xs:element ref = "street" minOccurs="0"></xs:element> <xs:element ref = "housenumber" minOccurs="0"></xs:element> <xs:element ref = "city" minOccurs="0"></xs:element> <xs:element ref = "postcode" minOccurs="0"></xs:element> <xs:element ref = "country" minOccurs="0"></xs:element> <xs:element ref = "phone" minOccurs="0" maxOccurs="unbounded"></xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name = "street" type = "xs:string"></xs:element> <xs:element name = "housenumber" type = "xs:string"></xs:element> <xs:element name = "city" type = "xs:string"></xs:element> <xs:element name = "postcode" type = "xs:string"></xs:element> <xs:element name = "country" type = "xs:string"></xs:element> <xs:element name = "occupation" type = "xs:string"></xs:element> <xs:element name = "insurance"> <xs:complexType> <xs:sequence> <xs:element ref = "company"></xs:element> <xs:element ref = "policynumber" minOccurs="0"></xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name = "company" type = "xs:string"></xs:element> <xs:element name = "policynumber" type = "xs:string"></xs:element> <xs:element name = "nextofkin"> <xs:complexType> <xs:sequence> <xs:element ref = "name"></xs:element> <xs:element ref = "address" minOccurs="0"></xs:element> <xs:element ref = "phone" minOccurs="0" maxOccurs="unbounded"></xs:element> <xs:element ref = "fax" minOccurs="0"></xs:element> </xs:sequence> <xs:attribute name = "grade" type = "xs:string"></xs:attribute> </xs:complexType> </xs:element> <xs:element name = "phone" type = "xs:string"></xs:element> <xs:element name = "fax" type = "xs:string"></xs:element> <xs:element name = "date" type = "xs:string"></xs:element> <xs:element name = "report"> <xs:complexType> <xs:attribute name = "files" type = "xs:string" use = "required"></xs:attribute> </xs:complexType> </xs:element> <xs:element name = "symptoms" type = "xs:string"></xs:element> <xs:element name = "diagnosis" type = "xs:string"></xs:element> <xs:element name = "doctor"> <xs:complexType> <xs:sequence> <xs:element ref = "name"></xs:element> </xs:sequence> <xs:attribute name = "doctor" type = "xs:string"></xs:attribute> </xs:complexType> </xs:element> <xs:element name = "medication"> <xs:complexType> <xs:sequence maxOccurs="unbounded"> <xs:element ref = "type"></xs:element> <xs:element ref = "dosage"></xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name = "type"> <xs:complexType> <xs:simpleContent> <xs:extension base = "xs:string"> <xs:attribute name = "form" type = "xs:string" use = "required"></xs:attribute> <xs:attribute name = "brand" type = "xs:string"></xs:attribute> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name = "dosage" type = "xs:string"></xs:element> <xs:element name = "physical"> <xs:complexType> <xs:sequence> <xs:element ref = "description"></xs:element> <xs:element ref = "frequency" minOccurs="0"></xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name = "description" type = "xs:string"></xs:element> <xs:element name = "frequency" type = "xs:string"></xs:element> <xs:element name = "other"> <xs:complexType> <xs:sequence> <xs:element ref = "description"></xs:element> <xs:element ref = "amount" minOccurs="0"></xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name = "amount" type = "xs:string"></xs:element> <xs:element name = "discharged"> <xs:complexType> <xs:sequence> <xs:element ref = "date"></xs:element> <xs:element ref = "doctor" minOccurs="0"></xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name = "transferred"> <xs:complexType> <xs:sequence> <xs:element ref = "date"></xs:element> <xs:element ref = "destination"></xs:element> <xs:element ref = "doctor" minOccurs="0"></xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name = "destination" type = "xs:string"></xs:element> <xs:element name = "deceased"> <xs:complexType> <xs:sequence> <xs:element ref = "date"></xs:element> <xs:element ref = "doctor" minOccurs="0"></xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
This is a complete XML schema according to the telephone example used at some places elsewhere in this documentation:
<?xml version = "1.0" encoding = "euc-kr"?> <xs:schema xmlns:xs = "http://www.w3.org/2001/XMLSchema" xmlns:tsd = "http://namespaces.softwareag.com/tamino/TaminoSchemaDefinition"> <xs:annotation> <xs:appinfo> <tsd:schemaInfo name = "Telephone"> <tsd:collection name = "Sample"></tsd:collection> <tsd:doctype name = "Telephone"> <tsd:logical> <tsd:content>closed</tsd:content> </tsd:logical> </tsd:doctype> </tsd:schemaInfo> </xs:appinfo> </xs:annotation> <xs:element name = "Telephone"> <xs:complexType> <xs:sequence> <xs:element name = "LoginName" type = "xs:string"> <xs:annotation> <xs:appinfo> <tsd:elementInfo> <tsd:physical> <tsd:native> <tsd:index> <tsd:standard></tsd:standard> </tsd:index> </tsd:native> </tsd:physical> </tsd:elementInfo> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name = "PassWord" type = "xs:string"> <xs:annotation> <xs:appinfo> <tsd:elementInfo> <tsd:physical> <tsd:native> <tsd:index> <tsd:standard></tsd:standard> </tsd:index> </tsd:native> </tsd:physical> </tsd:elementInfo> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name = "Lastname" type = "xs:string"> <xs:annotation> <xs:appinfo> <tsd:elementInfo> <tsd:physical> <tsd:native> <tsd:index> <tsd:text></tsd:text> </tsd:index> </tsd:native> </tsd:physical> </tsd:elementInfo> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name = "Firstname" type = "xs:string"> <xs:annotation> <xs:appinfo> <tsd:elementInfo> <tsd:physical> <tsd:native> <tsd:index> <tsd:standard></tsd:standard> </tsd:index> </tsd:native> </tsd:physical> </tsd:elementInfo> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name = "Date_of_Birth" type = "xs:string"> <xs:annotation> <xs:appinfo> <tsd:elementInfo> <tsd:physical> <tsd:native> <tsd:index> <tsd:standard></tsd:standard> </tsd:index> </tsd:native> </tsd:physical> </tsd:elementInfo> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name = "Company_Name" type = "xs:string"> <xs:annotation> <xs:appinfo> <tsd:elementInfo> <tsd:physical> <tsd:native> <tsd:index> <tsd:standard></tsd:standard> </tsd:index> </tsd:native> </tsd:physical> </tsd:elementInfo> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name = "Salutation" type = "xs:string"> <xs:annotation> <xs:appinfo> <tsd:elementInfo> <tsd:physical> <tsd:native> <tsd:index> <tsd:standard></tsd:standard> </tsd:index> </tsd:native> </tsd:physical> </tsd:elementInfo> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name = "Email" type = "xs:string"> <xs:annotation> <xs:appinfo> <tsd:elementInfo> <tsd:physical> <tsd:native> <tsd:index> <tsd:standard></tsd:standard> </tsd:index> </tsd:native> </tsd:physical> </tsd:elementInfo> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name = "Address"> <xs:complexType> <xs:sequence> <xs:element name = "Street" type = "xs:string"> <xs:annotation> <xs:appinfo> <tsd:elementInfo> <tsd:physical> <tsd:native> <tsd:index> <tsd:standard></tsd:standard> </tsd:index> </tsd:native> </tsd:physical> </tsd:elementInfo> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name = "City" type = "xs:string"> <xs:annotation> <xs:appinfo> <tsd:elementInfo> <tsd:physical> <tsd:native> <tsd:index> <tsd:standard></tsd:standard> </tsd:index> </tsd:native> </tsd:physical> </tsd:elementInfo> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name = "ZIP" type = "xs:integer"> <xs:annotation> <xs:appinfo> <tsd:elementInfo> <tsd:physical> <tsd:native> <tsd:index> <tsd:standard></tsd:standard> </tsd:index> </tsd:native> </tsd:physical> </tsd:elementInfo> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name = "Country" type = "xs:string"> <xs:annotation> <xs:appinfo> <tsd:elementInfo> <tsd:physical> <tsd:native> <tsd:index> <tsd:standard></tsd:standard> </tsd:index> </tsd:native> </tsd:physical> </tsd:elementInfo> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name = "Phone" type = "xs:string"> <xs:annotation> <xs:appinfo> <tsd:elementInfo> <tsd:physical> <tsd:native> <tsd:index> <tsd:standard></tsd:standard> </tsd:index> </tsd:native> </tsd:physical> </tsd:elementInfo> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name = "Fax" type = "xs:string"> <xs:annotation> <xs:appinfo> <tsd:elementInfo> <tsd:physical> <tsd:native> <tsd:index> <tsd:standard></tsd:standard> </tsd:index> </tsd:native> </tsd:physical> </tsd:elementInfo> </xs:appinfo> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name = "EntryID" type = "xs:integer"> <xs:annotation> <xs:appinfo> <tsd:attributeInfo> <tsd:physical> <tsd:native> <tsd:index> <tsd:standard></tsd:standard> </tsd:index> </tsd:native> </tsd:physical> </tsd:attributeInfo> </xs:appinfo> </xs:annotation> </xs:attribute> </xs:complexType> </xs:element> </xs:schema>