[OSGeo-Discuss] Searching proper schema constructs in layered GML application schema

Raj Singh raj at rajsingh.org
Thu Nov 12 12:32:05 PST 2009


OGC's GML discussion forum is probably the best place to ask this.
http://feature.opengeospatial.org/forumbb/viewforum.php?f=9

Staff monitors the board and tries to make sure posted questions get  
looked at by topic experts within the membership.
---
Raj


On Nov 12, at 6:21 AM, Krzysztof FF wrote:

>
> Hi there,
>
> I'm trying to define GML 3.2.1. based application schema for FM- 
> related
> software.
>
> The concept is to create some intermediate base-level schema common  
> to basic
> software tools (e.g. universal XSLT processing), completed with  
> specific
> application-level schemas presenting actual application structure.
>
>> From "GML Best Practices Guide"
> (http://www.ogcnetwork.net/system/files/ 
> GML_Best_Practices_Guide.pdf) it is
> advised not to use "type" attribute:
>
> quote starts
> If you wish to denote distinct semantic types such as river and  
> road, it is
> INVALID GML to use a type attribute as shown in the following  
> examples.
>
> Example of Invalid GML Using a Type Attribute
>
> <app:GenericFeature gml:id = "p2" type = "Canal">
>  <app:material>water</app:material>
>  <app:age>90</app:age>
>  <gml:centerLineOf> … </app:centerLineOf>
> </app:GenericFeature>
>
> You can "narrow" the type denoted by the feature type name element  
> (<app:
> GenericFeature>) by using qualifying properties, as shown in the  
> following
> example.
>
> <app:GenericFeature gml:id = "p2">
>  <app:type>Canal</app:type>
>  <app:material>water</app:material>
>  <app:age>90</app:age>
>  <gml:centerLineOf> ... </app:centerLineOf>
> </app:GenericFeature>
> quote ends
>
> But from the other hand, from "XML Schema W3C Recommendation"
> (http://www.w3.org/TR/xmlschema-0/#abstract) it results that using  
> abstract
> types makes constructs with "type" attribute perfectly legal:
>
> quote starts
> Declaring a type as abstract simply requires the use of a type  
> derived from
> it (and identified by the xsi:type attribute) in the instance  
> document.
>
> <schema xmlns="http://www.w3.org/2001/XMLSchema"
>           targetNamespace="http://cars.example.com/schema"
>           xmlns:target="http://cars.example.com/schema">
>
>  <complexType name="Vehicle" abstract="true"/>
>
>  <complexType name="Car">
>    <complexContent>
>      <extension base="target:Vehicle"/>
>    </complexContent>
>  </complexType>
>
>  <element name="transport" type="target:Vehicle"/>
> </schema>
>
> The transport element is not abstract, therefore it can appear in  
> instance
> documents. However, because its type definition is abstract, it may  
> never
> appear in an instance document without an  xsi:type attribute that  
> refers to
> a derived type. That means the following is not schema-valid:
>
>  <transport xmlns="http://cars.example.com/schema"/>
>
> because the transport element's type is abstract. However, the  
> following is
> schema-valid:
>
> <transport xmlns="http://cars.example.com/schema"
>           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>           xsi:type="Car"/>
>
> because it uses a non-abstract type that is substitutable for Vehicle.
> quote ends
>
> It results that using Galdos recommendation with <app:type> element is
> somehow artificial and naive, disallowing for application-specific
> specialization of concrete GenericFeatures.
>
> On the other hand, W3C recommended xsi:type attribute is perfectly  
> legal,
> and allows using in the same time generic schema to describe specific
> features.
>
> Of course it requires further generalization by defining generic  
> properties
> for features in base-level schema with their concrete definitions in
> application-level schema.
>
>
> I wonder what is opinion of GML-gurus about proper constructs for  
> layering
> of GML-application schemas.
>
>
> Regards,
>
> Krzysztof
> -- 
> View this message in context: http://n2.nabble.com/Searching-proper-schema-constructs-in-layered-GML-application-schema-tp3992089p3992089.html
> Sent from the OSGeo Discuss mailing list archive at Nabble.com.
> _______________________________________________
> Discuss mailing list
> Discuss at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/discuss




More information about the Discuss mailing list