Hi, I'm trying to use app-schema to create complex feature for INSPIRE Geology theme. In most part it's working OK, but in one case I've got an error and I can't find any information whats wrong. Minimal example in which it can be reproduced is having 3 joined tables: geology_feature: - id - serial - shape - geometry - name - text geologic_event: - id - serial - name- text - geologic_feature - FK to geologic_feature event_process: - event_process - text (uri) - geologic_event - FK to geologic_event There are 1:N relations between them. I've created alignment in HALE Studio to application schema for Geology 4.0 where I'm joinig this tables and mapping attributes. So far so good, exporting transformed data to GML 3.2 works OK. Now I'm trying to export this configuration to GeoServer using app-schema plugin. On feature chaining step I'm setting target type for geology_event to GeologicEvent feature type, and event_process to eventProcess property of GeologicEvent. Then it's showing two workspaces: - ge with GeologicEvent and MappedFeature features - gml with ReferenceType feature On import I've got error in GeoServer: 27 lis 09:28:14 WARN [feature.type] - No top level element found in schemas: { www.opengis.net http://www.opengis.net/gml/3.2}ReferenceType 27 lis 09:28:14 WARN [complex.config] - Error creating app-schema data store for 'gml:ReferenceType', caused by: No top level element found in schemas: { www.opengis.net http://www.opengis.net/gml/3.2}ReferenceType 27 lis 09:28:14 ERROR [geoserver.web] - Error retrieving layers for the specified store java.lang.RuntimeException: Could not list layers for this store, an error occurred retrieving them: java.util.NoSuchElementException: No top level element found in schemas: { www.opengis.net http://www.opengis.net/gml/3.2}ReferenceType I'm not sure but I suspects that it's because eventProcess element is gml:ReferenceType which is not a feature type. But how can I join this tables in appschema mapping to ommit this problem and still got 1:N relation between event_process and geologic_event tables? I've tried to manualy edit mapping files in GeoServer but without success. I've also search for more information about this error (No top level element) but can't find anything helpfull. Tutorials are based on older version of geosciml schemas (2.0 I think) where eventProcess are CGI_TermValue data types and it's working fine. I'm struggeling with this for days without success, so mayby someone have any idea what is wrong, how this can be fixed or where to find more information about this case. Below are my mapping files: GeologyCore.appschema <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns3:AppSchemaDataAccess xmlns:ns2=" www.opengis.net http://www.opengis.net/ogc " xmlns:ns3=" www.geotools.org http://www.geotools.org/app-schema "> <namespaces> <Namespace> <prefix>ge</prefix> <uri> inspire.ec.europa.eu http://inspire.ec.europa.eu/schemas/ge-core/4.0 </uri> </Namespace> <Namespace> <prefix>gml</prefix> <uri> www.opengis.net http://www.opengis.net/gml/3.2 </uri> </Namespace> <Namespace> <prefix>xlink</prefix> <uri> www.w3.org http://www.w3.org/1999/xlink </uri> </Namespace> <Namespace> <prefix>xsi</prefix> <uri> www.w3.org http://www.w3.org/2001/XMLSchema-instance </uri> </Namespace> </namespaces> <includedTypes> <Include xmlns:xsi=" www.w3.org http://www.w3.org/2001/XMLSchema-instance " xmlns:xs=" www.w3.org http://www.w3.org/2001/XMLSchema " xsi:type="xs:string">includedTypes.xml</Include> </includedTypes> <sourceDataStores> <DataStore> <id>dataStore</id> <parameters> <Parameter> <name>host</name> <value>localhost</value> </Parameter> <Parameter> <name>port</name> <value>5432</value> </Parameter> <Parameter> <name>database</name> <value>szkolenie2</value> </Parameter> <Parameter> <name>schema</name> <value>public</value> </Parameter> <Parameter> <name>user</name> <value>postgres</value> </Parameter> <Parameter> <name>passwd</name> <value>postgis</value> </Parameter> <Parameter> <name>Expose primary keys</name> <value>true</value> </Parameter> <Parameter> <name>dbtype</name> <value>postgis</value> </Parameter> </parameters> </DataStore> </sourceDataStores> <targetTypes> <FeatureType> <schemaUri>_schemas/GeologyCore.xsd</schemaUri> </FeatureType> </targetTypes> <typeMappings> <FeatureTypeMapping> <sourceDataStore>dataStore</sourceDataStore> <sourceType>geologic_feature</sourceType> <targetElement>ge:MappedFeature</targetElement> <attributeMappings> <AttributeMapping> <targetAttribute>ge:specification/ge:GeologicUnit/ge:geologicHistory</targetAttribute> <sourceExpression> <OCQL>id</OCQL> <linkElement>ge:GeologicEvent</linkElement> <linkField>FEATURE_LINK[1]</linkField> </sourceExpression> <isMultiple>true</isMultiple> </AttributeMapping> <AttributeMapping> <targetAttribute>ge:MappedFeature</targetAttribute> <idExpression> <OCQL>id</OCQL> </idExpression> </AttributeMapping> <AttributeMapping> <targetAttribute>ge:shape</targetAttribute> <sourceExpression> <OCQL>shape</OCQL> </sourceExpression> </AttributeMapping> <AttributeMapping> <targetAttribute>ge:specification/ge:GeologicUnit/ge:name</targetAttribute> <sourceExpression> <OCQL>name</OCQL> </sourceExpression> <ClientProperty> <name>xsi:nil</name> <value>if_then_else(isNull(name), 'true', Expression.NIL)</value> </ClientProperty> </AttributeMapping> </attributeMappings> </FeatureTypeMapping> <FeatureTypeMapping> <sourceDataStore>dataStore</sourceDataStore> <sourceType>geologic_event</sourceType> <targetElement>ge:GeologicEvent</targetElement> <attributeMappings> <AttributeMapping> <targetAttribute>FEATURE_LINK[1]</targetAttribute> <sourceExpression> <OCQL>geologic_feature</OCQL> </sourceExpression> </AttributeMapping> <AttributeMapping> <targetAttribute>ge:eventProcess</targetAttribute> <sourceExpression> <OCQL>id</OCQL> <linkElement>gml:ReferenceType</linkElement> <linkField>FEATURE_LINK[1]</linkField> </sourceExpression> <isMultiple>true</isMultiple> </AttributeMapping> <AttributeMapping> <targetAttribute>ge:GeologicEvent</targetAttribute> <idExpression> <OCQL>id</OCQL> </idExpression> </AttributeMapping> <AttributeMapping> <targetAttribute>ge:name</targetAttribute> <sourceExpression> <OCQL>name</OCQL> </sourceExpression> <ClientProperty> <name>xsi:nil</name> <value>if_then_else(isNull(name), 'true', Expression.NIL)</value> </ClientProperty> </AttributeMapping> </attributeMappings> </FeatureTypeMapping> </typeMappings> </ns3:AppSchemaDataAccess> includedTypes.xml <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns3:AppSchemaDataAccess xmlns:ns2=" www.opengis.net http://www.opengis.net/ogc " xmlns:ns3=" www.geotools.org http://www.geotools.org/app-schema "> <namespaces> <Namespace> <prefix>ge</prefix> <uri> inspire.ec.europa.eu http://inspire.ec.europa.eu/schemas/ge-core/4.0 </uri> </Namespace> <Namespace> <prefix>gml</prefix> <uri> www.opengis.net http://www.opengis.net/gml/3.2 </uri> </Namespace> <Namespace> <prefix>xlink</prefix> <uri> www.w3.org http://www.w3.org/1999/xlink </uri> </Namespace> <Namespace> <prefix>xsi</prefix> <uri> www.w3.org http://www.w3.org/2001/XMLSchema-instance </uri> </Namespace> </namespaces> <includedTypes/> <sourceDataStores> <DataStore> <id>dataStore</id> <parameters> <Parameter> <name>host</name> <value>localhost</value> </Parameter> <Parameter> <name>port</name> <value>5432</value> </Parameter> <Parameter> <name>database</name> <value>szkolenie2</value> </Parameter> <Parameter> <name>schema</name> <value>public</value> </Parameter> <Parameter> <name>user</name> <value>postgres</value> </Parameter> <Parameter> <name>passwd</name> <value>postgis</value> </Parameter> <Parameter> <name>Expose primary keys</name> <value>true</value> </Parameter> <Parameter> <name>dbtype</name> <value>postgis</value> </Parameter> </parameters> </DataStore> </sourceDataStores> <targetTypes> <FeatureType> <schemaUri>_schemas/GeologyCore.xsd</schemaUri> </FeatureType> </targetTypes> <typeMappings> <FeatureTypeMapping> <sourceDataStore>dataStore</sourceDataStore> <sourceType>event_process</sourceType> <targetElement>gml:ReferenceType</targetElement> <attributeMappings> <AttributeMapping> <targetAttribute>FEATURE_LINK[1]</targetAttribute> <sourceExpression> <OCQL>geologic_event</OCQL> </sourceExpression> </AttributeMapping> <AttributeMapping> <targetAttribute>ge:specification/ge:GeologicUnit/ge:geologicHistory/ge:GeologicEvent/ge:eventProcess</targetAttribute> <ClientProperty> <name>xlink:href</name> <value>event_process</value> </ClientProperty> </AttributeMapping> </attributeMappings> </FeatureTypeMapping> </typeMappings> </ns3:AppSchemaDataAccess> Thanks a lot for any clue Piotr
_______________________________________________ Geoserver-users mailing list
Please make sure you read the following two resources before posting to this list: - Earning your support instead of buying it, but Ian Turton: http://www.ianturton.com/talks/foss4g.html#/ - The GeoServer user list posting guidelines: http://geoserver.org/comm/userlist-guidelines.html If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer Geoserver-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geoserver-users