FileGDB API for linux学习系列之五,获取对象的定义
来源:互联网 发布:古代士兵装备知乎 编辑:程序博客网 时间:2024/04/28 22:47
FileGDB API for linux 提供了获取对象定义的函数,但是获取出来的结果都是以XML形式存在,对于表,FeatureClass,FeatureDataset等对象已经足够了,
以下的例子是获得各种对象定义的例子程序,包括Table, FeatureClass, FeatureDataset等等对象的定义。
#include #include #include <string>#include #include #include
运行结果如下:
The geodatabase has been opened.the table TSType definition: xml version="1.0" encoding="UTF-8"?><DataElement xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:esri="http://www.esri.com/schemas/ArcGIS/10.0" xsi:type="esri:DETable"> <CatalogPath>/TSTypeCatalogPath> <Name>TSTypeName> <ChildrenExpanded>falseChildrenExpanded> <DatasetType>esriDTTableDatasetType> <DSID>18DSID> <Versioned>falseVersioned> <CanVersion>falseCanVersion> <ConfigurationKeyword/> <HasOID>trueHasOID> <OIDFieldName>OBJECTIDOIDFieldName> <Fields xsi:type="esri:Fields"> <FieldArray xsi:type="esri:ArrayOfField"> <Field xsi:type="esri:Field"> <Name>OBJECTIDName> <Type>esriFieldTypeOIDType> <IsNullable>falseIsNullable> <Length>4Length> <Precision>0Precision> <Scale>0Scale> <Required>trueRequired> <Editable>falseEditable> <AliasName>OBJECTIDAliasName> <ModelName>OBJECTIDModelName> Field> <Field xsi:type="esri:Field"> <Name>TSTypeIDName> <Type>esriFieldTypeIntegerType> <IsNullable>trueIsNullable> <Length>4Length> <Precision>0Precision> <Scale>0Scale> <AliasName>TSTypeIDAliasName> <ModelName>TSTypeIDModelName> Field> <Field xsi:type="esri:Field"> <Name>VariableName> <Type>esriFieldTypeStringType> <IsNullable>trueIsNullable> <Length>255Length> <Precision>0Precision> <Scale>0Scale> <AliasName>VariableAliasName> <ModelName>VariableModelName> Field> <Field xsi:type="esri:Field"> <Name>UnitsName> <Type>esriFieldTypeStringType> <IsNullable>trueIsNullable> <Length>20Length> <Precision>0Precision> <Scale>0Scale> <AliasName>UnitsAliasName> <ModelName>UnitsModelName> Field> <Field xsi:type="esri:Field"> <Name>IsRegularName> <Type>esriFieldTypeIntegerType> <IsNullable>trueIsNullable> <Length>4Length> <Precision>0Precision> <Scale>0Scale> <AliasName>IsRegularAliasName> <ModelName>IsRegularModelName> <Domain> <DomainName>AHBooleanDomainName> <FieldType>esriFieldTypeIntegerFieldType> <MergePolicy>esriMPTDefaultValueMergePolicy> <SplitPolicy>esriSPTDefaultValueSplitPolicy> <Description/> <Owner/> <CodedValues xsi:type="esri:ArrayOfCodedValue"> <CodedValue xsi:type="esri:CodedValue"> <Name>TrueName> <Code xsi:type="xs:int">1Code> CodedValue> <CodedValue xsi:type="esri:CodedValue"> <Name>FalseName> <Code xsi:type="xs:int">0Code> CodedValue> CodedValues> Domain> Field> <Field xsi:type="esri:Field"> <Name>TSIntervalName> <Type>esriFieldTypeIntegerType> <IsNullable>trueIsNullable> <Length>4Length> <Precision>0Precision> <Scale>0Scale> <AliasName>TSIntervalAliasName> <ModelName>TSIntervalModelName> <Domain> <DomainName>TSIntervalTypeDomainName> <FieldType>esriFieldTypeIntegerFieldType> <MergePolicy>esriMPTDefaultValueMergePolicy> <SplitPolicy>esriSPTDefaultValueSplitPolicy> <Description/> <Owner/> <CodedValues xsi:type="esri:ArrayOfCodedValue"> <CodedValue xsi:type="esri:CodedValue"> <Name>1MinuteName> <Code xsi:type="xs:int">1Code> CodedValue> <CodedValue xsi:type="esri:CodedValue"> <Name>2MinuteName> <Code xsi:type="xs:int">2Code> CodedValue> <CodedValue xsi:type="esri:CodedValue"> <Name>3MinuteName> <Code xsi:type="xs:int">3Code> CodedValue> <CodedValue xsi:type="esri:CodedValue"> <Name>4MinuteName> <Code xsi:type="xs:int">4Code> CodedValue> <CodedValue xsi:type="esri:CodedValue"> <Name>5MinuteName> <Code xsi:type="xs:int">5Code> CodedValue> <CodedValue xsi:type="esri:CodedValue"> <Name>10MinuteName> <Code xsi:type="xs:int">6Code> CodedValue> <CodedValue xsi:type="esri:CodedValue"> <Name>15MinuteName> <Code xsi:type="xs:int">7Code> CodedValue> <CodedValue xsi:type="esri:CodedValue"> <Name>20MinuteName> <Code xsi:type="xs:int">8Code> CodedValue> <CodedValue xsi:type="esri:CodedValue"> <Name>30MinuteName> <Code xsi:type="xs:int">9Code> CodedValue> <CodedValue xsi:type="esri:CodedValue"> <Name>1HourName> <Code xsi:type="xs:int">10Code> CodedValue> <CodedValue xsi:type="esri:CodedValue"> <Name>2HourName> <Code xsi:type="xs:int">11Code> CodedValue> <CodedValue xsi:type="esri:CodedValue"> <Name>3HourName> <Code xsi:type="xs:int">12Code> CodedValue> <CodedValue xsi:type="esri:CodedValue"> <Name>4HourName> <Code xsi:type="xs:int">13Code> CodedValue> <CodedValue xsi:type="esri:CodedValue"> <Name>6HourName> <Code xsi:type="xs:int">14Code> CodedValue> <CodedValue xsi:type="esri:CodedValue"> <Name>8HourName> <Code xsi:type="xs:int">15Code> CodedValue> <CodedValue xsi:type="esri:CodedValue"> <Name>12HourName> <Code xsi:type="xs:int">16Code> CodedValue> <CodedValue xsi:type="esri:CodedValue"> <Name>1DayName> <Code xsi:type="xs:int">17Code> CodedValue> <CodedValue xsi:type="esri:CodedValue"> <Name>1WeekName> <Code xsi:type="xs:int">18Code> CodedValue> <CodedValue xsi:type="esri:CodedValue"> <Name>1MonthName> <Code xsi:type="xs:int">19Code> CodedValue> <CodedValue xsi:type="esri:CodedValue"> <Name>1YearName> <Code xsi:type="xs:int">20Code> CodedValue> <CodedValue xsi:type="esri:CodedValue"> <Name>OtherName> <Code xsi:type="xs:int">99Code> CodedValue> CodedValues> Domain> Field> <Field xsi:type="esri:Field"> <Name>DataTypeName> <Type>esriFieldTypeIntegerType> <IsNullable>trueIsNullable> <Length>4Length> <Precision>0Precision> <Scale>0Scale> <AliasName>DataTypeAliasName> <ModelName>DataTypeModelName> <Domain> <DomainName>TSDataTypeDomainName> <FieldType>esriFieldTypeIntegerFieldType> <MergePolicy>esriMPTDefaultValueMergePolicy> <SplitPolicy>esriSPTDefaultValueSplitPolicy> <Description/> <Owner/> <CodedValues xsi:type="esri:ArrayOfCodedValue"> <CodedValue xsi:type="esri:CodedValue"> <Name>InstantaneousName> <Code xsi:type="xs:int">1Code> CodedValue> <CodedValue xsi:type="esri:CodedValue"> <Name>CumulativeName> <Code xsi:type="xs:int">2Code> CodedValue> <CodedValue xsi:type="esri:CodedValue"> <Name>IncrementalName> <Code xsi:type="xs:int">3Code> CodedValue> <CodedValue xsi:type="esri:CodedValue"> <Name>AverageName> <Code xsi:type="xs:int">4Code> CodedValue> <CodedValue xsi:type="esri:CodedValue"> <Name>MaximumName> <Code xsi:type="xs:int">5Code> CodedValue> <CodedValue xsi:type="esri:CodedValue"> <Name>MinimumName> <Code xsi:type="xs:int">6Code> CodedValue> CodedValues> Domain> Field> <Field xsi:type="esri:Field"> <Name>OriginName> <Type>esriFieldTypeIntegerType> <IsNullable>trueIsNullable> <Length>4Length> <Precision>0Precision> <Scale>0Scale> <AliasName>OriginAliasName> <ModelName>OriginModelName> <Domain> <DomainName>TSOriginsDomainName> <FieldType>esriFieldTypeIntegerFieldType> <MergePolicy>esriMPTDefaultValueMergePolicy> <SplitPolicy>esriSPTDefaultValueSplitPolicy> <Description/> <Owner/> <CodedValues xsi:type="esri:ArrayOfCodedValue"> <CodedValue xsi:type="esri:CodedValue"> <Name>RecordedName> <Code xsi:type="xs:int">1Code> CodedValue> <CodedValue xsi:type="esri:CodedValue"> <Name>GeneratedName> <Code xsi:type="xs:int">2Code> CodedValue> CodedValues> Domain> Field> FieldArray> Fields> <CLSID>{7A566981-C114-11D2-8A28-006097AFF44E}CLSID> <EXTCLSID/> <RelationshipClassNames xsi:type="esri:Names"/> <AliasName/> <ModelName>TSTypeModelName> <HasGlobalID>falseHasGlobalID> <GlobalIDFieldName/> <RasterFieldName/> <ExtensionProperties xsi:type="esri:PropertySet"> <PropertyArray xsi:type="esri:ArrayOfPropertySetProperty"/> ExtensionProperties> <ControllerMemberships xsi:type="esri:ArrayOfControllerMembership"/> <Indexes xsi:type="esri:Indexes"> <IndexArray xsi:type="esri:ArrayOfIndex"> <Index xsi:type="esri:Index"> <Name>FDO_OBJECTIDName> <IsUnique>trueIsUnique> <IsAscending>trueIsAscending> <FieldArray xsi:type="esri:ArrayOfField"> <Field xsi:type="esri:Field"> <Name>OBJECTIDName> <Type>esriFieldTypeOIDType> <IsNullable>falseIsNullable> <Length>4Length> <Precision>0Precision> <Scale>0Scale> <Required>trueRequired> <Editable>falseEditable> <AliasName>OBJECTIDAliasName> <ModelName>OBJECTIDModelName> Field> FieldArray> Index> <Index xsi:type="esri:Index"> <Name>G18TSTypeIDName> <IsUnique>falseIsUnique> <IsAscending>trueIsAscending> <FieldArray xsi:type="esri:ArrayOfField"> <Field xsi:type="esri:Field"> <Name>TSTypeIDName> <Type>esriFieldTypeIntegerType> <IsNullable>trueIsNullable> <Length>4Length> <Precision>0Precision> <Scale>0Scale> <AliasName>TSTypeIDAliasName> <ModelName>TSTypeIDModelName> Field> FieldArray> Index> IndexArray> Indexes>DataElement>the featuredataset Drainage definition is: <DEFeatureDataset xsi:type='typens:DEFeatureDataset' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/10.0'><CatalogPath>/DrainageCatalogPath><Name>DrainageName><ChildrenExpanded>falseChildrenExpanded><DatasetType>esriDTFeatureDatasetDatasetType><DSID>19DSID><Versioned>falseVersioned><CanVersion>falseCanVersion><ConfigurationKeyword>ConfigurationKeyword><Extent xsi:nil='true'/><SpatialReference xsi:type='typens:ProjectedCoordinateSystem'><WKT>PROJCS["Clarke_1866_Albers",GEOGCS["GCS_Clarke_1866",DATUM["D_Clarke_1866",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-96.0],PARAMETER["Standard_Parallel_1",29.5],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",23.0],UNIT["Meter",1.0]]WKT><XOrigin>-16901099.99967755