Working%20with%20GML%20Application%20Schemas - PowerPoint PPT Presentation

About This Presentation
Title:

Working%20with%20GML%20Application%20Schemas

Description:

Example of GML extension mechanism: type information in tag name. GML occupies one level of abstraction. ... Client is interested only in content, if available. ... – PowerPoint PPT presentation

Number of Views:33
Avg rating:3.0/5.0
Slides: 24
Provided by: Ala105
Category:

less

Transcript and Presenter's Notes

Title: Working%20with%20GML%20Application%20Schemas


1
Working with GML Application Schemas
Milan Trnini, Galdos Systems, Inc.mtrninic_at_galdo
sinc.com
2
Introduction
  • Purpose of the experiment Analyze whether
    working with GML application schemas is
    hard/easy/feasible.
  • Application schema abstraction what does it
    mean, what is its purpose?
  • Different uses of GML application schema
  • Information captured in GML application schemas.
  • API for working with GML application schemas.

3
GML Application Schemas
  • Intention of GML is to be base for creating
    applications in different domains.
  • This is achieved by GML and XMLSchema
    extensibility mechanisms.
  • Example of GML extension mechanism type
    information in tag name.
  • GML occupies one level of abstraction.
  • Application schema is built on top of it as
    another level.

4
GML Application Schemas
GML Application Schemas
Logistical
Transportation
Utilities
Location Service
Network
GML
Feature
Geometries
Topology
Other types
W3C
Other types
Strings
Numbers
5
Multiple Application Layers
Transportation Services
Route finder
Route
Transportation Primitives and operations
Other
Intersection
Event
Road Segment
GML
Feature
Geometries
Topology
Temporal
W3C
Other types
Strings
Numbers
6
Class Hierarchy
  • Objects from one layer are used to compose or
    create objects in a higher layer.
  • Use XML mechanisms type extension substitution,
    sequencing, choices, etc.
  • Use GML mechanisms collections, associations,
    feature-property model, etc.
  • Objects in different layers have different
    scope/meaning/semantics.

Feature
Road Segment
Intersection
Event
Accident
Route
7
XML and GML Types
GML instance
ltapproadNetworkMembergt ltappRoadSegment/gt
ltgmlcenterLineOfgt ltgmlLineStringgt
ltgmlcoordinatesgt300.003,1234.232 306.234,
1235.090lt/gmlcoordinatesgt
lt/gmlLineStringgt lt/gmlcenterLineOfgt
ltappotherPropertygtlt/appotherPropertygt
lt/appRoadSegmentgt lt/approadNetworkMembergt
8
XML and GML Types
GML application schema
ltxsdelement nameRoadSegment
typeappRoadSegmentType substitutionGroup_Fea
ture/gt ltxsdcomplexType nameRoadSegmentTypegt
ltxsdcomplexContentgt ltxsdextension
basegmlAbstractFeatureType/gt
lt/xsdcomplexContentgt lt/xsdcomplexTypegt
  • We dont care about XMLSchema types.
  • Element declarations are our GML types.

9
GML Types Names
GML instance
ltappqwegt ltappXYZ/gt ltappabcgt
ltappASDgt ltgmlcoordinatesgt300.003,1234.23
2 306.234, 1235.090lt/gmlcoordinatesgt
lt/appASDgt lt/appabcgt ltappotherPropertygt
lt/appotherPropertygt lt/appXYZgt lt/appqwegt
10
GML Types Names
GML application schema
ltxsdelement nameXYZ typeappXYZType
substitutionGroupgml_Feature/gt ltxsdcomplexTy
pe nameXYZTypegt ltxsdcomplexContentgt
ltxsdextension basegmlAbstractFeatureType/gt
lt/xsdcomplexContentgt lt/xsdcomplexTypegt
  • GML types names in themselves do not mean
    anything!!

11
Applications and Schemas
  • What do applications need from the schemas?
  • A piece of semantics is needed in order to know
    what to do with the data. Not all of it.
  • What is semantics? How do we find it? Set of base
    primitives used to compare artifacts and draw
    conclusions about them.
  • Semantics in schemas type hierarchy, model
    (feature property), metadata.

12
Captured knowledge
  • The knowledge exists in the schemas.
  • Different uses and types of the knowledge
  • Information about content or structure of types
  • Information about types semantics type
    hierarchy.
  • Information from the GML model we care about
    this
  • Information from XMLSchema model - concerning
    schema validation

13
Semantics
  • Again what do we need?
  • Understanding of arbitrary schema?
  • Understanding and processing of arbitrary
    features?
  • Understanding always comes down to very simple
    comparisons of strings (or other types).
  • Semantics by metadata same thing.

14
Schema Validator
  • For this purpose all the information from the
    schema is needed, and it has to be interpreted
    correctly according to the XMLSchema
    specification.
  • XML Schema specification is fairly complex.
  • Validating schemas means implementing all details
    from XML Schema Specification (example
    derivation by restriction)
  • Not an easy task.
  • Performance issues are complex (depends on the
    application where validator is used).

15
GML Application Schema Parser (Content Examiner)
  • Easier task than validating.
  • Some assumptions can be made
  • A client application will get a valid data
  • If that is not the case, client can only report
    the error, no need to analyze it according to the
    XMLSchema specification.
  • Client is interested only in content, if
    available.
  • No need to implement the whole specification it
    is ok to assume and hardcode some things.
  • Errors might not be very precise.

16
Uses of GML Application Schema Parser
  • In all standard applications that use GML data
    such as map portrayal applications, geocoders,
    gazetteers, etc.
  • GML data editors that provide content guidance.
  • GML application schema editors that provide
    content guidance.
  • Applications for mapping of different data
    models.
  • Hard to remodel existing schemas.

17
Code Example
Vector getFeatures(Document gmlData) Vector
result NodeList nodes gmlData.getDocumentEl
ement().getChildren() for (int index 0
index lt nodes.getLength() index)
Node property nodes.get(index) boolean
isFeatureMember _schemaParser.isFeatureMember(pr
operty) if (isFeatureMember false)
continue Node value property.getFirstCh
ild() boolean isFeature
_schemaParser.isFeature(value) if
(isFeature true) result.add(value)
return result
boolean isFeature(Node node) return
((getSubstitutionGroup(node) _Feature)
(getBaseType AbstractFeatureType))
18
Multiple Application Layers
ltapproadNetworkMembergt ltappRoadConstruction/gt
ltgmlcenterLineOfgt ltgmlLineStringgt
ltgmlcoordinatesgt300.003,1234.232 306.234,
1235.090lt/gmlcoordinatesgt
lt/gmlLineStringgt lt/gmlcenterLineOfgt
ltappotherPropertygtlt/appotherPropertygt
lt/appRoadConstructiongt lt/approadNetworkMembergt
ltxsdelement nameRoadConstruction
typeRoadConstructionType substitutionGroupRoa
dSegment/gt ltxsdcomplexType nameappRoadConstru
ctionTypegt ltxsdcomplexContentgt
ltxsdextension baseappRoadSegmentType/gt
lt/xsdcomplexContentgt lt/xsdcomplexTypegt
  • This means only little more work for the parser
    complexity is linear!

19
GML Application Schema Parser API
  • Content retrieval
  • getFeatures
  • getGeometry
  • getProperties
  • allowedFeatures
  • allowedProperties
  • allowedGeometries
  • etc.
  • Type functions
  • isFeature
  • isFeatureMember
  • isGeometry
  • isOfType
  • etc .
  • Miscellaneous
  • getCardinality
  • etc.

20
GML Level of Abstraction
  • Work with features, geometries, feature members
    etc.
  • Not concerned about XMLSchema types, elements,
    etc.
  • Use the same paradigm and model with different
    data description languages (RDF, ).

21
Performance
  • Verbosity of XML/GML.
  • Use of existing tools.
  • Schema parser data model new DOM, tables and
    arrays.
  • Solutions overlap with the ones regarding any XML
    processing.
  • Not a bigger issue than processing of instance
    documents (example - processing of Simple
    Xlinks).

22
Summary
  • Extensibility and semantics on the level of the
    application schemas achieved using simple methods
    type extension.
  • Validator needs to perform deep and extensive
    analysis of the schema it has to follow the
    specification which can be (and often is)
    complex.
  • Content examiner needs to follow type hierarchy,
    metadata information etc., which is simple
    comparable to processing instance documents.
  • Physical complexity of schemas is not the same as
    the complexity of XMLSchema specification and
    except for the basics does not mirror it.

23
References
  • XMLSchema specificationhttp//www.w3c.org/TR/xmls
    chema-0/
  • GML 2.1 specificationhttp//www.opengis.net/gml/0
    2-009/GML2-11.html
  • Schema Infosethttp//www.research.ibm.com/XML/sch
    ema/WD-XML-Schema-Infoset-API-Req.htm
  • GML model (specification, papers)
  • GML4Jhttp//gml4j.sourceforge.net
Write a Comment
User Comments (0)
About PowerShow.com