1 <?xml version=
"1.0" encoding=
"UTF-8"?>
3 <!-- CAUTION: the following files implement the parsing and validation of -->
4 <!-- the index definition schema, and so they all must be kept in sync: -->
6 <!-- apphosting/datastore/datastore_index.py -->
7 <!-- apphosting/datastore/datastore_index_xml.py -->
8 <!-- java/com/google/apphosting/utils/config/IndexesXmlReader.java -->
9 <!-- java/com/google/apphosting/utils/config/IndexYamlReader.java -->
10 <!-- java/com/google/appengine/tools/development/datastore-indexes.xsd -->
11 <!-- java/com/google/appengine/tools/development/datastore-indexes.dtd -->
12 <!-- java/com/google/appengine/api/datastore/dev/LocalCompositeIndexManager.java -->
13 <!-- java/com/google/appengine/api/datastore/CompositeIndexManager.java -->
15 <!-- TODO(flyboy): add to this list when we discover even more places -->
16 <!-- that are sensitive to schema changes -->
18 <xs:schema attributeFormDefault=
"unqualified" elementFormDefault=
"qualified" xmlns:
xs=
"http://www.w3.org/2001/XMLSchema">
19 <xs:element name=
"datastore-indexes" type=
"datastore-indexesType" />
20 <xs:complexType name=
"propertyType">
22 <xs:extension base=
"xs:string">
23 <xs:attribute type=
"xs:string" name=
"name" use=
"required"/>
24 <xs:attribute type=
"directionType" name=
"direction" use=
"optional"/>
25 <xs:attribute type=
"modeType" name=
"mode" use=
"optional"/>
30 <xs:complexType name=
"datastore-indexesType">
32 <xs:element type=
"datastore-indexType" name=
"datastore-index" maxOccurs=
"unbounded" minOccurs=
"0">
34 <xs:documentation>Number of uses in query history
</xs:documentation>
38 <xs:attribute type=
"xs:boolean" name=
"autoGenerate" use=
"required"/>
41 <xs:complexType name=
"datastore-indexType">
43 <xs:element type=
"propertyType" name=
"property" maxOccurs=
"unbounded" minOccurs=
"0"/>
45 <xs:attribute type=
"xs:string" name=
"kind" use=
"required"/>
46 <xs:attribute type=
"xs:boolean" name=
"ancestor" use=
"optional"/>
47 <xs:attribute type=
"xs:string" name=
"source" use=
"optional"/>
50 <xs:simpleType name=
"directionType">
51 <xs:restriction base=
"xs:string">
52 <xs:enumeration value=
"asc"/>
53 <xs:enumeration value=
"desc"/>
57 <xs:simpleType name=
"modeType">
58 <xs:restriction base=
"xs:string">
59 <xs:enumeration value=
"geospatial"/>