Changes between Initial Version and Version 1 of MapGuideRfc37


Ignore:
Timestamp:
Sep 21, 2007, 10:10:09 AM (17 years ago)
Author:
jacklee
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MapGuideRfc37

    v1 v1  
     1= !MapGuide RFC 37 - New Provider Capabilities schema =
     2
     3This page contains an change request (RFC) for the !MapGuide Open Source project. More !MapGuide RFCs can be found on the RFCs page.
     4
     5== Status ==
     6 
     7||RFC Template Version||1.0||
     8||Submission Date||Sept 21, 2007||
     9||Last Modified||Jack Lee [[Timestamp]]||
     10||Author||Jack Lee||
     11||RFC Status||draft||
     12||Implementation Status||under development||
     13||Proposed Milestone||2.0||
     14||Assigned PSC guide(s)||Tom||
     15||'''Voting History'''||Sept 21, 2007||
     16||+1||||
     17||+0||||
     18||-0||||
     19||-1||||
     20
     21== Overview ==
     22
     23This change adds a new version of the Provider Capabilities schema.
     24
     25== Motivation ==
     26
     27Some provider capabilities is missing from the current schema.
     28
     29== Proposed Solution ==
     30
     31
     32Add a new file, !FdoProviderCapabilities-1.1.0.xsd to the Common/Schema folder. This file contains the following new capabilities:
     33 * !SupportsAutoIdGeneration(Command Capability)
     34 * !SupportsDataStoreScopeUniqueIdGeneration(Command Capability)
     35 * !SupportedAutoGeneratedTypes(Command Capability)
     36 * !SupportsSelectExpressions(Command Capability)
     37 * !SupportsSelectFunctions(Command Capability)
     38 * !SupportsSelectDistinct(Command Capability)
     39 * !SupportsSelectOrdering(Command Capability)
     40 * !SupportsSelectGrouping(Command Capability)
     41 * !CategoryType(Expression Capability)
     42 * !SignatureDefinitionCollection(Expression Capability) instead of !ArgumentDefinitionList
     43
     44The new Provider Capabilities schema is shown below.
     45{{{
     46<?xml version="1.0" encoding="UTF-8"?>
     47<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
     48  <xs:element name="FeatureProviderCapabilities" type="FdoProviderCapabilities"/>
     49  <xs:complexType name="FdoProviderCapabilities">
     50    <xs:sequence>
     51      <xs:element name="Provider">
     52        <xs:complexType>
     53          <xs:simpleContent>
     54            <xs:extension base="xs:string">
     55              <xs:attribute name="Name" type="xs:string" use="required"/>
     56            </xs:extension>
     57          </xs:simpleContent>
     58        </xs:complexType>
     59      </xs:element>
     60      <xs:element name="Connection" minOccurs="0">
     61        <xs:complexType>
     62          <xs:sequence>
     63            <xs:element name="ThreadCapability">
     64              <xs:simpleType>
     65                <xs:restriction base="xs:string">
     66                  <xs:enumeration value="SingleThreaded"/>
     67                  <xs:enumeration value="PerConnectionThreaded"/>
     68                  <xs:enumeration value="PerCommandThreaded"/>
     69                  <xs:enumeration value="MultiThreaded"/>
     70                </xs:restriction>
     71              </xs:simpleType>
     72            </xs:element>
     73            <xs:element name="SpatialContextExtent">
     74              <xs:annotation>
     75                <xs:documentation>Static or Dynamic. Could be enumeration here.</xs:documentation>
     76              </xs:annotation>
     77              <xs:complexType>
     78                <xs:sequence>
     79                  <xs:element name="Type" maxOccurs="unbounded">
     80                    <xs:simpleType>
     81                      <xs:restriction base="xs:string">
     82                        <xs:enumeration value="Static"/>
     83                        <xs:enumeration value="Dynamic"/>
     84                      </xs:restriction>
     85                    </xs:simpleType>
     86                  </xs:element>
     87                </xs:sequence>
     88              </xs:complexType>
     89            </xs:element>
     90            <xs:element name="SupportsLocking" type="xs:boolean"/>
     91            <xs:element name="SupportsTimeout" type="xs:boolean"/>
     92            <xs:element name="SupportsTransactions" type="xs:boolean"/>
     93            <xs:element name="SupportsLongTransactions" type="xs:boolean"/>
     94            <xs:element name="SupportsSQL" type="xs:boolean"/>
     95            <xs:element name="SupportsConfiguration" type="xs:boolean"/>
     96          </xs:sequence>
     97        </xs:complexType>
     98      </xs:element>
     99      <xs:element name="Schema" minOccurs="0">
     100        <xs:complexType>
     101          <xs:sequence>
     102            <xs:element name="Class">
     103              <xs:complexType>
     104                <xs:sequence>
     105                  <xs:element name="Type" maxOccurs="unbounded">
     106                    <xs:annotation>
     107                      <xs:documentation>Class or FeatureClass enum value here</xs:documentation>
     108                    </xs:annotation>
     109                    <xs:simpleType>
     110                      <xs:restriction base="xs:string">
     111                        <xs:enumeration value="Class"/>
     112                        <xs:enumeration value="FeatureClass"/>
     113                      </xs:restriction>
     114                    </xs:simpleType>
     115                  </xs:element>
     116                </xs:sequence>
     117              </xs:complexType>
     118            </xs:element>
     119            <xs:element name="Data">
     120              <xs:complexType>
     121                <xs:sequence>
     122                  <xs:element name="Type" maxOccurs="unbounded">
     123                    <xs:annotation>
     124                      <xs:documentation>Enum of data types  Boolean, Byte, DateTime, Decimal, Double, Int16, Int32, Int64, Single, String, BLOB, CLOB, UniqueID  </xs:documentation>
     125                    </xs:annotation>
     126                    <xs:simpleType>
     127                      <xs:restriction base="xs:string">
     128                        <xs:enumeration value="Boolean"/>
     129                        <xs:enumeration value="Byte"/>
     130                        <xs:enumeration value="DateTime"/>
     131                        <xs:enumeration value="Decimal"/>
     132                        <xs:enumeration value="Double"/>
     133                        <xs:enumeration value="Int16"/>
     134                        <xs:enumeration value="Int32"/>
     135                        <xs:enumeration value="Int64"/>
     136                        <xs:enumeration value="Single"/>
     137                        <xs:enumeration value="String"/>
     138                        <xs:enumeration value="BLOB"/>
     139                        <xs:enumeration value="CLOB"/>
     140                        <xs:enumeration value="UniqueID"/>
     141                      </xs:restriction>
     142                    </xs:simpleType>
     143                  </xs:element>
     144                </xs:sequence>
     145              </xs:complexType>
     146            </xs:element>
     147            <xs:element name="SupportsInheritance" type="xs:boolean"/>
     148            <xs:element name="SupportsMultipleSchemas" type="xs:boolean"/>
     149            <xs:element name="SupportsObjectProperties" type="xs:boolean"/>
     150            <xs:element name="SupportsAssociationProperties" type="xs:boolean"/>
     151            <xs:element name="SupportsSchemaOverrides" type="xs:boolean"/>
     152            <xs:element name="SupportsNetworkModel" type="xs:boolean"/>
     153            <xs:element name="SupportsAutoIdGeneration" type="xs:boolean"/>
     154            <xs:element name="SupportsDataStoreScopeUniqueIdGeneration" type="xs:boolean"/>
     155            <xs:element name="SupportedAutoGeneratedTypes" maxOccurs="unbounded">
     156              <xs:complexType>
     157                <xs:sequence>
     158                  <xs:element name="Type" minOccurs="0">
     159                    <xs:annotation>
     160                      <xs:documentation>Enum of data types  Boolean, Byte, DateTime, Decimal, Double, Int16, Int32, Int64, Single, String, BLOB, CLOB, UniqueID  </xs:documentation>
     161                    </xs:annotation>
     162                    <xs:simpleType>
     163                      <xs:restriction base="xs:string">
     164                        <xs:enumeration value="Boolean"/>
     165                        <xs:enumeration value="Byte"/>
     166                        <xs:enumeration value="DateTime"/>
     167                        <xs:enumeration value="Decimal"/>
     168                        <xs:enumeration value="Double"/>
     169                        <xs:enumeration value="Int16"/>
     170                        <xs:enumeration value="Int32"/>
     171                        <xs:enumeration value="Int64"/>
     172                        <xs:enumeration value="Single"/>
     173                        <xs:enumeration value="String"/>
     174                        <xs:enumeration value="BLOB"/>
     175                        <xs:enumeration value="CLOB"/>
     176                        <xs:enumeration value="UniqueID"/>
     177                      </xs:restriction>
     178                    </xs:simpleType>
     179                  </xs:element>
     180                  </xs:sequence>
     181                </xs:complexType>
     182             </xs:element>
     183            <xs:element name="SupportsSchemaModification" type="xs:boolean"/>         
     184          </xs:sequence>
     185        </xs:complexType>
     186      </xs:element>
     187      <xs:element name="Command" minOccurs="0">
     188        <xs:complexType>
     189          <xs:sequence>
     190            <xs:element name="SupportedCommands">
     191              <xs:complexType>
     192                <xs:sequence>
     193                  <xs:element name="Name" maxOccurs="unbounded">
     194                    <xs:annotation>
     195                      <xs:documentation>Following is the possible list of commands
     196                        Select,Insert,Delete,Update,DescribeSchema,ApplySchema,DestroySchema,ActivateSpatialContext,CreateSpatialContext,DestroySpatialContext,GetSpatialContexts,
     197                        CreateMeasureUnit,DestroyMeasureUnit,GetMeasureUnits,SQLCommand,AcquireLock,GetLockInfo,GetLockedObjects,GetLockOwners,ReleaseLock,
     198                        ActivateLongTransaction,CommitLongTransaction,CreateLongTransaction,GetLongTransactions,FreezeLongTransaction,RollbackLongTransaction,
     199                        ActivateLongTransactionCheckpoint,CreateLongTransactionCheckpoint,GetLongTransactionCheckpoints,RollbackLongTransactionCheckpoint,
     200                        ChangeLongTransactionPrivileges,GetLongTransactionPrivileges,ChangeLongTransactionSet,GetLongTransactionsInSet,FirstProviderCommand, DeactivateLongTransaction,
     201                        SelectAggregates, CreateDataStore, DestroyDataStore, ListDataStores
     202                      </xs:documentation>
     203                    </xs:annotation>
     204                    <xs:simpleType>
     205                      <xs:restriction base="xs:string">
     206                        <xs:enumeration value="Select"/>
     207                        <xs:enumeration value="Insert"/>
     208                        <xs:enumeration value="Delete"/>
     209                        <xs:enumeration value="Update"/>
     210                        <xs:enumeration value="DescribeSchema"/>
     211                        <xs:enumeration value="ApplySchema"/>
     212                        <xs:enumeration value="DestroySchema"/>
     213                        <xs:enumeration value="ActivateSpatialContext"/>
     214                        <xs:enumeration value="CreateSpatialContext"/>
     215                        <xs:enumeration value="DestroySpatialContext"/>
     216                        <xs:enumeration value="GetSpatialContexts"/>
     217                        <xs:enumeration value="CreateMeasureUnit"/>
     218                        <xs:enumeration value="DestroyMeasureUnit"/>
     219                        <xs:enumeration value="GetMeasureUnits"/>
     220                        <xs:enumeration value="SQLCommand"/>
     221                        <xs:enumeration value="AcquireLock"/>
     222                        <xs:enumeration value="GetLockInfo"/>
     223                        <xs:enumeration value="GetLockedObjects"/>
     224                        <xs:enumeration value="GetLockOwners"/>
     225                        <xs:enumeration value="ReleaseLock"/>
     226                        <xs:enumeration value="ActivateLongTransaction"/>
     227                        <xs:enumeration value="CommitLongTransaction"/>
     228                        <xs:enumeration value="CreateLongTransaction"/>
     229                        <xs:enumeration value="GetLongTransactions"/>
     230                        <xs:enumeration value="FreezeLongTransaction"/>
     231                        <xs:enumeration value="RollbackLongTransaction"/>
     232                        <xs:enumeration value="ActivateLongTransactionCheckpoint"/>
     233                        <xs:enumeration value="CreateLongTransactionCheckpoint"/>
     234                        <xs:enumeration value="GetLongTransactionCheckpoints"/>
     235                        <xs:enumeration value="RollbackLongTransactionCheckpoint"/>
     236                        <xs:enumeration value="ChangeLongTransactionPrivileges"/>
     237                        <xs:enumeration value="GetLongTransactionPrivileges"/>
     238                        <xs:enumeration value="ChangeLongTransactionSet"/>
     239                        <xs:enumeration value="GetLongTransactionsInSet"/>
     240                        <xs:enumeration value="FirstProviderCommand"/>
     241                        <xs:enumeration value="DeactivateLongTransaction"/>
     242                        <xs:enumeration value="SelectAggregates"/>
     243                        <xs:enumeration value="CreateDataStore"/>
     244                        <xs:enumeration value="DestroyDataStore"/>
     245                        <xs:enumeration value="ListDataStores"/>
     246                      </xs:restriction>
     247                    </xs:simpleType>
     248                  </xs:element>
     249                </xs:sequence>
     250              </xs:complexType>
     251            </xs:element>
     252            <xs:element name="SupportsParameters" type="xs:boolean"/>
     253            <xs:element name="SupportsTimeout" type="xs:boolean"/>
     254            <xs:element name="SupportsSelectExpressions" type="xs:boolean"/>
     255            <xs:element name="SupportsSelectFunctions" type="xs:boolean"/>
     256            <xs:element name="SupportsSelectDistinct" type="xs:boolean"/>
     257            <xs:element name="SupportsSelectOrdering" type="xs:boolean"/>
     258            <xs:element name="SupportsSelectGrouping" type="xs:boolean"/>
     259          </xs:sequence>
     260        </xs:complexType>
     261      </xs:element>
     262      <xs:element name="Filter" minOccurs="0">
     263        <xs:complexType>
     264          <xs:sequence>
     265            <xs:element name="Condition" minOccurs="0">
     266              <xs:complexType>
     267                <xs:sequence>
     268                  <xs:element name="Type" maxOccurs="unbounded">
     269                    <xs:annotation>
     270                      <xs:documentation>List of ConditionType is as follows: Comparison,Like,In,Null,Spatial,Distance</xs:documentation>
     271                    </xs:annotation>
     272                    <xs:simpleType>
     273                      <xs:restriction base="xs:string">
     274                        <xs:enumeration value="Comparison"/>
     275                        <xs:enumeration value="Like"/>
     276                        <xs:enumeration value="In"/>
     277                        <xs:enumeration value="Null"/>
     278                        <xs:enumeration value="Spatial"/>
     279                        <xs:enumeration value="Distance"/>
     280                      </xs:restriction>
     281                    </xs:simpleType>
     282                  </xs:element>
     283                </xs:sequence>
     284              </xs:complexType>
     285            </xs:element>
     286            <xs:element name="Spatial" minOccurs="0">
     287              <xs:complexType>
     288                <xs:sequence>
     289                  <xs:element name="Operation" maxOccurs="unbounded">
     290                    <xs:annotation>
     291                      <xs:documentation>List of spatial operations : Contains,Crosses, Disjoint,Equals, Intersects,Overlaps,Touches,Within, CoveredBy,Inside</xs:documentation>
     292                    </xs:annotation>
     293                    <xs:simpleType>
     294                      <xs:restriction base="xs:string">
     295                        <xs:enumeration value="Contains"/>
     296                        <xs:enumeration value="Crosses"/>
     297                        <xs:enumeration value="Disjoint"/>
     298                        <xs:enumeration value="Equals"/>
     299                        <xs:enumeration value="Intersects"/>
     300                        <xs:enumeration value="Overlaps"/>
     301                        <xs:enumeration value="Touches"/>
     302                        <xs:enumeration value="Within"/>
     303                        <xs:enumeration value="CoveredBy"/>
     304                        <xs:enumeration value="Inside"/>
     305                        <xs:enumeration value="EnvelopeIntersects"/>
     306                      </xs:restriction>
     307                    </xs:simpleType>
     308                  </xs:element>
     309                </xs:sequence>
     310              </xs:complexType>
     311            </xs:element>
     312            <xs:element name="Distance" minOccurs="0">
     313              <xs:complexType>
     314                <xs:sequence>
     315                  <xs:element name="Operation" maxOccurs="unbounded">
     316                    <xs:annotation>
     317                      <xs:documentation>List of distance operations : Beyond, Within</xs:documentation>
     318                    </xs:annotation>
     319                    <xs:simpleType>
     320                      <xs:restriction base="xs:string">
     321                        <xs:enumeration value="Beyond"/>
     322                        <xs:enumeration value="Within"/>
     323                      </xs:restriction>
     324                    </xs:simpleType>
     325                  </xs:element>
     326                </xs:sequence>
     327              </xs:complexType>
     328            </xs:element>
     329            <xs:element name="SupportsGeodesicDistance" type="xs:boolean"/>
     330            <xs:element name="SupportsNonLiteralGeometricOperations" type="xs:boolean"/>
     331          </xs:sequence>
     332        </xs:complexType>
     333      </xs:element>
     334      <xs:element name="Expression" minOccurs="0">
     335        <xs:complexType>
     336          <xs:sequence>
     337            <xs:element name="Type">
     338              <xs:complexType>
     339                <xs:sequence>
     340                  <xs:element name="Name" maxOccurs="unbounded">
     341                    <xs:annotation>
     342                      <xs:documentation>List of Expression types are Basic, Function, Parameter</xs:documentation>
     343                    </xs:annotation>
     344                    <xs:simpleType>
     345                      <xs:restriction base="xs:string">
     346                        <xs:enumeration value="Basic"/>
     347                        <xs:enumeration value="Function"/>
     348                        <xs:enumeration value="Parameter"/>
     349                      </xs:restriction>
     350                    </xs:simpleType>
     351                  </xs:element>
     352                </xs:sequence>
     353              </xs:complexType>
     354            </xs:element>
     355            <xs:element name="FunctionDefinitionList" minOccurs="0">
     356              <xs:complexType>
     357                <xs:sequence>
     358                  <xs:element name="FunctionDefinition" maxOccurs="unbounded">
     359                    <xs:complexType>
     360                      <xs:sequence>
     361                        <xs:element name="Name" type="xs:string"/>
     362                        <xs:element name="Description" type="xs:string" minOccurs="0"/>
     363                        <xs:element name="CategoryType">
     364                          <xs:annotation>
     365                            <xs:documentation>Enum of category types Aggregate, Conversion, Custom, Geometry, Math, Numeric, String, Unspecified </xs:documentation>
     366                          </xs:annotation>
     367                          <xs:simpleType>
     368                            <xs:restriction base="xs:string">
     369                              <xs:enumeration value="Aggregate"/>
     370                              <xs:enumeration value="Conversion"/>
     371                              <xs:enumeration value="Custom"/>
     372                              <xs:enumeration value="Geometry"/>
     373                              <xs:enumeration value="Math"/>
     374                              <xs:enumeration value="Numeric"/>
     375                              <xs:enumeration value="String"/>
     376                              <xs:enumeration value="Unspecified"/>
     377                            </xs:restriction>
     378                          </xs:simpleType>
     379                        </xs:element>
     380                        <xs:element name="SignatureDefinitionCollection" minOccurs="0">
     381                          <xs:complexType>
     382                            <xs:sequence>
     383                              <xs:element name="SignatureDefinition" maxOccurs="unbounded">
     384                                <xs:complexType>
     385                                  <xs:sequence>
     386                                    <xs:element name="PropertyType" minOccurs="0">
     387                                      <xs:annotation>
     388                                        <xs:documentation>Enum of property types  Data, Geometry, Object, Decimal, Raster </xs:documentation>
     389                                      </xs:annotation>
     390                                      <xs:simpleType>
     391                                        <xs:restriction base="xs:string">
     392                                          <xs:enumeration value="Data"/>
     393                                          <xs:enumeration value="Geometry"/>
     394                                          <xs:enumeration value="Object"/>
     395                                          <xs:enumeration value="Association"/>
     396                                          <xs:enumeration value="Raster"/>
     397                                        </xs:restriction>
     398                                      </xs:simpleType>
     399                                    </xs:element>
     400                                    <xs:element name="DataType" minOccurs="0">
     401                                      <xs:annotation>
     402                                        <xs:documentation>Enum of data types  Boolean, Byte, DateTime, Decimal, Double, Int16, Int32, Int64, Single, String, BLOB, CLOB, UniqueID  </xs:documentation>
     403                                      </xs:annotation>
     404                                      <xs:simpleType>
     405                                        <xs:restriction base="xs:string">
     406                                          <xs:enumeration value="Boolean"/>
     407                                          <xs:enumeration value="Byte"/>
     408                                          <xs:enumeration value="DateTime"/>
     409                                          <xs:enumeration value="Decimal"/>
     410                                          <xs:enumeration value="Double"/>
     411                                          <xs:enumeration value="Int16"/>
     412                                          <xs:enumeration value="Int32"/>
     413                                          <xs:enumeration value="Int64"/>
     414                                          <xs:enumeration value="Single"/>
     415                                          <xs:enumeration value="String"/>
     416                                          <xs:enumeration value="BLOB"/>
     417                                          <xs:enumeration value="CLOB"/>
     418                                          <xs:enumeration value="UniqueID"/>
     419                                        </xs:restriction>
     420                                      </xs:simpleType>
     421                                    </xs:element>
     422                                    <xs:element name="ArgumentDefinitionList" minOccurs="0">     
     423                                        <xs:complexType>
     424                                          <xs:sequence>
     425                                            <xs:element name="Name" type="xs:string"/>
     426                                            <xs:element name="Description" type="xs:string" minOccurs="0"/>                                           
     427                                            <xs:element name="ArgumentDefinition" maxOccurs="unbounded">
     428                                <xs:complexType>
     429                                  <xs:sequence>
     430                                    <xs:element name="Name" type="xs:string"/>
     431                                    <xs:element name="Description" type="xs:string" minOccurs="0"/>
     432                                    <xs:element name="PropertyType">
     433                                      <xs:annotation>
     434                                        <xs:documentation>Enum of property types  Data, Geometry, Object, Decimal, Raster </xs:documentation>
     435                                      </xs:annotation>
     436                                      <xs:simpleType>
     437                                        <xs:restriction base="xs:string">
     438                                          <xs:enumeration value="Data"/>
     439                                          <xs:enumeration value="Geometry"/>
     440                                          <xs:enumeration value="Object"/>
     441                                          <xs:enumeration value="Association"/>
     442                                          <xs:enumeration value="Raster"/>
     443                                        </xs:restriction>
     444                                      </xs:simpleType>
     445                                    </xs:element>
     446                                    <xs:element name="DataType" minOccurs="0">
     447                                      <xs:annotation>
     448                                        <xs:documentation>Enum of data types  Boolean, Byte, DateTime, Decimal, Double, Int16, Int32, Int64, Single, String, BLOB, CLOB, UniqueID  </xs:documentation>
     449                                      </xs:annotation>
     450                                      <xs:simpleType>
     451                                        <xs:restriction base="xs:string">
     452                                          <xs:enumeration value="Boolean"/>
     453                                          <xs:enumeration value="Byte"/>
     454                                          <xs:enumeration value="DateTime"/>
     455                                          <xs:enumeration value="Decimal"/>
     456                                          <xs:enumeration value="Double"/>
     457                                          <xs:enumeration value="Int16"/>
     458                                          <xs:enumeration value="Int32"/>
     459                                          <xs:enumeration value="Int64"/>
     460                                          <xs:enumeration value="Single"/>
     461                                          <xs:enumeration value="String"/>
     462                                          <xs:enumeration value="BLOB"/>
     463                                          <xs:enumeration value="CLOB"/>
     464                                          <xs:enumeration value="UniqueID"/>
     465                                        </xs:restriction>
     466                                      </xs:simpleType>
     467                                    </xs:element>
     468                                    <xs:element name="PropertyValueConstraintList" minOccurs="0">
     469                                      <xs:complexType>
     470                                        <xs:sequence>
     471                                          <xs:element name="Value" type="xs:string" maxOccurs="unbounded">
     472                                          </xs:element>
     473                                        </xs:sequence>
     474                                      </xs:complexType>
     475                                    </xs:element>
     476                                  </xs:sequence>
     477                                </xs:complexType>
     478                              </xs:element>
     479                                              <xs:element name="PropertyType">
     480                                              <xs:annotation>
     481                                                <xs:documentation>Enum of property types  Data, Geometry, Object, Decimal, Raster </xs:documentation>
     482                                              </xs:annotation>
     483                                              <xs:simpleType>
     484                                                <xs:restriction base="xs:string">
     485                                                  <xs:enumeration value="Data"/>
     486                                                  <xs:enumeration value="Geometry"/>
     487                                                  <xs:enumeration value="Object"/>
     488                                                  <xs:enumeration value="Association"/>
     489                                                  <xs:enumeration value="Raster"/>
     490                                                </xs:restriction>
     491                                              </xs:simpleType>
     492                                            </xs:element>
     493                                              <xs:element name="DataType" minOccurs="0">
     494                                                <xs:annotation>
     495                                                  <xs:documentation>Enum of data types  Boolean, Byte, DateTime, Decimal, Double, Int16, Int32, Int64, Single, String, BLOB, CLOB, UniqueID  </xs:documentation>
     496                                                </xs:annotation>
     497                                                <xs:simpleType>
     498                                                  <xs:restriction base="xs:string">
     499                                                    <xs:enumeration value="Boolean"/>
     500                                                    <xs:enumeration value="Byte"/>
     501                                                    <xs:enumeration value="DateTime"/>
     502                                                    <xs:enumeration value="Decimal"/>
     503                                                    <xs:enumeration value="Double"/>
     504                                                    <xs:enumeration value="Int16"/>
     505                                                    <xs:enumeration value="Int32"/>
     506                                                    <xs:enumeration value="Int64"/>
     507                                                    <xs:enumeration value="Single"/>
     508                                                    <xs:enumeration value="String"/>
     509                                                    <xs:enumeration value="BLOB"/>
     510                                                    <xs:enumeration value="CLOB"/>
     511                                                    <xs:enumeration value="UniqueID"/>
     512                                                  </xs:restriction>
     513                                                </xs:simpleType>
     514                                            </xs:element>                                           
     515                                          </xs:sequence>
     516                                        </xs:complexType>
     517                                       </xs:element>
     518                                  </xs:sequence> 
     519                                </xs:complexType>
     520                              </xs:element> 
     521                            </xs:sequence>
     522                          </xs:complexType>
     523                        </xs:element>
     524                      </xs:sequence>
     525                    </xs:complexType>
     526                  </xs:element>
     527                </xs:sequence>
     528              </xs:complexType>
     529            </xs:element>
     530          </xs:sequence>
     531        </xs:complexType>
     532      </xs:element>
     533      <xs:element name="Raster">
     534        <xs:complexType>
     535          <xs:sequence>
     536            <xs:element name="SupportsRaster" type="xs:boolean"/>
     537            <xs:element name="SupportsStitching" type="xs:boolean"/>
     538            <xs:element name="SupportsSubsampling" type="xs:boolean"/>
     539          </xs:sequence>
     540        </xs:complexType>
     541      </xs:element>
     542      <xs:element name="Topology" minOccurs="0">
     543        <xs:complexType>
     544          <xs:sequence>
     545            <xs:element name="SupportsTopology" type="xs:boolean"/>
     546            <xs:element name="SupportsTopologicalHierarchy" type="xs:boolean"/>
     547            <xs:element name="BreaksCurveCrossingsAutomatically" type="xs:boolean"/>
     548            <xs:element name="ActivatesTopologyByArea" type="xs:boolean"/>
     549            <xs:element name="ConstrainsFeatureMovements" type="xs:boolean"/>
     550          </xs:sequence>
     551        </xs:complexType>
     552      </xs:element>
     553      <xs:element name="Geometry" minOccurs="0">
     554        <xs:complexType>
     555          <xs:sequence>
     556            <xs:element name="Types">
     557              <xs:complexType>
     558                <xs:sequence>
     559                  <xs:element name="Type" maxOccurs="unbounded">
     560                    <xs:annotation>
     561                      <xs:documentation>Enum of geometry types None, Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon, MultiGeometry, CurveString, CurvePolygon, MultiCurveString, MultiCurvePolygon</xs:documentation>
     562                    </xs:annotation>
     563                    <xs:simpleType>
     564                      <xs:restriction base="xs:string">
     565                        <xs:enumeration value="None"/>
     566                        <xs:enumeration value="Point"/>
     567                        <xs:enumeration value="LineString"/>
     568                        <xs:enumeration value="Polygon"/>
     569                        <xs:enumeration value="MultiPoint"/>
     570                        <xs:enumeration value="MultiLineString"/>
     571                        <xs:enumeration value="MultiPolygon"/>
     572                        <xs:enumeration value="MultiGeometry"/>
     573                        <xs:enumeration value="CurveString"/>
     574                        <xs:enumeration value="CurvePolygon"/>
     575                        <xs:enumeration value="MultiCurveString"/>
     576                        <xs:enumeration value="MultiCurvePolygon"/>
     577                      </xs:restriction>
     578                    </xs:simpleType>
     579                  </xs:element>
     580                </xs:sequence>
     581              </xs:complexType>
     582            </xs:element>
     583            <xs:element name="Components">
     584              <xs:complexType>
     585                <xs:sequence>
     586                  <xs:element name="Type" maxOccurs="unbounded">
     587                    <xs:annotation>
     588                      <xs:documentation>Enum of geometry component types LinearRing, ArcSegment, LinearSegment, CurveRing</xs:documentation>
     589                    </xs:annotation>
     590                    <xs:simpleType>
     591                      <xs:restriction base="xs:string">
     592                        <xs:enumeration value="LinearRing"/>
     593                        <xs:enumeration value="ArcSegment"/>
     594                        <xs:enumeration value="LinearSegment"/>
     595                        <xs:enumeration value="CurveRing"/>
     596                      </xs:restriction>
     597                    </xs:simpleType>
     598                  </xs:element>
     599                </xs:sequence>
     600              </xs:complexType>
     601            </xs:element>
     602            <xs:element name="Dimensionality" type="xs:integer"/>
     603          </xs:sequence>
     604        </xs:complexType>
     605      </xs:element>
     606    </xs:sequence>
     607  </xs:complexType>
     608</xs:schema>
     609 }}}
     610
     611== Implications ==
     612
     613None.
     614
     615== Test Plan ==
     616
     617Verify the new capabilities are returned by the request.
     618
     619
     620== Funding/Resources ==
     621
     622Supplied by Autodesk.
     623