ogrvrt.xsd 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3. /******************************************************************************
  4. * $Id: ogrvrt.xsd 36883 2016-12-15 13:31:12Z rouault $
  5. *
  6. * Project: GDAL/OGR
  7. * Purpose: XML Schema for OGR VRT files.
  8. * Author: Even Rouault, <even dot rouault at mines dash paris dot org>
  9. *
  10. **********************************************************************
  11. * Copyright (c) 2012, Even Rouault
  12. *
  13. * Permission is hereby granted, free of charge, to any person obtaining a
  14. * copy of this software and associated documentation files (the "Software"),
  15. * to deal in the Software without restriction, including without limitation
  16. * the rights to use, copy, modify, merge, publish, distribute, sublicense,
  17. * and/or sell copies of the Software, and to permit persons to whom the
  18. * Software is furnished to do so, subject to the following conditions:
  19. *
  20. * The above copyright notice and this permission notice shall be included
  21. * in all copies or substantial portions of the Software.
  22. *
  23. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  24. * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  25. * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
  26. * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  27. * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  28. * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  29. * DEALINGS IN THE SOFTWARE.
  30. ****************************************************************************/
  31. -->
  32. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="1.0">
  33. <xs:element name="OGRVRTDataSource">
  34. <xs:complexType>
  35. <xs:sequence>
  36. <xs:choice minOccurs="0" maxOccurs="unbounded">
  37. <xs:element name="Metadata" type="MetadataType"/> <!-- may be repeated -->
  38. <xs:element name="OGRVRTLayer" type="OGRVRTLayerType"/>
  39. <xs:element name="OGRVRTWarpedLayer" type="OGRVRTWarpedLayerType"/>
  40. <xs:element name="OGRVRTUnionLayer" type="OGRVRTUnionLayerType"/>
  41. </xs:choice>
  42. </xs:sequence>
  43. </xs:complexType>
  44. </xs:element>
  45. <xs:complexType name="MetadataType">
  46. <xs:sequence>
  47. <!--<xs:choice>-->
  48. <!--<xs:element name="MDI" type="MDIType" minOccurs="0" maxOccurs="unbounded"/>-->
  49. <xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
  50. <!--</xs:choice>-->
  51. </xs:sequence>
  52. <xs:attribute name="domain" type="xs:string"/>
  53. <xs:attribute name="format" type="xs:string"/>
  54. </xs:complexType>
  55. <xs:complexType name="OGRVRTLayerType">
  56. <xs:sequence>
  57. <xs:choice minOccurs="0" maxOccurs="unbounded">
  58. <xs:element name="Metadata" type="MetadataType"/> <!-- may be repeated -->
  59. <xs:element name="SrcDataSource" type="SrcDataSourceType">
  60. <xs:annotation>
  61. <xs:documentation>Required element</xs:documentation>
  62. </xs:annotation>
  63. </xs:element>
  64. <xs:element name="OpenOptions" type="OpenOptionsType">
  65. <xs:annotation>
  66. <xs:documentation>Optional element</xs:documentation>
  67. </xs:annotation>
  68. </xs:element>
  69. <xs:element name="SrcLayer" type="nonEmptyStringType">
  70. <xs:annotation>
  71. <xs:documentation>SrcLayer or(eclusive) SrcSQL are required elements</xs:documentation>
  72. </xs:annotation>
  73. </xs:element>
  74. <xs:element name="SrcSQL">
  75. <xs:complexType>
  76. <xs:simpleContent>
  77. <xs:extension base="nonEmptyStringType">
  78. <xs:attribute name="dialect" type="nonEmptyStringType"/>
  79. </xs:extension>
  80. </xs:simpleContent>
  81. </xs:complexType>
  82. </xs:element>
  83. <xs:element name="FID" type="FIDType"/>
  84. <xs:element name="Style" type="nonEmptyStringType"/>
  85. <xs:element name="GeometryType" type="GeometryTypeType">
  86. <xs:annotation>
  87. <xs:documentation>Use GeometryField.GeometryType for multi-geometry field support.</xs:documentation>
  88. </xs:annotation>
  89. </xs:element>
  90. <xs:element name="LayerSRS" type="nonEmptyStringType">
  91. <xs:annotation>
  92. <xs:documentation>Use GeometryField.SRS for multi-geometry field support.</xs:documentation>
  93. </xs:annotation>
  94. </xs:element>
  95. <xs:element name="Field" type="FieldType">
  96. <xs:annotation>
  97. <xs:documentation>May be repeated</xs:documentation>
  98. </xs:annotation>
  99. </xs:element>
  100. <xs:element name="GeometryField" type="GeometryFieldType">
  101. <xs:annotation>
  102. <xs:documentation>May be repeated</xs:documentation>
  103. </xs:annotation>
  104. </xs:element>
  105. <xs:element name="SrcRegion" type="SrcRegionType">
  106. <xs:annotation>
  107. <xs:documentation>Use GeometryField.SrcRegion for multi-geometry field support.</xs:documentation>
  108. </xs:annotation>
  109. </xs:element>
  110. <xs:element name="attrFilterPassThrough" type="OGRBooleanType">
  111. <xs:annotation>
  112. <xs:documentation>Default to FALSE.</xs:documentation>
  113. </xs:annotation>
  114. </xs:element>
  115. <xs:element name="FeatureCount" type="xs:integer"/>
  116. <xs:group ref="ExtentType">
  117. <xs:annotation>
  118. <xs:documentation>Use GeometryField.ExtentXMin, etc... for multi-geometry field support.</xs:documentation>
  119. </xs:annotation>
  120. </xs:group>
  121. </xs:choice>
  122. </xs:sequence>
  123. <xs:attribute name="name" type="nonEmptyStringType" use="required"/>
  124. </xs:complexType>
  125. <xs:complexType name="OpenOptionsType">
  126. <xs:sequence>
  127. <xs:element name="OOI" type="OOIType" minOccurs="0" maxOccurs="unbounded"/>
  128. </xs:sequence>
  129. </xs:complexType>
  130. <xs:complexType name="OOIType">
  131. <xs:simpleContent>
  132. <xs:extension base="nonEmptyStringType">
  133. <xs:attribute name="key" type="xs:string"/>
  134. </xs:extension>
  135. </xs:simpleContent>
  136. </xs:complexType>
  137. <xs:complexType name="FIDType">
  138. <xs:simpleContent>
  139. <xs:extension base="nonEmptyStringType">
  140. <xs:attribute name="name" type="xs:string">
  141. <xs:annotation>
  142. <xs:documentation>A user-facing name can be specified here so that a FID column name is reported even if it is not reported as a regular field.</xs:documentation>
  143. </xs:annotation>
  144. </xs:attribute>
  145. </xs:extension>
  146. </xs:simpleContent>
  147. </xs:complexType>
  148. <xs:group name="ExtentType">
  149. <xs:sequence>
  150. <xs:element name="ExtentXMin" type="xs:double" minOccurs="1" maxOccurs="1"/>
  151. <xs:element name="ExtentYMin" type="xs:double" minOccurs="1" maxOccurs="1"/>
  152. <xs:element name="ExtentXMax" type="xs:double" minOccurs="1" maxOccurs="1"/>
  153. <xs:element name="ExtentYMax" type="xs:double" minOccurs="1" maxOccurs="1"/>
  154. </xs:sequence>
  155. </xs:group>
  156. <xs:complexType name="SrcDataSourceType">
  157. <xs:simpleContent>
  158. <xs:extension base="nonEmptyStringType">
  159. <xs:attribute name="relativeToVRT" type="OGRBooleanType" default="FALSE">
  160. <xs:annotation>
  161. <xs:documentation>Default to FALSE.</xs:documentation>
  162. </xs:annotation>
  163. </xs:attribute>
  164. <!-- alternate case -->
  165. <xs:attribute name="relativetoVRT" type="OGRBooleanType" default="FALSE">
  166. <xs:annotation>
  167. <xs:documentation>Default to FALSE.</xs:documentation>
  168. </xs:annotation>
  169. </xs:attribute>
  170. <xs:attribute name="shared" type="OGRBooleanType"/>
  171. </xs:extension>
  172. </xs:simpleContent>
  173. </xs:complexType>
  174. <xs:simpleType name="nonEmptyStringType">
  175. <xs:restriction base="xs:string">
  176. <xs:minLength value="1"/>
  177. </xs:restriction>
  178. </xs:simpleType>
  179. <xs:simpleType name="GeometryTypeType">
  180. <xs:restriction base="xs:string">
  181. <xs:enumeration value="wkbNone"/>
  182. <xs:enumeration value="wkbUnknown"/>
  183. <xs:enumeration value="wkbPoint"/>
  184. <xs:enumeration value="wkbLineString"/>
  185. <xs:enumeration value="wkbPolygon"/>
  186. <xs:enumeration value="wkbMultiPoint"/>
  187. <xs:enumeration value="wkbMultiLineString"/>
  188. <xs:enumeration value="wkbMultiPolygon"/>
  189. <xs:enumeration value="wkbGeometryCollection"/>
  190. <xs:enumeration value="wkbCircularString"/> <!-- new in GDAL 2.0 -->
  191. <xs:enumeration value="wkbCompoundCurve"/> <!-- new in GDAL 2.0 -->
  192. <xs:enumeration value="wkbCurvePolygon"/> <!-- new in GDAL 2.0 -->
  193. <xs:enumeration value="wkbMultiCurve"/> <!-- new in GDAL 2.0 -->
  194. <xs:enumeration value="wkbMultiSurface"/> <!-- new in GDAL 2.0 -->
  195. <xs:enumeration value="wkbCurve"/> <!-- new in GDAL 2.1 -->
  196. <xs:enumeration value="wkbSurface"/> <!-- new in GDAL 2.1 -->
  197. <xs:enumeration value="wkbPoint25D"/>
  198. <xs:enumeration value="wkbLineString25D"/>
  199. <xs:enumeration value="wkbPolygon25D"/>
  200. <xs:enumeration value="wkbMultiPoint25D"/>
  201. <xs:enumeration value="wkbMultiLineString25D"/>
  202. <xs:enumeration value="wkbMultiPolygon25D"/>
  203. <xs:enumeration value="wkbGeometryCollection25D"/>
  204. <xs:enumeration value="wkbCircularStringZ"/> <!-- new in GDAL 2.0 -->
  205. <xs:enumeration value="wkbCompoundCurveZ"/> <!-- new in GDAL 2.0 -->
  206. <xs:enumeration value="wkbCurvePolygonZ"/> <!-- new in GDAL 2.0 -->
  207. <xs:enumeration value="wkbMultiCurveZ"/> <!-- new in GDAL 2.0 -->
  208. <xs:enumeration value="wkbMultiSurfaceZ"/> <!-- new in GDAL 2.0 -->
  209. <xs:enumeration value="wkbCurveZ"/> <!-- new in GDAL 2.1 -->
  210. <xs:enumeration value="wkbSurfaceZ"/> <!-- new in GDAL 2.1 -->
  211. <!-- below is new in GDAL 2.1 -->
  212. <xs:enumeration value="wkbPointM"/>
  213. <xs:enumeration value="wkbLineStringM"/>
  214. <xs:enumeration value="wkbPolygonM"/>
  215. <xs:enumeration value="wkbMultiPointM"/>
  216. <xs:enumeration value="wkbMultiLineStringM"/>
  217. <xs:enumeration value="wkbMultiPolygonM"/>
  218. <xs:enumeration value="wkbGeometryCollectionM"/>
  219. <xs:enumeration value="wkbCircularStringM"/>
  220. <xs:enumeration value="wkbCompoundCurveM"/>
  221. <xs:enumeration value="wkbCurvePolygonM"/>
  222. <xs:enumeration value="wkbMultiCurveM"/>
  223. <xs:enumeration value="wkbMultiSurfaceM"/>
  224. <xs:enumeration value="wkbCurveM"/>
  225. <xs:enumeration value="wkbSurfaceM"/>
  226. <xs:enumeration value="wkbPointZM"/>
  227. <xs:enumeration value="wkbLineStringZM"/>
  228. <xs:enumeration value="wkbPolygonZM"/>
  229. <xs:enumeration value="wkbMultiPointZM"/>
  230. <xs:enumeration value="wkbMultiLineStringZM"/>
  231. <xs:enumeration value="wkbMultiPolygonZM"/>
  232. <xs:enumeration value="wkbGeometryCollectionZM"/>
  233. <xs:enumeration value="wkbCircularStringZM"/>
  234. <xs:enumeration value="wkbCompoundCurveZM"/>
  235. <xs:enumeration value="wkbCurvePolygonZM"/>
  236. <xs:enumeration value="wkbMultiCurveZM"/>
  237. <xs:enumeration value="wkbMultiSurfaceZM"/>
  238. <xs:enumeration value="wkbCurveZM"/>
  239. <xs:enumeration value="wkbSurfaceZM"/>
  240. <!-- below is new in GDAL 2.2 -->
  241. <xs:enumeration value="wkbPolyhedralSurface"/>
  242. <xs:enumeration value="wkbTIN"/>
  243. <xs:enumeration value="wkbTriangle"/>
  244. <xs:enumeration value="wkbPolyhedralSurfaceZ"/>
  245. <xs:enumeration value="wkbTINZ"/>
  246. <xs:enumeration value="wkbTriangleZ"/>
  247. <xs:enumeration value="wkbPolyhedralSurfaceM"/>
  248. <xs:enumeration value="wkbTINM"/>
  249. <xs:enumeration value="wkbTriangleM"/>
  250. <xs:enumeration value="wkbPolyhedralSurfaceZM"/>
  251. <xs:enumeration value="wkbTINZM"/>
  252. <xs:enumeration value="wkbTriangleZM"/>
  253. </xs:restriction>
  254. </xs:simpleType>
  255. <xs:complexType name="FieldTypeWithoutSrc">
  256. <xs:attribute name="name" type="nonEmptyStringType" use="required"/>
  257. <xs:attribute name="type" type="OGRFieldTypeType" default="String"/>
  258. <xs:attribute name="subtype" type="OGRFieldSubTypeType" default="None"/> <!-- new in GDAL 2.0 -->
  259. <xs:attribute name="width" type="xs:nonNegativeInteger"/>
  260. <xs:attribute name="precision" type="xs:nonNegativeInteger"/>
  261. <xs:attribute name="nullable" type="OGRBooleanType" default="true"/> <!-- new in GDAL 2.0 -->
  262. <xs:attribute name="default" type="xs:string"/> <!-- new in GDAL 2.0 -->
  263. </xs:complexType>
  264. <xs:complexType name="FieldType">
  265. <xs:complexContent>
  266. <xs:extension base="FieldTypeWithoutSrc">
  267. <xs:attribute name="src" type="nonEmptyStringType">
  268. <xs:annotation>
  269. <xs:documentation>Defaults to the value of "name" if not specified.</xs:documentation>
  270. </xs:annotation>
  271. </xs:attribute>
  272. </xs:extension>
  273. </xs:complexContent>
  274. </xs:complexType>
  275. <xs:simpleType name="OGRFieldTypeType">
  276. <xs:restriction base="xs:string">
  277. <xs:enumeration value="Integer"/>
  278. <xs:enumeration value="integer"/>
  279. <xs:enumeration value="Integer64"/>
  280. <xs:enumeration value="integer64"/>
  281. <xs:enumeration value="Real"/>
  282. <xs:enumeration value="real"/>
  283. <xs:enumeration value="String"/>
  284. <xs:enumeration value="string"/>
  285. <xs:enumeration value="IntegerList"/>
  286. <xs:enumeration value="integerlist"/>
  287. <xs:enumeration value="Integer64List"/>
  288. <xs:enumeration value="integer64list"/>
  289. <xs:enumeration value="RealList"/>
  290. <xs:enumeration value="reallist"/>
  291. <xs:enumeration value="StringList"/>
  292. <xs:enumeration value="stringlist"/>
  293. <xs:enumeration value="Binary"/>
  294. <xs:enumeration value="binary"/>
  295. <xs:enumeration value="Date"/>
  296. <xs:enumeration value="date"/>
  297. <xs:enumeration value="Time"/>
  298. <xs:enumeration value="time"/>
  299. <xs:enumeration value="DateTime"/>
  300. <xs:enumeration value="datetime"/>
  301. </xs:restriction>
  302. </xs:simpleType>
  303. <xs:simpleType name="OGRFieldSubTypeType">
  304. <xs:restriction base="xs:string">
  305. <xs:enumeration value="None"/>
  306. <xs:enumeration value="Boolean"/>
  307. <xs:enumeration value="Int16"/>
  308. <xs:enumeration value="Float32"/>
  309. </xs:restriction>
  310. </xs:simpleType>
  311. <xs:simpleType name="EncodingType">
  312. <xs:restriction base="xs:string">
  313. <xs:enumeration value="Direct"/>
  314. <xs:enumeration value="None"/>
  315. <xs:enumeration value="WKT"/>
  316. <xs:enumeration value="WKB"/>
  317. <xs:enumeration value="Shape"/>
  318. <xs:enumeration value="shape"/>
  319. <xs:enumeration value="PointFromColumns"/>
  320. </xs:restriction>
  321. </xs:simpleType>
  322. <xs:attributeGroup name="GeometryFieldTypeAttrGroupWithoutSrc">
  323. <xs:attribute name="encoding" type="EncodingType">
  324. <xs:annotation>
  325. <xs:documentation>Defaults to Direct.</xs:documentation>
  326. </xs:annotation>
  327. </xs:attribute>
  328. <xs:attribute name="name" type="xs:string">
  329. <xs:annotation>
  330. <xs:documentation>Name of the geometry field</xs:documentation>
  331. </xs:annotation>
  332. </xs:attribute>
  333. <xs:attribute name="x" type="nonEmptyStringType">
  334. <xs:annotation>
  335. <xs:documentation>Only used if encoding = "PointFromColumns"</xs:documentation>
  336. </xs:annotation>
  337. </xs:attribute>
  338. <xs:attribute name="y" type="nonEmptyStringType">
  339. <xs:annotation>
  340. <xs:documentation>Only used if encoding = "PointFromColumns"</xs:documentation>
  341. </xs:annotation>
  342. </xs:attribute>
  343. <xs:attribute name="z" type="nonEmptyStringType">
  344. <xs:annotation>
  345. <xs:documentation>Only used if encoding = "PointFromColumns"</xs:documentation>
  346. </xs:annotation>
  347. </xs:attribute>
  348. <xs:attribute name="m" type="nonEmptyStringType">
  349. <xs:annotation>
  350. <xs:documentation>Only used if encoding = "PointFromColumns"</xs:documentation>
  351. </xs:annotation>
  352. </xs:attribute>
  353. <xs:attribute name="useSpatialSubquery" type="OGRBooleanType">
  354. <xs:annotation>
  355. <xs:documentation>Only used if encoding = "PointFromColumns". Defaults to TRUE.</xs:documentation>
  356. </xs:annotation>
  357. </xs:attribute>
  358. <xs:attribute name="reportSrcColumn" type="OGRBooleanType">
  359. <xs:annotation>
  360. <xs:documentation>Only used if no Field element is found at the OGRVRTLayer level</xs:documentation>
  361. </xs:annotation>
  362. </xs:attribute>
  363. <xs:attribute name="nullable" type="OGRBooleanType" default="true"/> <!-- new in GDAL 2.0 -->
  364. </xs:attributeGroup>
  365. <xs:complexType name="GeometryFieldTypeWithoutSrc">
  366. <xs:sequence>
  367. <xs:choice minOccurs="0" maxOccurs="unbounded">
  368. <xs:element name="GeometryType" type="GeometryTypeType"/>
  369. <xs:element name="SrcRegion" type="SrcRegionType"/>
  370. <xs:element name="SRS" type="nonEmptyStringType"/>
  371. <xs:group ref="ExtentType"/>
  372. </xs:choice>
  373. </xs:sequence>
  374. <xs:attributeGroup ref="GeometryFieldTypeAttrGroupWithoutSrc"/>
  375. </xs:complexType>
  376. <xs:complexType name="GeometryFieldType">
  377. <xs:complexContent>
  378. <xs:extension base="GeometryFieldTypeWithoutSrc">
  379. <xs:attribute name="field" type="nonEmptyStringType">
  380. <xs:annotation>
  381. <xs:documentation>Used if encoding = "WKT", "WKB" or "Shape" to find
  382. the attribute field of the source layer.
  383. Used also in multiple geometry fields scenario to retrieve the
  384. source geometry field matching the target VRT geometry field.</xs:documentation>
  385. </xs:annotation>
  386. </xs:attribute>
  387. </xs:extension>
  388. </xs:complexContent>
  389. </xs:complexType>
  390. <xs:complexType name="SrcRegionType">
  391. <xs:simpleContent>
  392. <xs:extension base="PolygonWKTType">
  393. <xs:attribute name="clip" type="OGRBooleanType">
  394. <xs:annotation>
  395. <xs:documentation>Defaults to FALSE.</xs:documentation>
  396. </xs:annotation>
  397. </xs:attribute>
  398. </xs:extension>
  399. </xs:simpleContent>
  400. </xs:complexType>
  401. <xs:simpleType name="PolygonWKTType">
  402. <xs:annotation>
  403. <xs:documentation>A valid WKT for a POLYGON</xs:documentation>
  404. </xs:annotation>
  405. <xs:restriction base="xs:string">
  406. <xs:pattern value="POLYGON.*"/>
  407. </xs:restriction>
  408. </xs:simpleType>
  409. <xs:simpleType name="OGRBooleanType">
  410. <xs:restriction base="xs:string">
  411. <xs:enumeration value="1"/>
  412. <xs:enumeration value="0"/>
  413. <xs:enumeration value="ON"/>
  414. <xs:enumeration value="OFF"/>
  415. <xs:enumeration value="on"/>
  416. <xs:enumeration value="off"/>
  417. <xs:enumeration value="YES"/>
  418. <xs:enumeration value="NO"/>
  419. <xs:enumeration value="yes"/>
  420. <xs:enumeration value="no"/>
  421. <xs:enumeration value="TRUE"/>
  422. <xs:enumeration value="FALSE"/>
  423. <xs:enumeration value="true"/>
  424. <xs:enumeration value="false"/>
  425. </xs:restriction>
  426. </xs:simpleType>
  427. <xs:complexType name="OGRVRTWarpedLayerType">
  428. <xs:sequence>
  429. <xs:choice minOccurs="1" maxOccurs="1">
  430. <xs:element name="OGRVRTLayer" type="OGRVRTLayerType"/>
  431. <xs:element name="OGRVRTWarpedLayer" type="OGRVRTWarpedLayerType"/>
  432. <xs:element name="OGRVRTUnionLayer" type="OGRVRTUnionLayerType"/>
  433. </xs:choice>
  434. <xs:element name="WarpedGeomFieldName" type="nonEmptyStringType" minOccurs="0" maxOccurs="1"/>
  435. <xs:element name="SrcSRS" type="nonEmptyStringType" minOccurs="0" maxOccurs="1"/>
  436. <xs:element name="TargetSRS" type="nonEmptyStringType" minOccurs="1" maxOccurs="1"/>
  437. <xs:group ref="ExtentType" minOccurs="0" maxOccurs="1"/>
  438. </xs:sequence>
  439. </xs:complexType>
  440. <xs:complexType name="OGRVRTUnionLayerType">
  441. <xs:sequence>
  442. <xs:choice minOccurs="0" maxOccurs="unbounded">
  443. <xs:element name="OGRVRTLayer" type="OGRVRTLayerType">
  444. <xs:annotation>
  445. <xs:documentation>May be repeated</xs:documentation>
  446. </xs:annotation>
  447. </xs:element>
  448. <xs:element name="OGRVRTWarpedLayer" type="OGRVRTWarpedLayerType">
  449. <xs:annotation>
  450. <xs:documentation>May be repeated</xs:documentation>
  451. </xs:annotation>
  452. </xs:element>
  453. <xs:element name="OGRVRTUnionLayer" type="OGRVRTUnionLayerType">
  454. <xs:annotation>
  455. <xs:documentation>May be repeated</xs:documentation>
  456. </xs:annotation>
  457. </xs:element>
  458. <xs:element name="GeometryType" type="GeometryTypeType">
  459. <xs:annotation>
  460. <xs:documentation>Use GeometryField.GeometryType for multi-geometry field support.</xs:documentation>
  461. </xs:annotation>
  462. </xs:element>
  463. <xs:element name="LayerSRS" type="nonEmptyStringType">
  464. <xs:annotation>
  465. <xs:documentation>Use GeometryField.SRS for multi-geometry field support.</xs:documentation>
  466. </xs:annotation>
  467. </xs:element>
  468. <xs:element name="FieldStrategy" type="FieldStrategyType">
  469. <xs:annotation>
  470. <xs:documentation>Defaults to Union if no Field or GeometryField element is speicified.</xs:documentation>
  471. </xs:annotation>
  472. </xs:element>
  473. <xs:element name="Field" type="FieldTypeWithoutSrc">
  474. <xs:annotation>
  475. <xs:documentation>May be repeated</xs:documentation>
  476. </xs:annotation>
  477. </xs:element>
  478. <xs:element name="GeometryField" type="GeometryFieldTypeWithoutSrc">
  479. <xs:annotation>
  480. <xs:documentation>May be repeated</xs:documentation>
  481. </xs:annotation>
  482. </xs:element>
  483. <xs:element name="PreserveSrcFID" type="OGRBooleanType">
  484. <xs:annotation>
  485. <xs:documentation>Defaults to FALSE.</xs:documentation>
  486. </xs:annotation>
  487. </xs:element>
  488. <xs:element name="SourceLayerFieldName" type="nonEmptyStringType">
  489. <xs:annotation>
  490. <xs:documentation>Name of fields in which to place the name of the source layer of each feature.</xs:documentation>
  491. </xs:annotation>
  492. </xs:element>
  493. <xs:element name="FeatureCount" type="xs:integer"/>
  494. <xs:group ref="ExtentType">
  495. <xs:annotation>
  496. <xs:documentation>Use GeometryField.ExtentXMin, etc. for multi-geometry field support.</xs:documentation>
  497. </xs:annotation>
  498. </xs:group>
  499. </xs:choice>
  500. </xs:sequence>
  501. <xs:attribute name="name" type="nonEmptyStringType" use="required"/>
  502. </xs:complexType>
  503. <xs:simpleType name="FieldStrategyType">
  504. <xs:restriction base="xs:string">
  505. <xs:enumeration value="FirstLayer"/>
  506. <xs:enumeration value="Union"/>
  507. <xs:enumeration value="Intersection"/>
  508. </xs:restriction>
  509. </xs:simpleType>
  510. </xs:schema>