MapGuide RFC 37 - New Provider Capabilities schema
This page contains an change request (RFC) for the MapGuide Open Source project. More MapGuide RFCs can be found on the RFCs page.
Status
| RFC Template Version | 1.0 |
| Submission Date | Sept 21, 2007 |
| Last Modified | Jack Lee Sat Jul 5 18:17:17 2008 |
| Author | Jack Lee |
| RFC Status | adopted |
| Implementation Status | under development |
| Proposed Milestone | 2.0 |
| Assigned PSC guide(s) | Tom |
| Voting History | Sept 21, 2007 |
| +1 | Tom, Jason, Paul, Bruce, Andy, Bob |
| +0 | |
| -0 | |
| -1 | |
| Abstain | Haris |
Overview
This change adds a new version of the Provider Capabilities schema. In order to get a response that matches the new schema, you must use Version=2.0.0 in the GETPROVIDERCAPABILITIES request.
Motivation
Some provider capabilities is missing from the current schema.
Proposed Solution
In order to get a response that matches the new schema described below, you must use Version=2.0.0 in the GETPROVIDERCAPABILITIES request.
Add a new file, FdoProviderCapabilities-1.1.0.xsd to the Common/Schema folder. This file contains the following new capabilities:
- SupportsAutoIdGeneration(Schema Capability)
- SupportsDataStoreScopeUniqueIdGeneration(Schema Capability)
- SupportedAutoGeneratedTypes(Schema Capability)
- SupportsSchemaModification(Schema Capability)
- SupportsSelectExpressions(Command Capability)
- SupportsSelectFunctions(Command Capability)
- SupportsSelectDistinct(Command Capability)
- SupportsSelectOrdering(Command Capability)
- SupportsSelectGrouping(Command Capability)
- CategoryType(Expression Capability)
- SignatureDefinitionCollection(Expression Capability) instead of ArgumentDefinitionList
The new Provider Capabilities schema is shown below.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="FeatureProviderCapabilities" type="FdoProviderCapabilities"/>
<xs:complexType name="FdoProviderCapabilities">
<xs:sequence>
<xs:element name="Provider">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Name" type="xs:string" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Connection" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="ThreadCapability">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="SingleThreaded"/>
<xs:enumeration value="PerConnectionThreaded"/>
<xs:enumeration value="PerCommandThreaded"/>
<xs:enumeration value="MultiThreaded"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="SpatialContextExtent">
<xs:annotation>
<xs:documentation>Static or Dynamic. Could be enumeration here.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="Type" maxOccurs="unbounded">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Static"/>
<xs:enumeration value="Dynamic"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="SupportsLocking" type="xs:boolean"/>
<xs:element name="SupportsTimeout" type="xs:boolean"/>
<xs:element name="SupportsTransactions" type="xs:boolean"/>
<xs:element name="SupportsLongTransactions" type="xs:boolean"/>
<xs:element name="SupportsSQL" type="xs:boolean"/>
<xs:element name="SupportsConfiguration" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Schema" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Class">
<xs:complexType>
<xs:sequence>
<xs:element name="Type" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Class or FeatureClass enum value here</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Class"/>
<xs:enumeration value="FeatureClass"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Data">
<xs:complexType>
<xs:sequence>
<xs:element name="Type" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Enum of data types Boolean, Byte, DateTime, Decimal, Double, Int16, Int32, Int64, Single, String, BLOB, CLOB, UniqueID </xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Boolean"/>
<xs:enumeration value="Byte"/>
<xs:enumeration value="DateTime"/>
<xs:enumeration value="Decimal"/>
<xs:enumeration value="Double"/>
<xs:enumeration value="Int16"/>
<xs:enumeration value="Int32"/>
<xs:enumeration value="Int64"/>
<xs:enumeration value="Single"/>
<xs:enumeration value="String"/>
<xs:enumeration value="BLOB"/>
<xs:enumeration value="CLOB"/>
<xs:enumeration value="UniqueID"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="SupportsInheritance" type="xs:boolean"/>
<xs:element name="SupportsMultipleSchemas" type="xs:boolean"/>
<xs:element name="SupportsObjectProperties" type="xs:boolean"/>
<xs:element name="SupportsAssociationProperties" type="xs:boolean"/>
<xs:element name="SupportsSchemaOverrides" type="xs:boolean"/>
<xs:element name="SupportsNetworkModel" type="xs:boolean"/>
<xs:element name="SupportsAutoIdGeneration" type="xs:boolean"/>
<xs:element name="SupportsDataStoreScopeUniqueIdGeneration" type="xs:boolean"/>
<xs:element name="SupportedAutoGeneratedTypes" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Type" minOccurs="0">
<xs:annotation>
<xs:documentation>Enum of data types Boolean, Byte, DateTime, Decimal, Double, Int16, Int32, Int64, Single, String, BLOB, CLOB, UniqueID </xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Boolean"/>
<xs:enumeration value="Byte"/>
<xs:enumeration value="DateTime"/>
<xs:enumeration value="Decimal"/>
<xs:enumeration value="Double"/>
<xs:enumeration value="Int16"/>
<xs:enumeration value="Int32"/>
<xs:enumeration value="Int64"/>
<xs:enumeration value="Single"/>
<xs:enumeration value="String"/>
<xs:enumeration value="BLOB"/>
<xs:enumeration value="CLOB"/>
<xs:enumeration value="UniqueID"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="SupportsSchemaModification" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Command" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="SupportedCommands">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Following is the possible list of commands
Select,Insert,Delete,Update,DescribeSchema,DescribeSchemaMapping, ApplySchema,DestroySchema,ActivateSpatialContext,CreateSpatialContext,DestroySpatialContext,GetSpatialContexts,
CreateMeasureUnit,DestroyMeasureUnit,GetMeasureUnits,SQLCommand,AcquireLock,GetLockInfo,GetLockedObjects,GetLockOwners,ReleaseLock,
ActivateLongTransaction,DeactivateLongTransaction,CommitLongTransaction,CreateLongTransaction,GetLongTransactions,FreezeLongTransaction,RollbackLongTransaction,
ActivateLongTransactionCheckpoint,CreateLongTransactionCheckpoint,GetLongTransactionCheckpoints,RollbackLongTransactionCheckpoint,
ChangeLongTransactionPrivileges,GetLongTransactionPrivileges,ChangeLongTransactionSet,GetLongTransactionsInSet,NetworkShortestPath,NetworkAllPaths,
NetworkReachableNodes,FirstProviderCommand,NetworkNearestNeighbors,NetworkWithinCost,NetworkTSP,ActivateTopologyArea,DeactivateTopologyArea,
ActivateTopologyInCommandResult,DeactivateTopologyInCommandResults,SelectAggregates,CreateDataStore,DestroyDataStore,ListDataStores,FirstProviderCommand
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Select"/>
<xs:enumeration value="Insert"/>
<xs:enumeration value="Delete"/>
<xs:enumeration value="Update"/>
<xs:enumeration value="DescribeSchema"/>
<xs:enumeration value="DescribeSchemaMapping"/>
<xs:enumeration value="ApplySchema"/>
<xs:enumeration value="DestroySchema"/>
<xs:enumeration value="ActivateSpatialContext"/>
<xs:enumeration value="CreateSpatialContext"/>
<xs:enumeration value="DestroySpatialContext"/>
<xs:enumeration value="GetSpatialContexts"/>
<xs:enumeration value="CreateMeasureUnit"/>
<xs:enumeration value="DestroyMeasureUnit"/>
<xs:enumeration value="GetMeasureUnits"/>
<xs:enumeration value="SQLCommand"/>
<xs:enumeration value="AcquireLock"/>
<xs:enumeration value="GetLockInfo"/>
<xs:enumeration value="GetLockedObjects"/>
<xs:enumeration value="GetLockOwners"/>
<xs:enumeration value="ReleaseLock"/>
<xs:enumeration value="ActivateLongTransaction"/>
<xs:enumeration value="DeactivateLongTransaction"/>
<xs:enumeration value="CommitLongTransaction"/>
<xs:enumeration value="CreateLongTransaction"/>
<xs:enumeration value="GetLongTransactions"/>
<xs:enumeration value="FreezeLongTransaction"/>
<xs:enumeration value="RollbackLongTransaction"/>
<xs:enumeration value="ActivateLongTransactionCheckpoint"/>
<xs:enumeration value="CreateLongTransactionCheckpoint"/>
<xs:enumeration value="GetLongTransactionCheckpoints"/>
<xs:enumeration value="RollbackLongTransactionCheckpoint"/>
<xs:enumeration value="ChangeLongTransactionPrivileges"/>
<xs:enumeration value="GetLongTransactionPrivileges"/>
<xs:enumeration value="ChangeLongTransactionSet"/>
<xs:enumeration value="GetLongTransactionsInSet"/>
<xs:enumeration value="NetworkShortestPath"/>
<xs:enumeration value="NetworkAllPaths"/>
<xs:enumeration value="NetworkReachableNodes"/>
<xs:enumeration value="NetworkReachingNodes"/>
<xs:enumeration value="NetworkNearestNeighbors"/>
<xs:enumeration value="NetworkWithinCost"/>
<xs:enumeration value="NetworkTSP"/>
<xs:enumeration value="ActivateTopologyArea"/>
<xs:enumeration value="DeactivateTopologyArea"/>
<xs:enumeration value="ActivateTopologyInCommandResult"/>
<xs:enumeration value="DeactivateTopologyInCommandResults"/>
<xs:enumeration value="SelectAggregates"/>
<xs:enumeration value="CreateDataStore"/>
<xs:enumeration value="DestroyDataStore"/>
<xs:enumeration value="ListDataStores"/>
<xs:enumeration value="FirstProviderCommand"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="SupportsParameters" type="xs:boolean"/>
<xs:element name="SupportsTimeout" type="xs:boolean"/>
<xs:element name="SupportsSelectExpressions" type="xs:boolean"/>
<xs:element name="SupportsSelectFunctions" type="xs:boolean"/>
<xs:element name="SupportsSelectDistinct" type="xs:boolean"/>
<xs:element name="SupportsSelectOrdering" type="xs:boolean"/>
<xs:element name="SupportsSelectGrouping" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Filter" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Condition" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Type" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>List of ConditionType is as follows: Comparison,Like,In,Null,Spatial,Distance</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Comparison"/>
<xs:enumeration value="Like"/>
<xs:enumeration value="In"/>
<xs:enumeration value="Null"/>
<xs:enumeration value="Spatial"/>
<xs:enumeration value="Distance"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Spatial" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Operation" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>List of spatial operations : Contains,Crosses, Disjoint,Equals, Intersects,Overlaps,Touches,Within, CoveredBy,Inside</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Contains"/>
<xs:enumeration value="Crosses"/>
<xs:enumeration value="Disjoint"/>
<xs:enumeration value="Equals"/>
<xs:enumeration value="Intersects"/>
<xs:enumeration value="Overlaps"/>
<xs:enumeration value="Touches"/>
<xs:enumeration value="Within"/>
<xs:enumeration value="CoveredBy"/>
<xs:enumeration value="Inside"/>
<xs:enumeration value="EnvelopeIntersects"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Distance" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Operation" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>List of distance operations : Beyond, Within</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Beyond"/>
<xs:enumeration value="Within"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="SupportsGeodesicDistance" type="xs:boolean"/>
<xs:element name="SupportsNonLiteralGeometricOperations" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Expression" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Type">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>List of Expression types are Basic, Function, Parameter</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Basic"/>
<xs:enumeration value="Function"/>
<xs:enumeration value="Parameter"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="FunctionDefinitionList" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="FunctionDefinition" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string"/>
<xs:element name="Description" type="xs:string" minOccurs="0"/>
<xs:element name="CategoryType">
<xs:annotation>
<xs:documentation>Enum of category types Aggregate, Conversion, Custom, Date, Geometry, Math, Numeric, String, Unspecified </xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Aggregate"/>
<xs:enumeration value="Conversion"/>
<xs:enumeration value="Custom"/>
<xs:enumeration value="Date"/>
<xs:enumeration value="Geometry"/>
<xs:enumeration value="Math"/>
<xs:enumeration value="Numeric"/>
<xs:enumeration value="String"/>
<xs:enumeration value="Unspecified"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="IsAggregate" type="xs:boolean"/>
<xs:element name="SignatureDefinitionCollection" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="SignatureDefinition" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="PropertyType" minOccurs="0">
<xs:annotation>
<xs:documentation>Enum of property types Data, Geometry, Object, Decimal, Raster </xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Data"/>
<xs:enumeration value="Geometry"/>
<xs:enumeration value="Object"/>
<xs:enumeration value="Association"/>
<xs:enumeration value="Raster"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="DataType" minOccurs="0">
<xs:annotation>
<xs:documentation>Enum of data types Boolean, Byte, DateTime, Decimal, Double, Int16, Int32, Int64, Single, String, BLOB, CLOB, UniqueID </xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Boolean"/>
<xs:enumeration value="Byte"/>
<xs:enumeration value="DateTime"/>
<xs:enumeration value="Decimal"/>
<xs:enumeration value="Double"/>
<xs:enumeration value="Int16"/>
<xs:enumeration value="Int32"/>
<xs:enumeration value="Int64"/>
<xs:enumeration value="Single"/>
<xs:enumeration value="String"/>
<xs:enumeration value="BLOB"/>
<xs:enumeration value="CLOB"/>
<xs:enumeration value="UniqueID"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ArgumentDefinitionList" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string"/>
<xs:element name="Description" type="xs:string" minOccurs="0"/>
<xs:element name="ArgumentDefinition" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string"/>
<xs:element name="Description" type="xs:string" minOccurs="0"/>
<xs:element name="PropertyType">
<xs:annotation>
<xs:documentation>Enum of property types Data, Geometry, Object, Decimal, Raster </xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Data"/>
<xs:enumeration value="Geometry"/>
<xs:enumeration value="Object"/>
<xs:enumeration value="Association"/>
<xs:enumeration value="Raster"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="DataType" minOccurs="0">
<xs:annotation>
<xs:documentation>Enum of data types Boolean, Byte, DateTime, Decimal, Double, Int16, Int32, Int64, Single, String, BLOB, CLOB, UniqueID </xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Boolean"/>
<xs:enumeration value="Byte"/>
<xs:enumeration value="DateTime"/>
<xs:enumeration value="Decimal"/>
<xs:enumeration value="Double"/>
<xs:enumeration value="Int16"/>
<xs:enumeration value="Int32"/>
<xs:enumeration value="Int64"/>
<xs:enumeration value="Single"/>
<xs:enumeration value="String"/>
<xs:enumeration value="BLOB"/>
<xs:enumeration value="CLOB"/>
<xs:enumeration value="UniqueID"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="PropertyValueConstraintList" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Value" type="xs:string" maxOccurs="unbounded">
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="PropertyType">
<xs:annotation>
<xs:documentation>Enum of property types Data, Geometry, Object, Decimal, Raster </xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Data"/>
<xs:enumeration value="Geometry"/>
<xs:enumeration value="Object"/>
<xs:enumeration value="Association"/>
<xs:enumeration value="Raster"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="DataType" minOccurs="0">
<xs:annotation>
<xs:documentation>Enum of data types Boolean, Byte, DateTime, Decimal, Double, Int16, Int32, Int64, Single, String, BLOB, CLOB, UniqueID </xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Boolean"/>
<xs:enumeration value="Byte"/>
<xs:enumeration value="DateTime"/>
<xs:enumeration value="Decimal"/>
<xs:enumeration value="Double"/>
<xs:enumeration value="Int16"/>
<xs:enumeration value="Int32"/>
<xs:enumeration value="Int64"/>
<xs:enumeration value="Single"/>
<xs:enumeration value="String"/>
<xs:enumeration value="BLOB"/>
<xs:enumeration value="CLOB"/>
<xs:enumeration value="UniqueID"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Raster">
<xs:complexType>
<xs:sequence>
<xs:element name="SupportsRaster" type="xs:boolean"/>
<xs:element name="SupportsStitching" type="xs:boolean"/>
<xs:element name="SupportsSubsampling" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Topology" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="SupportsTopology" type="xs:boolean"/>
<xs:element name="SupportsTopologicalHierarchy" type="xs:boolean"/>
<xs:element name="BreaksCurveCrossingsAutomatically" type="xs:boolean"/>
<xs:element name="ActivatesTopologyByArea" type="xs:boolean"/>
<xs:element name="ConstrainsFeatureMovements" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Geometry" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Types">
<xs:complexType>
<xs:sequence>
<xs:element name="Type" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Enum of geometry types None, Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon, MultiGeometry, CurveString, CurvePolygon, MultiCurveString, MultiCurvePolygon</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="None"/>
<xs:enumeration value="Point"/>
<xs:enumeration value="LineString"/>
<xs:enumeration value="Polygon"/>
<xs:enumeration value="MultiPoint"/>
<xs:enumeration value="MultiLineString"/>
<xs:enumeration value="MultiPolygon"/>
<xs:enumeration value="MultiGeometry"/>
<xs:enumeration value="CurveString"/>
<xs:enumeration value="CurvePolygon"/>
<xs:enumeration value="MultiCurveString"/>
<xs:enumeration value="MultiCurvePolygon"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Components">
<xs:complexType>
<xs:sequence>
<xs:element name="Type" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Enum of geometry component types LinearRing, ArcSegment, LinearSegment, CurveRing</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="LinearRing"/>
<xs:enumeration value="ArcSegment"/>
<xs:enumeration value="LinearSegment"/>
<xs:enumeration value="CurveRing"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Dimensionality" type="xs:integer"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:schema>
Implications
None.
Test Plan
Verify the new capabilities are returned by the request.
Funding/Resources
Supplied by Autodesk.
