GML 3.2 AbstractGMLType XSDTypeDefinition is incomplete
-------------------------------------------------------

                 Key: GEOT-3327
                 URL: http://jira.codehaus.org/browse/GEOT-3327
             Project: GeoTools
          Issue Type: Bug
          Components: core xml
    Affects Versions: 2.7-M4
            Reporter: Ben Caradoc-Davies
            Assignee: Justin Deoliveira
            Priority: Critical
         Attachments: AbstractGMLTypeTest.java

The XSDTypeDefinition for GML 3.2 AbstractGMLType is incomplete because 
metaDataProperty has no type definition. (This is the complex type definition 
created dynamically from the schema, not the compiled types in GMLSchema.) This 
is likely caused by its type being hidden in deprecatedTypes.xsd and GML 3.2 
relying on the single-point-of-entry gml.xsd.

One of the changes in GML 3.2 was to put a bunch of definitions in 
deprecatedTypes.xsd. This includes MetaDataPropertyType. This deprecated type 
is used in gmlBase.xsd, in particular, to define AbstractGMLType (via 
StandardObjectProperties). Yes, a deprecated type is used to define the base 
class of just about everything else. The particularly nasty thing about the way 
this was done is that deprecatedTypes.xsd is not imported by gmlBase.xsd. GML 
3.2 is only usable if you import gml.xsd and allow it to import both 
gmlBase.xsd and deprecatedTypes.xsd. Parsing gmlBase.xsd will not work. You can 
see this in Eclipse. I don't think EMF is very happy about this either. I have 
no idea how to fix it.

This failure is blocking app-schema support for GML 3.2.

The attached unit test demonstrates the failure. The GML 3.1 test passes but 
the GML 3.2 test fails. It is also worth noting that the getQName() for 
metaDataProperty prints no namespace prefix because the "element" of this 
XSDNamedComponent is set to null. All the other children have types. 

{code}
Child element declaration types for {http://www.opengis.net/gml}AbstractGMLType 
:
QName: gml:metaDataProperty URI: http://www.opengis.net/gml#metaDataProperty 
Type: org.eclipse.xsd.impl.xsdcomplextypedefinitioni...@1493102 (element: 
[complexType: null]) (name: MetaDataPropertyType, targetNamespace: 
http://www.opengis.net/gml) (derivationMethod: <unset>, final: [], abstract: 
<unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions: [], 
lexicalFinal: null, block: null, mixed: <unset>)
QName: gml:description URI: http://www.opengis.net/gml#description Type: 
org.eclipse.xsd.impl.xsdcomplextypedefinitioni...@30ae41 (element: 
[complexType: null]) (name: StringOrRefType, targetNamespace: 
http://www.opengis.net/gml) (derivationMethod: extension, final: [], abstract: 
<unset>, contentTypeCategory: simple, prohibitedSubstitutions: [], 
lexicalFinal: null, block: null, mixed: <unset>)
QName: gml:name URI: http://www.opengis.net/gml#name Type: 
org.eclipse.xsd.impl.xsdcomplextypedefinitioni...@4204 (element: [complexType: 
null]) (name: CodeType, targetNamespace: http://www.opengis.net/gml) 
(derivationMethod: extension, final: [], abstract: <unset>, 
contentTypeCategory: simple, prohibitedSubstitutions: [], lexicalFinal: null, 
block: null, mixed: <unset>)

Child element declaration types for 
{http://www.opengis.net/gml/3.2}AbstractGMLType :
QName: metaDataProperty URI: http://www.opengis.net/gml/3.2#metaDataProperty 
Type: null <<< FAILURE
QName: gml:description URI: http://www.opengis.net/gml/3.2#description Type: 
org.eclipse.xsd.impl.xsdsimpletypedefinitioni...@68cd79 (element: null) (name: 
StringOrRefType, targetNamespace: http://www.opengis.net/gml/3.2) (variety: 
atomic, final: null, lexicalFinal: null, validFacets: null)
QName: gml:descriptionReference URI: 
http://www.opengis.net/gml/3.2#descriptionReference Type: 
org.eclipse.xsd.impl.xsdcomplextypedefinitioni...@89e2f1 (element: 
[complexType: null]) (name: ReferenceType, targetNamespace: 
http://www.opengis.net/gml/3.2) (derivationMethod: <unset>, final: [], 
abstract: <unset>, contentTypeCategory: empty, prohibitedSubstitutions: [], 
lexicalFinal: null, block: null, mixed: <unset>)
QName: gml:identifier URI: http://www.opengis.net/gml/3.2#identifier Type: 
org.eclipse.xsd.impl.xsdcomplextypedefinitioni...@92668c (element: 
[complexType: null]) (name: CodeWithAuthorityType, targetNamespace: 
http://www.opengis.net/gml/3.2) (derivationMethod: restriction, final: [], 
abstract: <unset>, contentTypeCategory: simple, prohibitedSubstitutions: [], 
lexicalFinal: null, block: null, mixed: <unset>)
QName: gml:name URI: http://www.opengis.net/gml/3.2#name Type: 
org.eclipse.xsd.impl.xsdcomplextypedefinitioni...@18a9fc8 (element: 
[complexType: null]) (name: CodeType, targetNamespace: 
http://www.opengis.net/gml/3.2) (derivationMethod: extension, final: [], 
abstract: <unset>, contentTypeCategory: simple, prohibitedSubstitutions: [], 
lexicalFinal: null, block: null, mixed: <unset>)
{code}

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
Geotools-devel mailing list
Geotools-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to