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 Timestamp |
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.