From: <pva...@us...> - 2008-12-18 16:43:55
|
Revision: 1844 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1844&view=rev Author: pvalsecc Date: 2008-12-18 16:43:33 +0000 (Thu, 18 Dec 2008) Log Message: ----------- Integrated the modifs done from r1 to r290 Modified Paths: -------------- sandbox/geocat.ch/trunk/bin/jetty.xml sandbox/geocat.ch/trunk/bin/jetty.xml_with_geoserver sandbox/geocat.ch/trunk/bin/start-geonetwork.sh sandbox/geocat.ch/trunk/build.xml sandbox/geocat.ch/trunk/docs/build-docbook.xml sandbox/geocat.ch/trunk/docs/build.xml sandbox/geocat.ch/trunk/docs/changes.txt sandbox/geocat.ch/trunk/docs/docbook/gn_manual/Manual.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual/admin_basic_configuration.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual/admin_gast.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual/admin_harvesting.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual/images/addGroup.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual/qsg_administration_features.xml sandbox/geocat.ch/trunk/gast/data/gui.xml sandbox/geocat.ch/trunk/gast/setup/database.druid sandbox/geocat.ch/trunk/gast/setup/db/CategoriesDes.ddf sandbox/geocat.ch/trunk/gast/setup/db/GroupsDes.ddf sandbox/geocat.ch/trunk/gast/setup/db/IsoLanguages.ddf sandbox/geocat.ch/trunk/gast/setup/db/IsoLanguagesDes.ddf sandbox/geocat.ch/trunk/gast/setup/db/Languages.ddf sandbox/geocat.ch/trunk/gast/setup/db/OperationsDes.ddf sandbox/geocat.ch/trunk/gast/setup/db/RegionsDes.ddf sandbox/geocat.ch/trunk/gast/setup/db/Settings.ddf sandbox/geocat.ch/trunk/gast/setup/sql/create-db-mckoi.sql sandbox/geocat.ch/trunk/gast/setup/sql/create-db-mysql.sql sandbox/geocat.ch/trunk/gast/setup/sql/create-db-oracle.sql sandbox/geocat.ch/trunk/gast/setup/sql/create-db-postgres.sql sandbox/geocat.ch/trunk/installer/build.xml sandbox/geocat.ch/trunk/installer/installer-config-win-jre.xml sandbox/geocat.ch/trunk/installer/installer-config.xml sandbox/geocat.ch/trunk/installer/launch4j/macosx/head/consolehead.o sandbox/geocat.ch/trunk/installer/launch4j/macosx/head/guihead.o sandbox/geocat.ch/trunk/installer/launch4j/macosx/head/head.o sandbox/geocat.ch/trunk/schematrons/allSchtrnRules.sch sandbox/geocat.ch/trunk/schematrons/schematron-report-geonetwork-xml.xsl sandbox/geocat.ch/trunk/schematrons/schematron-report.xsl sandbox/geocat.ch/trunk/schematrons/schematron.xsl sandbox/geocat.ch/trunk/schematrons/schematron_xml.xsl sandbox/geocat.ch/trunk/src/org/fao/gast/Gast.java sandbox/geocat.ch/trunk/src/org/fao/gast/boot/Util.java sandbox/geocat.ch/trunk/src/org/fao/gast/gui/GuiBuilder.java sandbox/geocat.ch/trunk/src/org/fao/gast/gui/MainFrame.java sandbox/geocat.ch/trunk/src/org/fao/gast/gui/dialogs/AccountPanel.java sandbox/geocat.ch/trunk/src/org/fao/gast/gui/dialogs/ConfigDialog.java sandbox/geocat.ch/trunk/src/org/fao/gast/gui/dialogs/ServerPanel.java sandbox/geocat.ch/trunk/src/org/fao/gast/gui/panels/config/dbms/EmbeddedPanel.java sandbox/geocat.ch/trunk/src/org/fao/gast/gui/panels/config/dbms/GenericPanel.java sandbox/geocat.ch/trunk/src/org/fao/gast/gui/panels/config/dbms/MainPanel.java sandbox/geocat.ch/trunk/src/org/fao/gast/gui/panels/config/dbms/MySQLPanel.java sandbox/geocat.ch/trunk/src/org/fao/gast/gui/panels/config/dbms/OraclePanel.java sandbox/geocat.ch/trunk/src/org/fao/gast/gui/panels/config/dbms/PostgresPanel.java sandbox/geocat.ch/trunk/src/org/fao/gast/gui/panels/config/jetty/MainPanel.java sandbox/geocat.ch/trunk/src/org/fao/gast/gui/panels/config/siteid/MainPanel.java sandbox/geocat.ch/trunk/src/org/fao/gast/gui/panels/database/sample/MainPanel.java sandbox/geocat.ch/trunk/src/org/fao/gast/gui/panels/database/sample/Worker.java sandbox/geocat.ch/trunk/src/org/fao/gast/gui/panels/database/setup/MainPanel.java sandbox/geocat.ch/trunk/src/org/fao/gast/gui/panels/database/setup/Worker.java sandbox/geocat.ch/trunk/src/org/fao/gast/gui/panels/manag/conversion/MainPanel.java sandbox/geocat.ch/trunk/src/org/fao/gast/gui/panels/manag/conversion/Worker.java sandbox/geocat.ch/trunk/src/org/fao/gast/gui/panels/manag/mdsync/MainPanel.java sandbox/geocat.ch/trunk/src/org/fao/gast/gui/panels/manag/mefexport/MainPanel.java sandbox/geocat.ch/trunk/src/org/fao/gast/gui/panels/manag/mefexport/SearchPanel.java sandbox/geocat.ch/trunk/src/org/fao/gast/gui/panels/manag/mefexport/Worker.java sandbox/geocat.ch/trunk/src/org/fao/gast/gui/panels/manag/mefimport/MainPanel.java sandbox/geocat.ch/trunk/src/org/fao/gast/gui/panels/manag/mefimport/Worker.java sandbox/geocat.ch/trunk/src/org/fao/gast/gui/panels/migration/oldinst/MainPanel.java sandbox/geocat.ch/trunk/src/org/fao/gast/gui/panels/migration/oldinst/UserDialog.java sandbox/geocat.ch/trunk/src/org/fao/gast/gui/panels/migration/oldinst/Worker.java sandbox/geocat.ch/trunk/src/org/fao/gast/lib/DatabaseLib.java sandbox/geocat.ch/trunk/src/org/fao/gast/lib/EmbeddedSCLib.java sandbox/geocat.ch/trunk/src/org/fao/gast/lib/GuiLib.java sandbox/geocat.ch/trunk/src/org/fao/gast/lib/MefLib.java sandbox/geocat.ch/trunk/src/org/fao/geonet/GeonetContext.java sandbox/geocat.ch/trunk/src/org/fao/geonet/Geonetwork.java sandbox/geocat.ch/trunk/src/org/fao/geonet/constants/Geonet.java sandbox/geocat.ch/trunk/src/org/fao/geonet/constants/Params.java sandbox/geocat.ch/trunk/src/org/fao/geonet/csw/common/Csw.java sandbox/geocat.ch/trunk/src/org/fao/geonet/csw/common/ResultType.java sandbox/geocat.ch/trunk/src/org/fao/geonet/guiservices/metadata/GetLatestUpdated.java sandbox/geocat.ch/trunk/src/org/fao/geonet/guiservices/metadata/GetRandom.java sandbox/geocat.ch/trunk/src/org/fao/geonet/guiservices/search/GetDefaults.java sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/AccessManager.java sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/DataManager.java sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/EditLib.java sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/XmlSerializer.java sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/csw/CatalogDispatcher.java sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/csw/services/GetRecords.java sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/csw/services/getrecords/CatalogSearcher.java sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/csw/services/getrecords/FieldMapper.java sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/csw/services/getrecords/SearchController.java sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/harvest/harvester/ogcwxs/Harvester.java sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/oaipmh/Lib.java sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/schema/MetadataSchema.java sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/schema/SchemaLoader.java sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/search/KeywordsSearcher.java sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/search/LuceneSearcher.java sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/search/SearchManager.java sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/search/UnusedSearcher.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/main/Search.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/main/XmlSearch.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/metadata/EditUtils.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/metadata/GetEditableData.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/metadata/Show.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/metadata/Update.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/relations/Get.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/resources/Remove.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/schema/Info.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/thesaurus/Add.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/thesaurus/AddElement.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/thesaurus/Delete.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/thesaurus/DeleteElement.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/thesaurus/Download.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/thesaurus/EditElement.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/thesaurus/EditUtils.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/thesaurus/GetKeywords.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/thesaurus/GetNarrowerBroader.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/thesaurus/List.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/thesaurus/UpdateElement.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/thesaurus/Upload.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/user/InfoUpdate.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/user/List.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/user/Update.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/util/MainUtil.java sandbox/geocat.ch/trunk/src/org/wfp/vam/intermap/kernel/TempFiles.java sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config-export.xml sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config-metadata.xml sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config.xml sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/db/db.conf sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/lib/xercesImpl-2.7.1.jar sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/log4j.cfg sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/server.prop sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/web.xml sandbox/geocat.ch/trunk/web/geonetwork/geonetwork.css sandbox/geocat.ch/trunk/web/geonetwork/index.html sandbox/geocat.ch/trunk/web/geonetwork/scripts/editor/tooltip.js sandbox/geocat.ch/trunk/web/geonetwork/scripts/geonetwork.js sandbox/geocat.ch/trunk/web/geonetwork/scripts/gn_search.js sandbox/geocat.ch/trunk/web/geonetwork/xml/csw/filter-to-lucene.xsl sandbox/geocat.ch/trunk/web/geonetwork/xml/csw/schemas/dublin-core/ogc-full.xsl sandbox/geocat.ch/trunk/web/geonetwork/xml/csw/schemas/fgdc-std/ogc-full.xsl sandbox/geocat.ch/trunk/web/geonetwork/xml/csw/schemas/iso19115/ogc-full.xsl sandbox/geocat.ch/trunk/web/geonetwork/xml/csw/schemas/iso19139/ogc-brief.xsl sandbox/geocat.ch/trunk/web/geonetwork/xml/csw/schemas/iso19139/ogc-full.xsl sandbox/geocat.ch/trunk/web/geonetwork/xml/csw/schemas/iso19139/ogc-summary.xsl sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/dublin-core/index-fields.xsl sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/fgdc-std/index-fields.xsl sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19115/index-fields.xsl sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139/index-fields.xsl sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139/schema-suggestions.xml sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139/schematron.xsl sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139/schematron_xml.xsl sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139/update-fixed-info.xsl sandbox/geocat.ch/trunk/web/geonetwork/xml/search/lucene.xsl sandbox/geocat.ch/trunk/web/geonetwork/xml/user-profiles.xml sandbox/geocat.ch/trunk/web/geonetwork/xsl/admin.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/banner.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/OGCWMCtoISO19139/OGCWMC-to-ISO19139.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/OGCWMCtoISO19139/identification.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/OGCWMCtoISO19139/resp-party.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/OGCWxSGetCapabilitiesto19119/OGCWxSGetCapabilities-to-19119.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/OGCWxSGetCapabilitiesto19119/OGCWxSGetCapabilitiesLayer-to-19139.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/OGCWxSGetCapabilitiesto19119/identification.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/OGCWxSGetCapabilitiesto19119/ref-system.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/OGCWxSGetCapabilitiesto19119/resp-party.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/export/xml_iso19139.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/kml.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/main-page.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/metadata-edit.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/metadata-iso19139.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/metadata-show-embedded.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/metadata-show.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/metadata-utils.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/metadata.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/search-results-xhtml.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/searchform_advanced.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/searchform_simple_template.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/thesaurus-util.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/user-update.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/utils.xsl sandbox/geocat.ch/trunk/web/geoserver/data/catalog.xml sandbox/geocat.ch/trunk/web/geoserver/data/coverages/BlueMarble_world/info.xml sandbox/geocat.ch/trunk/web/geoserver/data/featureTypes/country_boundaries_gboundaries/info.xml sandbox/geocat.ch/trunk/web/geoserver/data/featureTypes/country_boundaries_gboundaries/schema.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/AddressGap.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/AddressOverlap.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/AngleSize.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/Attribute.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/Domain.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/Equality.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/FIDUniqueness.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/Gazetteer.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/GeometryContainsGeometry.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/GeometryCrossesGeometry.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/GeometryDisjointGeometry.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/GeometryIntersectsGeometry.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/GeometryOverlapsGeometry.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/GeometryRelateGeometry.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/GeometryTouchesGeometry.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/GeometryWithinGeometry.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/IsValidGeometry.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/LineCoversLineEnd.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/LineCoversPoint.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/LineEndPointCoversPoint.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/LineFeatureCoversLine.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/LineNotEnteringPolygon.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/LineNotOverlappingLine.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/LineNotSelfIntersection.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/LineNotSelfOverLapping.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/LineSinglePart.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/LineWithoutDangles.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/LineWithoutPseudoNode.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/LinesDoNotIntersect.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/LinesNodeIntersect.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/NameExists.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/NameInList.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/NullZero.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/PointInsidePolygon.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/PolygonBoundaryCoversLine.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/PolygonBoundaryCoversPoint.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/PolygonCoversFeaturePolygon.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/PolygonCoversLine.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/PolygonCoversPoint.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/PolygonCoversPolygon.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/PolygonCoversPolygonBoundary.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/PolygonGapDetection.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/PolygonNotOverlappingLine.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/PolygonNotOverlappingPolygon.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/Range.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/SQL.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/SingleValue.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/StarNode.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/UniqueFID.xml sandbox/geocat.ch/trunk/web/geoserver/data/plugIns/Uniquity.xml sandbox/geocat.ch/trunk/web/geoserver/data/services.xml sandbox/geocat.ch/trunk/web/intermap/WEB-INF/config.xml sandbox/geocat.ch/trunk/web/intermap/WEB-INF/lib/jeeves.jar Added Paths: ----------- sandbox/geocat.ch/trunk/bin/Gast Setup.launch sandbox/geocat.ch/trunk/bin/Gast sampleData.launch sandbox/geocat.ch/trunk/bin/Gast.launch sandbox/geocat.ch/trunk/bin/Jetty.launch sandbox/geocat.ch/trunk/copy.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual/admin_localization.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual/images/windows_start_menu.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/ sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/Manual_deu.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/admin_basic_configuration.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/admin_gast.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/admin_harvesting.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/admin_import_export_tools.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/admin_import_facilities.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/admin_metadata_ownership.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/admin_thesaurus.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/apdx_faq.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/apdx_foss4g_systems.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/apdx_glossary_of_metadata_fields_description.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/apdx_iso_topic_categories.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/ sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/AddUser.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/Admin.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/Categories.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/GeoNetwork_opensource_logo.jpg sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/GroupManag.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/Home_page_s.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/ISOCategory.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/ISOCategory2.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/ISOCategory3.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/Ident_Info_1.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/InsertUserInfo.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/Key_Const_Spatype.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/OSGeo_logo.jpg sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/PoC_Maint.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/RefSystem.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/addGroup.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/admin/ sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/admin/-where.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/admin/gast-main.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/admin/gast-mef-export.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/admin/gast-mef-import.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/admin/gast-options.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/admin/web-batchimport-options.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/admin/web-batchimport-where.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/admin/web-config-options.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/admin/web-config-where.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/admin/web-harvesting-add.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/admin/web-harvesting-csw.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/admin/web-harvesting-gn.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/admin/web-harvesting-list.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/admin/web-harvesting-oaipmh.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/admin/web-harvesting-ogc.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/admin/web-harvesting-webdav.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/admin/web-harvesting-where.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/admin/web-localization-where.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/admin/web-localization.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/admin/web-ownership-options.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/admin/web-ownership-where.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/administration_panel.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/advancedView.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/advanced_search1.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/advanced_search_button.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/advanced_search_morerest.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/advanced_search_what.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/advanced_search_when.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/advanced_search_where.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/categoriesManag.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/dataQuality.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/distrInfo.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/download.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/geobox.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/icons/ sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/icons/button_ok.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/icons/calendar.gif sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/icons/clear_left.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/icons/clock.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/icons/exec.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/icons/fileclose.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/icons/important.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/icons/launch.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/icons/reload.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/icons/stop.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/install_packages.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/install_script.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/installer.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/interactive_map.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/login.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/mainSections.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/metadata.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/metadataCreation.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/multipleElement.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/privilegesButton.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/privilegesSetting1.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/producingoss-cover-small.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/scale.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/search_button.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/search_output1.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/search_output2.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/selectGroup.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/switchViews.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/temp_extent.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/thesaurus/ sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/thesaurus/thesaurus-Admin.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/thesaurus/thesaurus-EditKeywords.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/thesaurus/thesaurus-KeywordDesc.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/thesaurus/thesaurus-KeywordSearch.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/thesaurus/thesaurus-SearchInterface.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/thesaurus/thesaurus-SearchKeywordAutocomp.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/thesaurus/thesaurus-upload.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/thumButton.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/thumbManag.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/thumbManag2.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/thumbnail.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/uploadData.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/what.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/where1.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/where2.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/xmlImporTool.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/xmlImporTool2.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/images/xmlView1.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/preface.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/qsg_adding_new_data_and_information.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/qsg_administration_features.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/qsg_geographic_management_system_for_all.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/qsg_getting_started.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/qsg_installing.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/qsg_metadata_theoretical_concepts.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/qsg_viewing_and_analyzing_the_data.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/server_ref_basic_operations.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/server_ref_file_formats.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/server_ref_implementation_guidelines.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/server_ref_setting_internal_structures.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_deu/server_ref_xml_services.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/ sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/Manual_fra.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/admin_basic_configuration.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/admin_gast.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/admin_harvesting.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/admin_import_export_tools.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/admin_import_facilities.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/admin_localization.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/admin_metadata_ownership.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/admin_thesaurus.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/apdx_faq.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/apdx_foss4g_systems.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/apdx_glossary_of_metadata_fields_description.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/apdx_iso_topic_categories.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/ sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/AddUser.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/Admin.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/Categories.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/GeoNetwork_opensource_logo.jpg sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/GroupManag.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/Home_page_s.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/ISOCategory.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/ISOCategory2.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/ISOCategory3.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/Ident_Info_1.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/InsertUserInfo.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/Key_Const_Spatype.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/OSGeo_logo.jpg sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/PoC_Maint.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/RefSystem.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/addGroup.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/admin/ sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/admin/-where.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/admin/gast-main.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/admin/gast-mef-export.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/admin/gast-mef-import.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/admin/gast-options.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/admin/web-batchimport-options.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/admin/web-batchimport-where.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/admin/web-config-options.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/admin/web-config-where.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/admin/web-harvesting-add.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/admin/web-harvesting-csw.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/admin/web-harvesting-gn.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/admin/web-harvesting-list.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/admin/web-harvesting-oaipmh.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/admin/web-harvesting-ogc.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/admin/web-harvesting-webdav.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/admin/web-harvesting-where.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/admin/web-localization-where.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/admin/web-localization.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/admin/web-ownership-options.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/admin/web-ownership-where.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/administration_panel.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/advancedView.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/advanced_search1.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/advanced_search_button.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/advanced_search_morerest.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/advanced_search_what.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/advanced_search_when.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/advanced_search_where.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/categoriesManag.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/dataQuality.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/distrInfo.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/download.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/geobox.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/icons/ sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/icons/button_ok.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/icons/calendar.gif sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/icons/clear_left.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/icons/clock.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/icons/exec.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/icons/fileclose.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/icons/important.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/icons/launch.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/icons/reload.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/icons/stop.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/install_packages.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/install_script.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/installer.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/interactive_map.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/login.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/mainSections.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/metadata.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/metadataCreation.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/multipleElement.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/privilegesButton.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/privilegesSetting1.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/producingoss-cover-small.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/scale.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/search_button.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/search_output1.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/search_output2.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/selectGroup.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/switchViews.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/temp_extent.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/thesaurus/ sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/thesaurus/thesaurus-Admin.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/thesaurus/thesaurus-EditKeywords.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/thesaurus/thesaurus-KeywordDesc.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/thesaurus/thesaurus-KeywordSearch.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/thesaurus/thesaurus-SearchInterface.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/thesaurus/thesaurus-SearchKeywordAutocomp.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/thesaurus/thesaurus-upload.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/thumButton.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/thumbManag.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/thumbManag2.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/thumbnail.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/uploadData.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/what.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/where1.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/where2.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/windows_start_menu.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/xmlImporTool.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/xmlImporTool2.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/images/xmlView1.png sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/preface.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/qsg_adding_new_data_and_information.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/qsg_administration_features.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/qsg_geographic_management_system_for_all.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/qsg_getting_started.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/qsg_installing.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/qsg_metadata_theoretical_concepts.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/qsg_viewing_and_analyzing_the_data.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/server_ref_basic_operations.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/server_ref_file_formats.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/server_ref_implementation_guidelines.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/server_ref_setting_internal_structures.xml sandbox/geocat.ch/trunk/docs/docbook/gn_manual_fra/server_ref_xml_services.xml sandbox/geocat.ch/trunk/docs/license_deu.html sandbox/geocat.ch/trunk/docs/license_fra.html sandbox/geocat.ch/trunk/docs/readme_deu.html sandbox/geocat.ch/trunk/docs/readme_fra.html sandbox/geocat.ch/trunk/gast/data/gui.properties sandbox/geocat.ch/trunk/gast/data/gui_de.properties sandbox/geocat.ch/trunk/gast/data/gui_fr.properties sandbox/geocat.ch/trunk/gast/migration/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/.project sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/businessProcess/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/businessProcess/bin/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/code/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/code/routines/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/code/routines/bin/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/code/routines/system/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/code/routines/system/DataOperation_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/code/routines/system/DataOperation_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/code/routines/system/Mathematical_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/code/routines/system/Mathematical_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/code/routines/system/Numeric_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/code/routines/system/Numeric_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/code/routines/system/Relational_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/code/routines/system/Relational_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/code/routines/system/StringHandling_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/code/routines/system/StringHandling_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/code/routines/system/TalendDataGenerator_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/code/routines/system/TalendDataGenerator_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/code/routines/system/TalendDate_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/code/routines/system/TalendDate_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/code/routines/system/TalendString_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/code/routines/system/TalendString_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/code/snippets/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/code/snippets/bin/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/configuration/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/configuration/ExpressionBuilder/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/context/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/context/bin/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/context/geocat_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/context/geocat_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/documentations/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/documentations/bin/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/images/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/images/_TYMiwLSGEd2S_-mXYur_zA-tMap_1-PREVIEW.bmp sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/images/_TYMiwLSGEd2S_-mXYur_zA-tMap_2-PREVIEW.bmp sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/images/_TYMiwLSGEd2S_-mXYur_zA-tMap_3-PREVIEW.bmp sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/images/_lbIt0MH6Ed2LcdBlHBKK7g-tMap_1-PREVIEW.bmp sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/images/_lbIt0MH6Ed2LcdBlHBKK7g-tMap_2-PREVIEW.bmp sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/images/job_outlines/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/images/job_outlines/Copy_of_labels_fra_19139_0.1.png sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/images/job_outlines/ddmap_0.1.jpg sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/images/job_outlines/ddmap_0.1.png sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/images/job_outlines/getDDinfo_0.1.png sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/images/job_outlines/getElementWhichNeedContext_0.1.png sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/images/job_outlines/labels_fra_19139_0.1.png sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/images/job_outlines/labels_fra_19139_che_0.1.png sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/images/joblet_outlines/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/joblets/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/joblets/bin/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/metadata/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/metadata/LDAPSchema/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/metadata/LDAPSchema/bin/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/metadata/SalesforceSchema/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/metadata/SalesforceSchema/bin/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/metadata/WSDLSchema/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/metadata/WSDLSchema/bin/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/metadata/connections/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/metadata/connections/bin/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/metadata/fileDelimited/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/metadata/fileDelimited/bin/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/metadata/fileExcel/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/metadata/fileExcel/bin/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/metadata/fileExcel/nokis_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/metadata/fileExcel/nokis_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/metadata/fileLdif/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/metadata/fileLdif/bin/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/metadata/filePositional/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/metadata/filePositional/bin/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/metadata/fileRegex/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/metadata/fileRegex/bin/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/metadata/fileXml/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/metadata/fileXml/bin/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/metadata/fileXml/dd_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/metadata/fileXml/dd_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/metadata/fileXml/helpers.xml_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/metadata/fileXml/helpers.xml_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/metadata/fileXml/labels.xml_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/metadata/fileXml/labels.xml_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/metadata/genericSchema/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/metadata/genericSchema/bin/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/metadata/sapconnections/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/metadata/sapconnections/bin/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/process/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/process/bin/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/process/ddmap_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/process/ddmap_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/process/getDDinfo_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/process/getDDinfo_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/process/getElementWhichNeedContext_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/process/getElementWhichNeedContext_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/process/labels_deu_19139_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/process/labels_deu_19139_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/process/labels_fra_19139_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/process/labels_fra_19139_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/process/labels_fra_19139_che_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/process/labels_fra_19139_che_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/process/labels_frache_19139_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/process/labels_frache_19139_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/process/nokis_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/process/nokis_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Generic/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Generic/UserDefined/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Generic/system/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Generic/system/Aggregate_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Generic/system/Aggregate_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Generic/system/Commit_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Generic/system/Commit_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Generic/system/DropSourceTable_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Generic/system/DropSourceTable_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Generic/system/DropTargetTable_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Generic/system/DropTargetTable_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Generic/system/FilterColumns_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Generic/system/FilterColumns_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Generic/system/FilterRow_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Generic/system/FilterRow_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Generic/system/Rollback_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Generic/system/Rollback_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/MySQL/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/MySQL/UserDefined/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/MySQL/system/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/MySQL/system/MySQLAggregate_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/MySQL/system/MySQLAggregate_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/MySQL/system/MySQLCreateSourceTable_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/MySQL/system/MySQLCreateSourceTable_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/MySQL/system/MySQLCreateTargetTable_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/MySQL/system/MySQLCreateTargetTable_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/MySQL/system/MySQLDropSourceTable_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/MySQL/system/MySQLDropSourceTable_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/MySQL/system/MySQLDropTargetTable_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/MySQL/system/MySQLDropTargetTable_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/MySQL/system/MySQLFilterColumns_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/MySQL/system/MySQLFilterColumns_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/MySQL/system/MySQLFilterRow_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/MySQL/system/MySQLFilterRow_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Oracle/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Oracle/UserDefined/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Oracle/system/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Oracle/system/OracleAggregate_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Oracle/system/OracleAggregate_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Oracle/system/OracleCreateSourceTable_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Oracle/system/OracleCreateSourceTable_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Oracle/system/OracleCreateTargetTable_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Oracle/system/OracleCreateTargetTable_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Oracle/system/OracleDropSourceTable_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Oracle/system/OracleDropSourceTable_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Oracle/system/OracleDropTargetTable_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Oracle/system/OracleDropTargetTable_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Oracle/system/OracleFilterColumns_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Oracle/system/OracleFilterColumns_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Oracle/system/OracleFilterRow_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Oracle/system/OracleFilterRow_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Teradata/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Teradata/UserDefined/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Teradata/system/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Teradata/system/TeradataAggregate_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Teradata/system/TeradataAggregate_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Teradata/system/TeradataColumnList_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Teradata/system/TeradataColumnList_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Teradata/system/TeradataCreateSourceTable_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Teradata/system/TeradataCreateSourceTable_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Teradata/system/TeradataCreateTargetTable_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Teradata/system/TeradataCreateTargetTable_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Teradata/system/TeradataDropSourceTable_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Teradata/system/TeradataDropSourceTable_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Teradata/system/TeradataDropTargetTable_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Teradata/system/TeradataDropTargetTable_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Teradata/system/TeradataFilterColumns_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Teradata/system/TeradataFilterColumns_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Teradata/system/TeradataFilterRow_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Teradata/system/TeradataFilterRow_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Teradata/system/TeradataTableList_0.1.item sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/Teradata/system/TeradataTableList_0.1.properties sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/sqlPatterns/bin/ sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/talend.project sandbox/geocat.ch/trunk/gast/migration/CHTOPO_GEOCAT2/temp/ sandbox/geocat.ch/trunk/gast/migration/README sandbox/geocat.ch/trunk/gast/migration/ddmapping/ sandbox/geocat.ch/trunk/gast/migration/ddmapping/ElementsWhichNeedContext.txt sandbox/geocat.ch/trunk/gast/migration/ddmapping/input/ sandbox/geocat.ch/trunk/gast/migration/ddmapping/input/GM03_Uebersetzung_final.xls sandbox/geocat.ch/trunk/gast/migration/ddmapping/input/geocat_codelist_20060105.xml sandbox/geocat.ch/trunk/gast/migration/ddmapping/input/geocat_datadict_20060105.xml sandbox/geocat.ch/trunk/gast/setup/db/Formats.ddf sandbox/geocat.ch/trunk/gast/setup/templates/iso19139.che/ sandbox/geocat.ch/trunk/installer/packsLang.xml sandbox/geocat.ch/trunk/installer/packsLang.xml_deu sandbox/geocat.ch/trunk/installer/packsLang.xml_fra sandbox/geocat.ch/trunk/jeeves/ sandbox/geocat.ch/trunk/jeeves/build.xml sandbox/geocat.ch/trunk/jeeves/config/ sandbox/geocat.ch/trunk/jeeves/config/log4j.cfg sandbox/geocat.ch/trunk/jeeves/docs/ sandbox/geocat.ch/trunk/jeeves/docs/changes.txt sandbox/geocat.ch/trunk/jeeves/docs/jeeves.doc sandbox/geocat.ch/trunk/jeeves/lib/ sandbox/geocat.ch/trunk/jeeves/lib/avalon-framework-4.2.0.jar sandbox/geocat.ch/trunk/jeeves/lib/batik-all-1.6.jar sandbox/geocat.ch/trunk/jeeves/lib/commons-fileupload-1.2.1.jar sandbox/geocat.ch/trunk/jeeves/lib/commons-httpclient-3.0.1.jar sandbox/geocat.ch/trunk/jeeves/lib/commons-io-1.3.1.jar sandbox/geocat.ch/trunk/jeeves/lib/commons-logging-api.jar sandbox/geocat.ch/trunk/jeeves/lib/commons-logging.jar sandbox/geocat.ch/trunk/jeeves/lib/fop.jar sandbox/geocat.ch/trunk/jeeves/lib/javax.servlet.jar sandbox/geocat.ch/trunk/jeeves/lib/jdom.jar sandbox/geocat.ch/trunk/jeeves/lib/jeeves.jar sandbox/geocat.ch/trunk/jeeves/lib/log4j-1.2.13.jar sandbox/geocat.ch/trunk/jeeves/lib/serializer.jar sandbox/geocat.ch/trunk/jeeves/lib/xalan.jar sandbox/geocat.ch/trunk/jeeves/lib/xercesImpl-2.7.1.jar sandbox/geocat.ch/trunk/jeeves/lib/xml-apis-1.3.02.jar sandbox/geocat.ch/trunk/jeeves/lib/xmlgraphics-commons-1.2.jar sandbox/geocat.ch/trunk/jeeves/src/ sandbox/geocat.ch/trunk/jeeves/src/jeeves/ sandbox/geocat.ch/trunk/jeeves/src/jeeves/constants/ sandbox/geocat.ch/trunk/jeeves/src/jeeves/constants/ConfigFile.java sandbox/geocat.ch/trunk/jeeves/src/jeeves/constants/Jeeves.java sandbox/geocat.ch/trunk/jeeves/src/jeeves/constants/Profiles.java sandbox/geocat.ch/trunk/jeeves/src/jeeves/exceptions/ sandbox/geocat.ch/trunk/jeeves/src/jeeves/exceptions/BadFormatEx.java sandbox/geocat.ch/trunk/jeeves/src/jeeves/exceptions/BadInputEx.java sandbox/geocat.ch/trunk/jeeves/src/jeeves/exceptions/BadParameterEx.java sandbox/geocat.ch/trunk/jeeves/src/jeeves/exceptions/BadResponseEx.java sandbox/geocat.ch/trunk/jeeves/src/jeeves/exceptions/BadServerResponseEx.java sandbox/geocat.ch/trunk/jeeves/src/jeeves/exceptions/BadSoapResponseEx.java sandbox/geocat.ch/trunk/jeeves/src/jeeves/exceptions/BadXmlResponseEx.java sandbox/geocat.ch/trunk/jeeves/src/jeeves/exceptions/FileNotFoundEx.java sandbox/geocat.ch/trunk/jeeves/src/jeeves/exceptions/FileUploadTooBigEx.java sandbox/geocat.ch/trunk/jeeves/src/jeeves/exceptions/JeevesClientEx.java sandbox/geocat.ch/trunk/jeeves/src/jeeves/exceptions/JeevesException.java sandbox/geocat.ch/trunk/jeeves/src/jeeves/exceptions/JeevesServerEx.java sandbox/geocat.ch/trunk/jeeves/src/jeeves/exceptions/MissingParameterEx.java ... [truncated message content] |
From: <fxp...@us...> - 2009-01-07 14:54:05
|
Revision: 1902 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1902&view=rev Author: fxprunayre Date: 2009-01-07 14:53:58 +0000 (Wed, 07 Jan 2009) Log Message: ----------- Fixed keyword search from main form or narrow your search widget. Keyword search are TermSearch (not Fuzzy) because keywords are not tokenized in the index (ie. not filtered by GeoNetworkAnalyzer). Client side should get a list of keyword from a service like portal.search. Using CSW, ongoing GetDomain operation could be use. Modified Paths: -------------- sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/csw/services/getrecords/CatalogSearcher.java sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/search/LuceneSearcher.java sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config-portal.xml sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/summaryConfig.xml sandbox/geocat.ch/trunk/web/geonetwork/scripts/mapfishIntegration/geocat.js Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/csw/services/getrecords/CatalogSearcher.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/csw/services/getrecords/CatalogSearcher.java 2009-01-07 14:09:21 UTC (rev 1901) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/csw/services/getrecords/CatalogSearcher.java 2009-01-07 14:53:58 UTC (rev 1902) @@ -204,24 +204,33 @@ // --------------------------------------------------------------------------- + /** + * Convert phrase to TermQuery for each token. + * Non tokenized field (eg. keywords) should not be processed. + * + * @see LuceneSearcher#processToken(String, String) + * + */ private void convertPhrases(Element elem) { if (elem.getName().equals("TermQuery")) { String field = elem.getAttributeValue("fld"); - String text = elem.getAttributeValue("txt"); - - if (text.indexOf(" ") != -1) { - elem.setName("PhraseQuery"); - - StringTokenizer st = new StringTokenizer(text, " "); - - while (st.hasMoreTokens()) { - Element term = new Element("TermQuery"); - term.setAttribute("fld", field); - term.setAttribute("txt", st.nextToken()); - - elem.addContent(term); - } + if (!field.equals("keyword")) { // Quick fix for keyword but should be for all non tokenized field + String text = elem.getAttributeValue("txt"); + + if (text.indexOf(" ") != -1) { + elem.setName("PhraseQuery"); + + StringTokenizer st = new StringTokenizer(text, " "); + + while (st.hasMoreTokens()) { + Element term = new Element("TermQuery"); + term.setAttribute("fld", field); + term.setAttribute("txt", st.nextToken()); + + elem.addContent(term); + } + } } } Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/search/LuceneSearcher.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/search/LuceneSearcher.java 2009-01-07 14:09:21 UTC (rev 1901) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/search/LuceneSearcher.java 2009-01-07 14:53:58 UTC (rev 1902) @@ -394,19 +394,19 @@ if (name.equals("TermQuery")) { String fld = xmlQuery.getAttributeValue("fld"); String txt = xmlQuery.getAttributeValue("txt"); - txt = processToken(txt); + txt = processToken(txt, fld); returnValue = new TermQuery(new Term(fld, txt)); } else if (name.equals("FuzzyQuery")) { String fld = xmlQuery.getAttributeValue("fld"); Float sim = Float.valueOf(xmlQuery.getAttributeValue("sim")); String txt = xmlQuery.getAttributeValue("txt"); - txt = processToken(txt); + txt = processToken(txt, fld); returnValue = new FuzzyQuery(new Term(fld, txt), sim.floatValue()); } else if (name.equals("PrefixQuery")) { String fld = xmlQuery.getAttributeValue("fld"); String txt = xmlQuery.getAttributeValue("txt"); - txt = processToken(txt); + txt = processToken(txt, fld); returnValue = new PrefixQuery(new Term(fld, txt)); } else if (name.equals("MatchAllDocsQuery")) { MatchAllDocsQuery query = new MatchAllDocsQuery(); @@ -414,7 +414,7 @@ } else if (name.equals("WildcardQuery")) { String fld = xmlQuery.getAttributeValue("fld"); String txt = xmlQuery.getAttributeValue("txt").toLowerCase(); - txt = processToken(txt); + txt = processToken(txt, fld); returnValue = new WildcardQuery(new Term(fld, txt)); } else if (name.equals("PhraseQuery")) { PhraseQuery query = new PhraseQuery(); @@ -422,7 +422,7 @@ Element xmlTerm = (Element) i.next(); String fld = xmlTerm.getAttributeValue("fld"); String txt = xmlTerm.getAttributeValue("txt").toLowerCase(); - txt = processToken(txt); + txt = processToken(txt, fld); query.add(new Term(fld, txt)); } returnValue = query; @@ -433,8 +433,8 @@ String sInclusive = xmlQuery.getAttributeValue("inclusive"); boolean inclusive = "true".equals(sInclusive); - Term lowerTerm = (lowerTxt == null ? null : new Term(fld, processToken(lowerTxt))); - Term upperTerm = (upperTxt == null ? null : new Term(fld, processToken(upperTxt))); + Term lowerTerm = (lowerTxt == null ? null : new Term(fld, processToken(lowerTxt, fld))); + Term upperTerm = (upperTxt == null ? null : new Term(fld, processToken(upperTxt, fld))); returnValue = new RangeQuery(lowerTerm, upperTerm, inclusive); } else if (name.equals("BooleanQuery")) { @@ -596,9 +596,32 @@ return md; } - private static final String processToken(String string) + /** + * Process token + * + * Input value for a parameter needs to be processed only + * if the current field is tokenized in the index. Tokenized field + * are processed by the {@link GeoNetworkAnalyzer#tokenStream(String, java.io.Reader)}. + * + * If a field is not tokenized GeoNetworkAnalyzer filters are not + * applied to field content and client UI should use specific service + * to retrieve list of values for this field (eg. portal.search service, + * CSW GetDomain operation). + * + * FIXME : Based on CSW ongoing dev by Mathieu, we could use + * csw config file to define non tokenized field and implement + * GetDomain operation. + * + * @param string + * @param field + * @return + */ + private static final String processToken(String string, String field) { - return removeAccents(string).toLowerCase(); + if (field.equals("keyword")) // Quick fix for keyword but should be for all non tokenized field + return string; + else + return removeAccents(string).toLowerCase(); } /** Modified: sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config-portal.xml =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config-portal.xml 2009-01-07 14:09:21 UTC (rev 1901) +++ sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config-portal.xml 2009-01-07 14:53:58 UTC (rev 1902) @@ -8,7 +8,7 @@ <service name="portal.search"> <class name=".services.main.Search"> - <param name="maxSummaryKeys" value="10" /> + <param name="maxSummaryKeys" value="99999" /> </class> <output sheet="portal-search.xsl" contentType="text/xml; charset=UTF-8"/> </service> Modified: sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/summaryConfig.xml =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/summaryConfig.xml 2009-01-07 14:09:21 UTC (rev 1901) +++ sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/summaryConfig.xml 2009-01-07 14:53:58 UTC (rev 1902) @@ -4,7 +4,7 @@ <def> <hits /> <results> - <item name="keyword" plural="keywords" indexKey="keyword" order="freq" /> + <item name="keyword" plural="keywords" indexKey="keyword" order="name" type="string" max="5000"/> <item name="category" plural="categories" indexKey="_cat" order="name" /> <item name="source" plural="sources" indexKey="_source" order="freq" /> </results> Modified: sandbox/geocat.ch/trunk/web/geonetwork/scripts/mapfishIntegration/geocat.js =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/scripts/mapfishIntegration/geocat.js 2009-01-07 14:09:21 UTC (rev 1901) +++ sandbox/geocat.ch/trunk/web/geonetwork/scripts/mapfishIntegration/geocat.js 2009-01-07 14:53:58 UTC (rev 1902) @@ -446,7 +446,7 @@ xtype: 'combo', fieldLabel: translate('keywords'), id: 'keywordsCombo', - name: 'E_subject', + name: 'E1.0_keyword', store: geocat.createKeywordsStore(), mode: 'local', displayField: 'name', @@ -1280,7 +1280,7 @@ ' </xsl:if>\n' + '</xsl:template>\n' + '<xsl:template match="' + elem + '[/csw:GetRecordsResponse/geonet:Summary/@count > @count ]" mode="' + elem + '">\n' + - ' <li><a href="javascript:geocat.refine(\'' + translate(categoryLabel) + '\',\'' + queryTerm + '\', \'{@name}\')">' + labelFormat + '</a></li>\n' + + ' <li><a href=\'javascript:geocat.refine("' + translate(categoryLabel) + '","' + queryTerm + '", "{@name}")\'>' + labelFormat + '</a></li>\n' + '</xsl:template>' }, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxp...@us...> - 2009-01-08 18:08:10
|
Revision: 1919 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1919&view=rev Author: fxprunayre Date: 2009-01-08 18:08:06 +0000 (Thu, 08 Jan 2009) Log Message: ----------- Added a field on organisation name non tokenized in the index for the refine your search widget. Hide creation date in refine search widget. Added groupowner to display group icon on top of source icon in search result (with icon for default sample group). Modified Paths: -------------- sandbox/geocat.ch/trunk/src/org/fao/geonet/constants/Edit.java sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/DataManager.java sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/csw/services/getrecords/CatalogSearcher.java sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/search/LuceneSearcher.java sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/summaryConfig.xml sandbox/geocat.ch/trunk/web/geonetwork/loc/deu/xml/strings.xml sandbox/geocat.ch/trunk/web/geonetwork/loc/fra/xml/strings.xml sandbox/geocat.ch/trunk/web/geonetwork/scripts/mapfishIntegration/geocat.js sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19115/index-fields.xsl sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139/index-fields.xsl sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139/language-index-fields.xsl sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139.che/index-fields.xsl sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139.che/language-index-fields.xsl Added Paths: ----------- sandbox/geocat.ch/trunk/web/geonetwork/images/logos/group_2.gif Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/constants/Edit.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/constants/Edit.java 2009-01-08 17:59:24 UTC (rev 1918) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/constants/Edit.java 2009-01-08 18:08:06 UTC (rev 1919) @@ -92,6 +92,7 @@ public static final String DYNAMIC = "dynamic"; public static final String FEATURED = "featured"; public static final String VIEW = "view"; + public static final String GROUPOWNER = "groupowner"; } } Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/DataManager.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/DataManager.java 2009-01-08 17:59:24 UTC (rev 1918) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/DataManager.java 2009-01-08 18:08:06 UTC (rev 1919) @@ -1878,7 +1878,7 @@ Dbms dbms = (Dbms) context.getResourceManager().open(Geonet.Res.MAIN_DB); String query ="SELECT schemaId, createDate, changeDate, source, isTemplate, title, "+ - "uuid, isHarvested, harvestUuid, popularity, rating FROM Metadata WHERE id = " + id; + "uuid, isHarvested, harvestUuid, popularity, rating, groupowner FROM Metadata WHERE id = " + id; // add Metadata table infos: schemaId, createDate, changeDate, source, Element rec = dbms.select(query).getChild("record"); @@ -1894,6 +1894,7 @@ String harvestUuid= rec.getChildText("harvestuuid"); String popularity = rec.getChildText("popularity"); String rating = rec.getChildText("rating"); + String groupowner = rec.getChildText("groupowner"); Element info = new Element(Edit.RootChild.INFO, Edit.NAMESPACE); @@ -1908,6 +1909,7 @@ addElement(info, Edit.Info.Elem.IS_HARVESTED,isHarvested); addElement(info, Edit.Info.Elem.POPULARITY, popularity); addElement(info, Edit.Info.Elem.RATING, rating); + addElement(info, Edit.Info.Elem.GROUPOWNER, groupowner); if (isHarvested.equals("y")) info.addContent(harvestMan.getHarvestInfo(harvestUuid, id, uuid)); Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/csw/services/getrecords/CatalogSearcher.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/csw/services/getrecords/CatalogSearcher.java 2009-01-08 17:59:24 UTC (rev 1918) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/csw/services/getrecords/CatalogSearcher.java 2009-01-08 18:08:06 UTC (rev 1919) @@ -215,7 +215,7 @@ { if (elem.getName().equals("TermQuery")) { String field = elem.getAttributeValue("fld"); - if (!field.equals("keyword")) { // Quick fix for keyword but should be for all non tokenized field + if (!field.equals("keyword") && !field.equals("_orgName")) { // Quick fix for keyword and orgName but should be for all non tokenized field String text = elem.getAttributeValue("txt"); if (text.indexOf(" ") != -1) { Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/search/LuceneSearcher.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/search/LuceneSearcher.java 2009-01-08 17:59:24 UTC (rev 1918) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/search/LuceneSearcher.java 2009-01-08 18:08:06 UTC (rev 1919) @@ -618,7 +618,7 @@ */ private static final String processToken(String string, String field) { - if (field.equals("keyword")) // Quick fix for keyword but should be for all non tokenized field + if (field.equals("keyword") || field.equals("_orgName")) // Quick fix for keyword and orgName but should be for all non tokenized field return string; else return removeAccents(string).toLowerCase(); Modified: sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/summaryConfig.xml =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/summaryConfig.xml 2009-01-08 17:59:24 UTC (rev 1918) +++ sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/summaryConfig.xml 2009-01-08 18:08:06 UTC (rev 1919) @@ -1,6 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> <summary> - + <!-- All items specified in a summary MUST have a non tokenized field + in Lucene index. Indeed the search is made on the exact value from the client side. + Once added to summary config, you have to edit the JS refine search title + to display a new section. --> <def> <hits /> <results> @@ -19,13 +22,19 @@ <item name="spatialRepresentation" plural="spatialRepresentations" indexKey="spatialRepresentation" type="string" order="freq" max="10" /> <item name="organizationName" plural="organizationNames" - indexKey="orgName" order="freq" type="string" max="10" /> + indexKey="_orgName" order="freq" type="string" max="10" /> <item name="serviceType" plural="serviceTypes" indexKey="serviceType" order="freq" type="string" max="10" /> <item name="type" plural="types" indexKey="type" order="freq" type="string" max="10" /> + <!-- + To be discussed if we add group and source. + <item name="source" plural="sources" indexKey="_source" order="freq" + type="string" max="10" /> + <item name="group" plural="groups" indexKey="_groupOwner" order="freq" + type="string" max="10" /> <item name="created" plural="created" indexKey="_createDate" - type="date" order="freq" max="10" /> + type="date" order="freq" max="10" />--> </results_with_summary> </def> <typeConfig> Added: sandbox/geocat.ch/trunk/web/geonetwork/images/logos/group_2.gif =================================================================== (Binary files differ) Property changes on: sandbox/geocat.ch/trunk/web/geonetwork/images/logos/group_2.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: sandbox/geocat.ch/trunk/web/geonetwork/loc/deu/xml/strings.xml =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/loc/deu/xml/strings.xml 2009-01-08 17:59:24 UTC (rev 1918) +++ sandbox/geocat.ch/trunk/web/geonetwork/loc/deu/xml/strings.xml 2009-01-08 18:08:06 UTC (rev 1919) @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <strings> + <refineSearch.title>TODO</refineSearch.title> <parent>View parent metadata</parent> <userdetails>User details</userdetails> <publicaccess>Allow user to be used in metadata records</publicaccess> Modified: sandbox/geocat.ch/trunk/web/geonetwork/loc/fra/xml/strings.xml =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/loc/fra/xml/strings.xml 2009-01-08 17:59:24 UTC (rev 1918) +++ sandbox/geocat.ch/trunk/web/geonetwork/loc/fra/xml/strings.xml 2009-01-08 18:08:06 UTC (rev 1919) @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <strings> + <refineSearch.title>Précisez votre recherche</refineSearch.title> <parent>Consulter la fiche du parent</parent> <userdetails>User details</userdetails> <publicaccess>Allow user to be used in metadata records</publicaccess> Modified: sandbox/geocat.ch/trunk/web/geonetwork/scripts/mapfishIntegration/geocat.js =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/scripts/mapfishIntegration/geocat.js 2009-01-08 17:59:24 UTC (rev 1918) +++ sandbox/geocat.ch/trunk/web/geonetwork/scripts/mapfishIntegration/geocat.js 2009-01-08 18:08:06 UTC (rev 1919) @@ -1213,7 +1213,10 @@ ' <hr/>\n' + ' <table width="100%" onmouseover="geocat.highlight(\'{dc:identifier}\')" onmouseout="geocat.highlight(null)">\n' + ' <tr><td>\n' + - ' <xsl:if test="geonet:info/source"><img src="' + geocat.baseUrl + '/images/logos/{geonet:info/source}.gif" width="40"/></xsl:if>\n' + + ' <xsl:choose>\n' + + ' <xsl:when test="geonet:info/groupowner!=\'\'"><img style="background:url(' + geocat.baseUrl + 'images/logos/{geonet:info/source}.gif)" src="' + geocat.baseUrl + 'images/logos/group_{geonet:info/groupowner}.gif" width="40"/></xsl:when>\n' + + ' <xsl:otherwise><img src="' + geocat.baseUrl + '/images/logos/{geonet:info/source}.gif" width="40"/></xsl:otherwise>\n' + + ' </xsl:choose>\n' + ' </td><td><h2><xsl:value-of select="dc:title"/></h2></td></tr>\n' + ' <tr><td>' + translate('abstract') + '</td><td><xsl:value-of select="dct:abstract"/></td></tr>\n' + ' <tr><td>' + translate('keywords') + '</td><td><xsl:apply-templates select="dc:subject"/></td></tr>\n' + @@ -1256,10 +1259,12 @@ geocat.getRefinementListTemplate('resolution','denominators','denominator','E1.0_denominator', geocat.denominatorLabelFormat) + geocat.getDefaultRefinementListTemplate('category','categories','category','E1.0_topicCat') + geocat.getDefaultRefinementListTemplate('spatialRepresentation','spatialRepresentations','spatialRepresentation','E1.0_spatialRepresentation') + - geocat.getDefaultRefinementListTemplate('organizationName','organizationNames','organizationName','E1.0_orgName') + + geocat.getDefaultRefinementListTemplate('organizationName','organizationNames','organizationName','E1.0__orgName') + geocat.getDefaultRefinementListTemplate('serviceType','serviceTypes','serviceType','E1.0_serviceType') + geocat.getDefaultRefinementListTemplate('type','types','type','E1.0_type') + - geocat.getRefinementListTemplate('creation','created','created','E1.0__createDate', geocat.dateLabelFormat) + + //geocat.getDefaultRefinementListTemplate('group','groups','group','E1.0__groupOwner') + + //geocat.getDefaultRefinementListTemplate('source','sources','source','E1.0__source') + + //geocat.getRefinementListTemplate('creation','created','created','E1.0__createDate', geocat.dateLabelFormat) + ' <xsl:template match="text()"/>\n\n' + '</xsl:stylesheet>'; }, Modified: sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19115/index-fields.xsl =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19115/index-fields.xsl 2009-01-08 17:59:24 UTC (rev 1918) +++ sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19115/index-fields.xsl 2009-01-08 18:08:06 UTC (rev 1919) @@ -80,6 +80,7 @@ <!-- === Responsible organization === --> <xsl:for-each select="/Metadata/mdContact/rpOrgName"> <Field name="orgName" string="{string(.)}" store="true" index="true" token="true"/> + <Field name="_orgName" string="{string(.)}" store="true" index="true" token="false"/> </xsl:for-each> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> Modified: sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139/index-fields.xsl =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139/index-fields.xsl 2009-01-08 17:59:24 UTC (rev 1918) +++ sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139/index-fields.xsl 2009-01-08 18:08:06 UTC (rev 1919) @@ -163,6 +163,7 @@ <xsl:for-each select="gmd:pointOfContact/gmd:CI_ResponsibleParty/gmd:organisationName/gco:CharacterString"> <Field name="orgName" string="{string(.)}" store="true" index="true" token="true"/> + <Field name="_orgName" string="{string(.)}" store="true" index="true" token="false"/> </xsl:for-each> <xsl:for-each select="gmd:pointOfContact/gmd:CI_ResponsibleParty/gmd:individualName/gco:CharacterString"> <Field name="creator" string="{string(.)}" store="true" index="true" token="true"/> Modified: sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139/language-index-fields.xsl =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139/language-index-fields.xsl 2009-01-08 17:59:24 UTC (rev 1918) +++ sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139/language-index-fields.xsl 2009-01-08 18:08:06 UTC (rev 1919) @@ -181,6 +181,7 @@ <xsl:for-each select="gmd:pointOfContact/gmd:CI_ResponsibleParty/gmd:organisationName//gmd:LocalisedCharacterString[@locale=$langId]"> <Field name="orgName" string="{string(.)}" store="true" index="true" token="true"/> + <Field name="_orgName" string="{string(.)}" store="true" index="true" token="false"/> </xsl:for-each> <xsl:for-each select="gmd:pointOfContact/gmd:CI_ResponsibleParty/gmd:individualName/gco:CharacterString| gmd:pointOfContact/gmd:CI_ResponsibleParty/gmd:individualFirstName/gco:CharacterString| Modified: sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139.che/index-fields.xsl =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139.che/index-fields.xsl 2009-01-08 17:59:24 UTC (rev 1918) +++ sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139.che/index-fields.xsl 2009-01-08 18:08:06 UTC (rev 1919) @@ -173,6 +173,7 @@ <xsl:for-each select="gmd:pointOfContact/gmd:CI_ResponsibleParty/gmd:organisationName/gco:CharacterString| gmd:pointOfContact/che:CHE_CI_ResponsibleParty/gmd:organisationName/gco:CharacterString"> <Field name="orgName" string="{string(.)}" store="true" index="true" token="true"/> + <Field name="_orgName" string="{string(.)}" store="true" index="true" token="false"/> </xsl:for-each> <xsl:for-each select="gmd:pointOfContact/gmd:CI_ResponsibleParty/gmd:individualName/gco:CharacterString| gmd:pointOfContact/che:CHE_CI_ResponsibleParty/gmd:individualFirstName/gco:CharacterString| Modified: sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139.che/language-index-fields.xsl =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139.che/language-index-fields.xsl 2009-01-08 17:59:24 UTC (rev 1918) +++ sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139.che/language-index-fields.xsl 2009-01-08 18:08:06 UTC (rev 1919) @@ -182,6 +182,7 @@ <xsl:for-each select="gmd:pointOfContact/gmd:CI_ResponsibleParty/gmd:organisationName//gmd:LocalisedCharacterString[@locale=$langId]"> <Field name="orgName" string="{string(.)}" store="true" index="true" token="true"/> + <Field name="_orgName" string="{string(.)}" store="true" index="true" token="false"/> </xsl:for-each> <xsl:for-each select="gmd:pointOfContact/gmd:CI_ResponsibleParty/gmd:individualName/gco:CharacterString| gmd:pointOfContact/che:CHE_CI_ResponsibleParty/gmd:individualFirstName/gco:CharacterString| This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jes...@us...> - 2009-01-09 08:20:42
|
Revision: 1922 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1922&view=rev Author: jesseeichar Date: 2009-01-09 08:20:38 +0000 (Fri, 09 Jan 2009) Log Message: ----------- another performance fix in the geotools code Modified Paths: -------------- sandbox/geocat.ch/trunk/.classpath sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config.xml sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/lib/geonetwork.jar sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/lib/gt-main-2.5.1.jar sandbox/geocat.ch/trunk/web/geonetwork/scripts/mapfishIntegration/geocat.js Property Changed: ---------------- sandbox/geocat.ch/trunk/ Property changes on: sandbox/geocat.ch/trunk ___________________________________________________________________ Modified: bzr:revision-info - timestamp: 2009-01-08 14:26:25.503999949 +0100 committer: jeichar <jeichar@lhotse> properties: branch-nick: bzr_src + timestamp: 2009-01-08 17:00:40.085999966 +0100 committer: jeichar <jeichar@lhotse> properties: branch-nick: bzr_src Modified: bzr:file-ids - .bzrignore bzrignore-20090108131859-jr702fgmcncc7mak-1 .classpath classpath-20090108132547-oulxeoiehgveubte-1 .externalToolBuilders externaltoolbuilders-20090108132547-oulxeoiehgveubte-3 .externalToolBuilders/deploy.launch deploy.launch-20090108132547-oulxeoiehgveubte-4 .project project-20090108132547-oulxeoiehgveubte-2 bin/Gast.launch 1844@ff403467-3f20-0410-99e5-ff581e626a08:sandbox%2Fgeocat.ch%2Ftrunk:bin%2FGast.launch copy.xml 1844@ff403467-3f20-0410-99e5-ff581e626a08:sandbox%2Fgeocat.ch%2Ftrunk:copy.xml jeeves/lib/jeeves.jar 1844@ff403467-3f20-0410-99e5-ff581e626a08:sandbox%2Fgeocat.ch%2Ftrunk:jeeves%2Flib%2Fjeeves.jar web/geonetwork/WEB-INF/config.xml 1843@ff403467-3f20-0410-99e5-ff581e626a08:sandbox%2Fgeocat.ch%2Ftrunk:web%2Fgeonetwork%2FWEB-INF%2Fconfig.xml web/geonetwork/WEB-INF/lib/geonetwork.jar 1844@ff403467-3f20-0410-99e5-ff581e626a08:sandbox%2Fgeocat.ch%2Ftrunk:web%2Fgeonetwork%2FWEB-INF%2Flib%2Fgeonetwork.jar web/geonetwork/WEB-INF/lib/gt-main-2.5.1.jar 1844@ff403467-3f20-0410-99e5-ff581e626a08:sandbox%2Fgeocat.ch%2Ftrunk:web%2Fgeonetwork%2FWEB-INF%2Flib%2Fgt-main-2.5.1.jar web/geonetwork/scripts/mapfishIntegration/geocat.js 1844@ff403467-3f20-0410-99e5-ff581e626a08:sandbox%2Fgeocat.ch%2Ftrunk:web%2Fgeonetwork%2Fscripts%2FmapfishIntegration%2Fgeocat.js web/intermap/WEB-INF/lib/jeeves.jar 1843@ff403467-3f20-0410-99e5-ff581e626a08:sandbox%2Fgeocat.ch%2Ftrunk:web%2Fintermap%2FWEB-INF%2Flib%2Fjeeves.jar + .classpath classpath-20090108132547-oulxeoiehgveubte-1 web/geonetwork/WEB-INF/config.xml 1843@ff403467-3f20-0410-99e5-ff581e626a08:sandbox%2Fgeocat.ch%2Ftrunk:web%2Fgeonetwork%2FWEB-INF%2Fconfig.xml web/geonetwork/WEB-INF/lib/geonetwork.jar 1844@ff403467-3f20-0410-99e5-ff581e626a08:sandbox%2Fgeocat.ch%2Ftrunk:web%2Fgeonetwork%2FWEB-INF%2Flib%2Fgeonetwork.jar web/geonetwork/WEB-INF/lib/gt-main-2.5.1.jar 1844@ff403467-3f20-0410-99e5-ff581e626a08:sandbox%2Fgeocat.ch%2Ftrunk:web%2Fgeonetwork%2FWEB-INF%2Flib%2Fgt-main-2.5.1.jar web/geonetwork/scripts/mapfishIntegration/geocat.js 1844@ff403467-3f20-0410-99e5-ff581e626a08:sandbox%2Fgeocat.ch%2Ftrunk:web%2Fgeonetwork%2Fscripts%2FmapfishIntegration%2Fgeocat.js Modified: bzr:revision-id:v3-trunk2 - 8 jeichar@lhotse-20090108132625-ehms0gq3frjwqh9k + 8 jeichar@lhotse-20090108132625-ehms0gq3frjwqh9k 9 jeichar@lhotse-20090108160040-bdhcd7cr04sin5uw Modified: bzr:text-parents - bin/Gast.launch svn-v3-trunk2:ff403467-3f20-0410-99e5-ff581e626a08:sandbox%2Fgeocat.ch%2Ftrunk:1844 copy.xml svn-v3-trunk2:ff403467-3f20-0410-99e5-ff581e626a08:sandbox%2Fgeocat.ch%2Ftrunk:1844 jeeves/lib/jeeves.jar svn-v3-trunk2:ff403467-3f20-0410-99e5-ff581e626a08:sandbox%2Fgeocat.ch%2Ftrunk:1844 web/geonetwork/WEB-INF/config.xml svn-v3-trunk2:ff403467-3f20-0410-99e5-ff581e626a08:sandbox%2Fgeocat.ch%2Ftrunk:1844 web/geonetwork/WEB-INF/lib/geonetwork.jar svn-v3-trunk2:ff403467-3f20-0410-99e5-ff581e626a08:sandbox%2Fgeocat.ch%2Ftrunk:1844 web/geonetwork/WEB-INF/lib/gt-main-2.5.1.jar svn-v3-trunk2:ff403467-3f20-0410-99e5-ff581e626a08:sandbox%2Fgeocat.ch%2Ftrunk:1844 web/geonetwork/scripts/mapfishIntegration/geocat.js svn-v3-trunk2:ff403467-3f20-0410-99e5-ff581e626a08:sandbox%2Fgeocat.ch%2Ftrunk:1902 web/intermap/WEB-INF/lib/jeeves.jar svn-v3-trunk2:ff403467-3f20-0410-99e5-ff581e626a08:sandbox%2Fgeocat.ch%2Ftrunk:1844 + Modified: sandbox/geocat.ch/trunk/.classpath =================================================================== --- sandbox/geocat.ch/trunk/.classpath 2009-01-09 08:04:59 UTC (rev 1921) +++ sandbox/geocat.ch/trunk/.classpath 2009-01-09 08:20:38 UTC (rev 1922) @@ -178,5 +178,35 @@ <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/xalan-2.7.0.jar"/> <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/xml-apis-xerces-2.7.1.jar"/> <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/xmlParserAPIs-2.0.2.jar"/> + <classpathentry kind="lib" path="jetty/ext/commons-el-1.0.jar"/> + <classpathentry kind="lib" path="jetty/ext/commons-logging-api.jar"/> + <classpathentry kind="lib" path="jetty/ext/jasper-compiler-5.5.15.jar"/> + <classpathentry kind="lib" path="jetty/ext/jasper-compiler-jdt-5.5.15.jar"/> + <classpathentry kind="lib" path="jetty/ext/jasper-runtime-5.5.15.jar"/> + <classpathentry kind="lib" path="jetty/ext/jcl104-over-slf4j-1.0.1.jar"/> + <classpathentry kind="lib" path="jetty/ext/jsp-api-2.0.jar"/> + <classpathentry kind="lib" path="jetty/ext/org.mortbay.jetty.plus.jar"/> + <classpathentry kind="lib" path="jetty/ext/slf4j-simple-1.0.1.jar"/> + <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/gt2-validation-2.3.4.jar"/> + <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/gt2-api-2.3.4.jar"/> + <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/gt2-arcgrid-2.3.4.jar"/> + <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/gt2-coverage-2.3.4.jar"/> + <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/gt2-cql-2.3.4.jar"/> + <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/gt2-demo-property-2.3.4.jar"/> + <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/gt2-epsg-hsql-2.3.4.jar"/> + <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/gt2-geotiff-2.3.4.jar"/> + <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/gt2-graph-2.3.4.jar"/> + <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/gt2-gtopo30-2.3.4.jar"/> + <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/gt2-image-2.3.4.jar"/> + <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/gt2-imagemosaic-2.3.4.jar"/> + <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/gt2-indexed-shapefile-2.3.4.jar"/> + <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/gt2-main-2.3.4.jar"/> + <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/gt2-postgis-2.3.4.jar"/> + <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/gt2-referencing-2.3.4.jar"/> + <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/gt2-render-2.3.4.jar"/> + <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/gt2-shapefile-2.3.4.jar"/> + <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/wcs-1.5.3.jar"/> + <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/wfs-1.5.3.jar"/> + <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/wms-1.5.3.jar"/> <classpathentry kind="output" path="classes"/> </classpath> Modified: sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config.xml =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config.xml 2009-01-09 08:04:59 UTC (rev 1921) +++ sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config.xml 2009-01-09 08:20:38 UTC (rev 1922) @@ -71,8 +71,8 @@ <name>main-db</name> <provider>jeeves.resources.dbms.DbmsPool</provider> <config> - <user>mdzmveRp</user> - <password>kwOrY1TI</password> + <user>nSKTP3i5</user> + <password>7fJ4ffXd</password> <driver>com.mckoi.JDBCDriver</driver> <url>jdbc:mckoi://localhost:9159/</url> <poolSize>10</poolSize> Modified: sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/lib/geonetwork.jar =================================================================== (Binary files differ) Modified: sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/lib/gt-main-2.5.1.jar =================================================================== (Binary files differ) Modified: sandbox/geocat.ch/trunk/web/geonetwork/scripts/mapfishIntegration/geocat.js =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/scripts/mapfishIntegration/geocat.js 2009-01-09 08:04:59 UTC (rev 1921) +++ sandbox/geocat.ch/trunk/web/geonetwork/scripts/mapfishIntegration/geocat.js 2009-01-09 08:20:38 UTC (rev 1922) @@ -1270,7 +1270,6 @@ }, getRefinementListTemplate: function(categoryLabel, category, elem, queryTerm, labelFormat) { - var escapedQuery = queryTerm.replace('b','*') return '<xsl:template match="' + category + '">\n' + ' <xsl:variable name="list"><xsl:apply-templates mode="' + elem + '" select="' + elem + '"/></xsl:variable>\n' + ' <xsl:if test="string-length(normalize-space($list)) > 0"><tr class="refineAdd"><td class="refineAdd">\n' + @@ -1281,7 +1280,7 @@ ' </xsl:if>\n' + '</xsl:template>\n' + '<xsl:template match="' + elem + '[/csw:GetRecordsResponse/geonet:Summary/@count > @count ]" mode="' + elem + '">\n' + - ' <li><a href=\'javascript:geocat.refine("' + translate(categoryLabel) + '","' + escapedQuery + '", "{@name}")\'>' + labelFormat + '</a></li>\n' + + ' <li><a href=\'javascript:geocat.refine("' + translate(categoryLabel) + '","' + queryTerm + '", "{@name}")\'>' + labelFormat + '</a></li>\n' + '</xsl:template>' }, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jes...@us...> - 2009-01-09 12:31:31
|
Revision: 1924 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1924&view=rev Author: jesseeichar Date: 2009-01-09 12:31:27 +0000 (Fri, 09 Jan 2009) Log Message: ----------- remove generate files Removed Paths: ------------- sandbox/geocat.ch/trunk/jeeves/lib/jeeves.jar sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/lib/geonetwork.jar sandbox/geocat.ch/trunk/web/intermap/WEB-INF/lib/jeeves.jar Deleted: sandbox/geocat.ch/trunk/jeeves/lib/jeeves.jar =================================================================== (Binary files differ) Deleted: sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/lib/geonetwork.jar =================================================================== (Binary files differ) Deleted: sandbox/geocat.ch/trunk/web/intermap/WEB-INF/lib/jeeves.jar =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jes...@us...> - 2009-01-09 12:32:01
|
Revision: 1925 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1925&view=rev Author: jesseeichar Date: 2009-01-09 12:31:54 +0000 (Fri, 09 Jan 2009) Log Message: ----------- minor fixes pretty unimportant. config is just changed because new setup was made Modified Paths: -------------- sandbox/geocat.ch/trunk/bin/start-geonetwork.sh sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config.xml Modified: sandbox/geocat.ch/trunk/bin/start-geonetwork.sh =================================================================== --- sandbox/geocat.ch/trunk/bin/start-geonetwork.sh 2009-01-09 12:31:27 UTC (rev 1924) +++ sandbox/geocat.ch/trunk/bin/start-geonetwork.sh 2009-01-09 12:31:54 UTC (rev 1925) @@ -4,6 +4,8 @@ mv log/geonetwork.log.* log/archive mv log/intermap.log.* log/archive +mkdir -p log + # try changing the Xmx parameter if your machine has little RAM #java -Xms48m -Xmx256m -DSTOP.PORT=8079 -Djava.awt.headless=true -jar start.jar ../bin/jetty.xml & Modified: sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config.xml =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config.xml 2009-01-09 12:31:27 UTC (rev 1924) +++ sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config.xml 2009-01-09 12:31:54 UTC (rev 1925) @@ -71,8 +71,8 @@ <name>main-db</name> <provider>jeeves.resources.dbms.DbmsPool</provider> <config> - <user>nSKTP3i5</user> - <password>7fJ4ffXd</password> + <user>83EZB6vT</user> + <password>TLgSGDAs</password> <driver>com.mckoi.JDBCDriver</driver> <url>jdbc:mckoi://localhost:9159/</url> <poolSize>10</poolSize> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jes...@us...> - 2009-01-09 15:51:26
|
Revision: 1929 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1929&view=rev Author: jesseeichar Date: 2009-01-09 15:51:15 +0000 (Fri, 09 Jan 2009) Log Message: ----------- removed creation date and added group to refine search Modified Paths: -------------- sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/DataManager.java sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/summaryConfig.xml sandbox/geocat.ch/trunk/web/geonetwork/scripts/mapfishIntegration/geocat.js Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/DataManager.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/DataManager.java 2009-01-09 12:32:45 UTC (rev 1928) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/DataManager.java 2009-01-09 15:51:15 UTC (rev 1929) @@ -240,9 +240,15 @@ moreFields.add(makeField("_popularity", popularity, true, true, false)); moreFields.add(makeField("_rating", rating, true, true, false)); - if (groupOwner != null) + if (groupOwner != null){ moreFields.add(makeField("_groupOwner", groupOwner, true, true, false)); - + List groupOwnerName = dbms.select("SELECT name FROM Groups "+ + "WHERE id = " + groupOwner).getChildren(); + if( groupOwnerName.size()>0 ){ + Element element = (Element) groupOwnerName.get(0); + moreFields.add(makeField("_groupOwnerName", element.getChildText("name"), true, true, false)); + } + } // get privileges List operations = dbms.select("SELECT groupId, operationId FROM OperationAllowed "+ "WHERE metadataId = " + id + " ORDER BY operationId ASC").getChildren(); Modified: sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/summaryConfig.xml =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/summaryConfig.xml 2009-01-09 12:32:45 UTC (rev 1928) +++ sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/summaryConfig.xml 2009-01-09 15:51:15 UTC (rev 1929) @@ -18,14 +18,14 @@ order="name" type="string" max="10" /> <item name="spatialRepresentation" plural="spatialRepresentations" indexKey="spatialRepresentation" type="string" order="freq" max="10" /> - <item name="organizationName" plural="organizationNames" - indexKey="orgName" order="freq" type="string" max="10" /> + <item name="organizationName" plural="organizationNames" + indexKey="orgName" order="freq" type="string" max="10" /> + <item name="group" plural="groups" + indexKey="_groupOwnerName" order="freq" type="string" max="10" /> <item name="serviceType" plural="serviceTypes" indexKey="serviceType" order="freq" type="string" max="10" /> <item name="type" plural="types" indexKey="type" order="freq" type="string" max="10" /> - <item name="created" plural="created" indexKey="_createDate" - type="date" order="freq" max="10" /> </results_with_summary> </def> <typeConfig> Modified: sandbox/geocat.ch/trunk/web/geonetwork/scripts/mapfishIntegration/geocat.js =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/scripts/mapfishIntegration/geocat.js 2009-01-09 12:32:45 UTC (rev 1928) +++ sandbox/geocat.ch/trunk/web/geonetwork/scripts/mapfishIntegration/geocat.js 2009-01-09 15:51:15 UTC (rev 1929) @@ -1259,7 +1259,7 @@ geocat.getDefaultRefinementListTemplate('organizationName','organizationNames','organizationName','E1.0_orgName') + geocat.getDefaultRefinementListTemplate('serviceType','serviceTypes','serviceType','E1.0_serviceType') + geocat.getDefaultRefinementListTemplate('type','types','type','E1.0_type') + - geocat.getRefinementListTemplate('creation','created','created','E1.0__createDate', geocat.dateLabelFormat) + + geocat.getRefinementListTemplate('group','groups','group','E1.0__groupOwnerName', geocat.dateLabelFormat) + ' <xsl:template match="text()"/>\n\n' + '</xsl:stylesheet>'; }, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxp...@us...> - 2009-01-09 17:30:02
|
Revision: 1930 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1930&view=rev Author: fxprunayre Date: 2009-01-09 17:29:55 +0000 (Fri, 09 Jan 2009) Log Message: ----------- Added statistics db and demo services. Creation of Requests and Params tables in db to store search informations (hits, ip, date, term's field and text) logged by SearchLogger (on going work by Nico). Added sample data to be loaded in table and a sample service to get statistics by month. Modified Paths: -------------- sandbox/geocat.ch/trunk/gast/setup/database.druid sandbox/geocat.ch/trunk/gast/setup/sql/create-db-mckoi.sql sandbox/geocat.ch/trunk/gast/setup/sql/create-db-mysql.sql sandbox/geocat.ch/trunk/gast/setup/sql/create-db-oracle.sql sandbox/geocat.ch/trunk/gast/setup/sql/create-db-postgres.sql sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config.xml sandbox/geocat.ch/trunk/web/geonetwork/xml/user-profiles.xml Added Paths: ----------- sandbox/geocat.ch/trunk/gast/setup/db/Params.ddf sandbox/geocat.ch/trunk/gast/setup/db/Requests.ddf sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config-statistics.xml sandbox/geocat.ch/trunk/web/geonetwork/xsl/statistics/ sandbox/geocat.ch/trunk/web/geonetwork/xsl/statistics/number-of-search.xsl Modified: sandbox/geocat.ch/trunk/gast/setup/database.druid =================================================================== --- sandbox/geocat.ch/trunk/gast/setup/database.druid 2009-01-09 15:51:15 UTC (rev 1929) +++ sandbox/geocat.ch/trunk/gast/setup/database.druid 2009-01-09 17:29:55 UTC (rev 1930) @@ -2,8 +2,8 @@ <project version="2"> <attribs> - <attrib name="build">157</attrib> - <attrib name="serial">70792</attrib> + <attrib name="build">169</attrib> + <attrib name="serial">75256</attrib> </attribs> <database> <attribs> @@ -102,6 +102,28 @@ <elem>60</elem> <elem/> </row> + <row> + <elem>74439</elem> + <elem>Idx3</elem> + <elem>{table}NDX{cnt}</elem> + <elem>b</elem> + <elem>i</elem> + <elem>false</elem> + <elem>false</elem> + <elem>60</elem> + <elem/> + </row> + <row> + <elem>74440</elem> + <elem>Idx4</elem> + <elem>{table}NDX{cnt}</elem> + <elem>b</elem> + <elem>i</elem> + <elem>false</elem> + <elem>false</elem> + <elem>60</elem> + <elem/> + </row> </list> </fieldAttribs> <vars> @@ -765,7 +787,7 @@ <query> <attribs> <attrib name="name">-UnNamed-</attrib> - <attrib name="sqlCode">select distinct metadataId from OperationAllowed where groupId=10</attrib> + <attrib name="sqlCode">SELECT id, schemaId, root, title FROM Metadata WHERE isTemplate='s' ORDER BY root, title</attrib> </attribs> <modsConfig/> </query> @@ -975,6 +997,16 @@ <elem>Idx2</elem> <elem/> </row> + <row> + <elem>74439</elem> + <elem>Idx3</elem> + <elem/> + </row> + <row> + <elem>74440</elem> + <elem>Idx4</elem> + <elem/> + </row> </list> </idx> <postSql/> @@ -1009,6 +1041,24 @@ <elem>false</elem> <elem>false</elem> </row> + <row> + <elem>74439</elem> + <elem>Idx3</elem> + <elem/> + <elem>0</elem> + <elem>false</elem> + <elem>false</elem> + <elem>false</elem> + </row> + <row> + <elem>74440</elem> + <elem>Idx4</elem> + <elem/> + <elem>0</elem> + <elem>false</elem> + <elem>false</elem> + <elem>false</elem> + </row> </list> </idx> <ts>0</ts> @@ -1031,6 +1081,16 @@ <elem>Idx2</elem> <elem/> </row> + <row> + <elem>74439</elem> + <elem>Idx3</elem> + <elem/> + </row> + <row> + <elem>74440</elem> + <elem>Idx4</elem> + <elem/> + </row> </list> </idx> </mckoiSql> @@ -1058,6 +1118,20 @@ <elem>default</elem> <elem/> </row> + <row> + <elem>74439</elem> + <elem>Idx3</elem> + <elem/> + <elem>default</elem> + <elem/> + </row> + <row> + <elem>74440</elem> + <elem>Idx4</elem> + <elem/> + <elem>default</elem> + <elem/> + </row> </list> </idx> </pgSql> @@ -1066,9 +1140,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">true</attrib> <attrib name="340">false</attrib> @@ -1090,9 +1166,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">true</attrib> + <attrib name="74440">false</attrib> <attrib name="17">true</attrib> <attrib name="15">false</attrib> <attrib name="340">true</attrib> @@ -1114,9 +1192,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">true</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -1138,9 +1218,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374">'n'</attrib> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">true</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -1172,9 +1254,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374">'n'</attrib> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">true</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -1196,9 +1280,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">true</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -1220,9 +1306,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">true</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -1244,9 +1332,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">true</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -1268,9 +1358,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">true</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">true</attrib> <attrib name="15">false</attrib> <attrib name="340">true</attrib> @@ -1292,9 +1384,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -1316,9 +1410,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -1340,9 +1436,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">false</attrib> <attrib name="340">true</attrib> @@ -1364,9 +1462,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">true</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -1388,9 +1488,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -1412,9 +1514,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -1436,9 +1540,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374">0</attrib> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">true</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -1465,9 +1571,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374">0</attrib> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">true</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -1619,9 +1727,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">true</attrib> <attrib name="340">false</attrib> @@ -1643,9 +1753,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">true</attrib> <attrib name="340">false</attrib> @@ -1799,9 +1911,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">true</attrib> <attrib name="340">false</attrib> @@ -1823,9 +1937,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">true</attrib> <attrib name="340">false</attrib> @@ -1847,9 +1963,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">true</attrib> <attrib name="340">false</attrib> @@ -2001,9 +2119,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">true</attrib> <attrib name="340">false</attrib> @@ -2025,9 +2145,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">true</attrib> <attrib name="340">false</attrib> @@ -2179,9 +2301,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">true</attrib> <attrib name="340">false</attrib> @@ -2203,9 +2327,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">true</attrib> <attrib name="340">false</attrib> @@ -2227,9 +2353,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">true</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -2381,9 +2509,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">true</attrib> <attrib name="340">false</attrib> @@ -2405,9 +2535,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -2429,9 +2561,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -2583,9 +2717,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">true</attrib> <attrib name="15">true</attrib> <attrib name="340">false</attrib> @@ -2607,9 +2743,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">true</attrib> <attrib name="15">true</attrib> <attrib name="340">false</attrib> @@ -2631,9 +2769,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">true</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -2767,9 +2907,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">true</attrib> <attrib name="340">false</attrib> @@ -2791,9 +2933,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">true</attrib> <attrib name="15">false</attrib> <attrib name="340">true</attrib> @@ -2815,9 +2959,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -2839,9 +2985,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -2863,9 +3011,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -2991,9 +3141,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">true</attrib> <attrib name="340">false</attrib> @@ -3015,9 +3167,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">true</attrib> <attrib name="340">false</attrib> @@ -3039,9 +3193,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">true</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -3169,9 +3325,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">true</attrib> <attrib name="340">false</attrib> @@ -3193,9 +3351,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">true</attrib> <attrib name="340">false</attrib> @@ -3248,9 +3408,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">true</attrib> <attrib name="340">false</attrib> @@ -3272,9 +3434,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">true</attrib> <attrib name="15">false</attrib> <attrib name="340">true</attrib> @@ -3400,9 +3564,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">true</attrib> <attrib name="340">false</attrib> @@ -3424,9 +3590,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">true</attrib> <attrib name="340">false</attrib> @@ -3448,9 +3616,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">true</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -3584,9 +3754,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">true</attrib> <attrib name="340">false</attrib> @@ -3608,9 +3780,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -3632,9 +3806,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">true</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -3656,9 +3832,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -3784,9 +3962,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">true</attrib> <attrib name="340">false</attrib> @@ -3808,9 +3988,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">true</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -3936,9 +4118,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">true</attrib> <attrib name="340">false</attrib> @@ -3960,9 +4144,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -3989,9 +4175,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374">'y'</attrib> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -4122,9 +4310,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">true</attrib> <attrib name="340">false</attrib> @@ -4146,9 +4336,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">true</attrib> <attrib name="15">false</attrib> <attrib name="340">true</attrib> @@ -4274,9 +4466,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">true</attrib> <attrib name="340">false</attrib> @@ -4298,9 +4492,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">true</attrib> <attrib name="340">false</attrib> @@ -4322,9 +4518,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">true</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -4377,9 +4575,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">true</attrib> <attrib name="340">false</attrib> @@ -4401,9 +4601,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">true</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -4425,9 +4627,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">true</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -4449,9 +4653,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">true</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -4473,9 +4679,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">true</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -4601,9 +4809,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">true</attrib> <attrib name="340">false</attrib> @@ -4625,9 +4835,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">true</attrib> <attrib name="340">false</attrib> @@ -4649,9 +4861,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">true</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -4811,9 +5025,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">true</attrib> <attrib name="340">false</attrib> @@ -4840,9 +5056,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">true</attrib> <attrib name="15">false</attrib> <attrib name="340">true</attrib> @@ -4869,9 +5087,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">true</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -4898,9 +5118,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -4927,9 +5149,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -4956,9 +5180,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">true</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -4985,9 +5211,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -5009,9 +5237,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -5033,9 +5263,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -5062,9 +5294,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -5086,9 +5320,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -5110,9 +5346,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -5139,9 +5377,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -5168,9 +5408,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -5192,9 +5434,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -5221,9 +5465,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -5250,9 +5496,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -5279,9 +5527,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -5308,9 +5558,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -5337,9 +5589,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -5366,9 +5620,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -5390,9 +5646,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -5414,9 +5672,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374">'y'</attrib> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -5443,9 +5703,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -5579,9 +5841,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">true</attrib> <attrib name="340">false</attrib> @@ -5603,9 +5867,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">true</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -5627,9 +5893,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374">'n'</attrib> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">true</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -5757,9 +6025,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">true</attrib> <attrib name="340">false</attrib> @@ -5781,9 +6051,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">false</attrib> <attrib name="15">true</attrib> <attrib name="340">false</attrib> @@ -5805,9 +6077,11 @@ <field> <fieldAttribs> <attribs> + <attrib name="74439">false</attrib> <attrib name="63909">false</attrib> <attrib name="54374"/> <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> <attrib name="17">true</attrib> <attrib name="15">false</attrib> <attrib name="340">false</attrib> @@ -5828,6 +6102,818 @@ </field> </table> </folder> + <folder> + <attribs> + <attrib name="name">Statistics</attrib> + </attribs> + <modsConfig/> + <table> + <vars> + <list> + <header> + <elem>name</elem> + <elem>type</elem> + <elem>value</elem> + <elem>descr</elem> + </header> + </list> + </vars> + <triggers/> + <rules/> + <attribs> + <attrib name="comment"/> + <attrib name="name">Requests</attrib> + <attrib name="id">70793</attrib> + <attrib name="schema"/> + <attrib name="tempPK"/> + <attrib name="tempFK"/> + <attrib name="tempOther"/> + <attrib name="sqlCommands"/> + </attribs> + <modsConfig> + <SqlGenModule> + <stdSql> + <idx type="l"> + <list> + <header> + <elem type="i">id</elem> + <elem type="s">index</elem> + <elem type="s">name</elem> + </header> + <row> + <elem>61528</elem> + <elem>Idx1</elem> + <elem/> + </row> + <row> + <elem>63909</elem> + <elem>Idx2</elem> + <elem/> + </row> + <row> + <elem>74439</elem> + <elem>Idx3</elem> + <elem/> + </row> + <row> + <elem>74440</elem> + <elem>Idx4</elem> + <elem/> + </row> + </list> + </idx> + </stdSql> + <oraSql> + <idx type="l"> + <list> + <header> + <elem type="i">id</elem> + <elem type="s">index</elem> + <elem type="s">name</elem> + <elem type="i">ts</elem> + <elem type="b">bitmap</elem> + <elem type="b">stats</elem> + <elem type="b">noSort</elem> + </header> + <row> + <elem>61528</elem> + <elem>Idx1</elem> + <elem/> + <elem>0</elem> + <elem>false</elem> + <elem>false</elem> + <elem>false</elem> + </row> + <row> + <elem>63909</elem> + <elem>Idx2</elem> + <elem/> + <elem>0</elem> + <elem>false</elem> + <elem>false</elem> + <elem>false</elem> + </row> + <row> + <elem>74439</elem> + <elem>Idx3</elem> + <elem/> + <elem>0</elem> + <elem>false</elem> + <elem>false</elem> + <elem>false</elem> + </row> + <row> + <elem>74440</elem> + <elem>Idx4</elem> + <elem/> + <elem>0</elem> + <elem>false</elem> + <elem>false</elem> + <elem>false</elem> + </row> + </list> + </idx> + </oraSql> + <mckoiSql> + <idx type="l"> + <list> + <header> + <elem type="i">id</elem> + <elem type="s">index</elem> + <elem type="s">name</elem> + </header> + <row> + <elem>61528</elem> + <elem>Idx1</elem> + <elem/> + </row> + <row> + <elem>63909</elem> + <elem>Idx2</elem> + <elem/> + </row> + <row> + <elem>74439</elem> + <elem>Idx3</elem> + <elem/> + </row> + <row> + <elem>74440</elem> + <elem>Idx4</elem> + <elem/> + </row> + </list> + </idx> + </mckoiSql> + <pgSql> + <idx type="l"> + <list> + <header> + <elem type="i">id</elem> + <elem type="s">index</elem> + <elem type="s">name</elem> + <elem type="s">access</elem> + <elem type="s">where</elem> + </header> + <row> + <elem>61528</elem> + <elem>Idx1</elem> + <elem/> + <elem>default</elem> + <elem/> + </row> + <row> + <elem>63909</elem> + <elem>Idx2</elem> + <elem/> + <elem>default</elem> + <elem/> + </row> + <row> + <elem>74439</elem> + <elem>Idx3</elem> + <elem/> + <elem>default</elem> + <elem/> + </row> + <row> + <elem>74440</elem> + <elem>Idx4</elem> + <elem/> + <elem>default</elem> + <elem/> + </row> + </list> + </idx> + </pgSql> + </SqlGenModule> + </modsConfig> + <field> + <fieldAttribs> + <attribs> + <attrib name="74439">false</attrib> + <attrib name="63909">false</attrib> + <attrib name="54374"/> + <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> + <attrib name="17">false</attrib> + <attrib name="15">true</attrib> + <attrib name="340">false</attrib> + </attribs> + </fieldAttribs> + <attribs> + <attrib name="comment"/> + <attrib name="matchType">s</attrib> + <attrib name="refField">0</attrib> + <attrib name="name">id</attrib> + <attrib name="id">72118</attrib> + <attrib name="onDelete">n</attrib> + <attrib name="onUpdate">n</attrib> + <attrib name="refTable">0</attrib> + <attrib name="type">8</attrib> + </attribs> + <modsConfig/> + </field> + <field> + <fieldAttribs> + <attribs> + <attrib name="74439">false</attrib> + <attrib name="63909">false</attrib> + <attrib name="54374"/> + <attrib name="61528">true</attrib> + <attrib name="74440">false</attrib> + <attrib name="17">false</attrib> + <attrib name="15">false</attrib> + <attrib name="340">false</attrib> + </attribs> + </fieldAttribs> + <attribs> + <attrib name="comment"/> + <attrib name="matchType">s</attrib> + <attrib name="refField">0</attrib> + <attrib name="name">requestDate</attrib> + <attrib name="id">70813</attrib> + <attrib name="onDelete">n</attrib> + <attrib name="onUpdate">n</attrib> + <attrib name="refTable">0</attrib> + <attrib name="type">51552</attrib> + </attribs> + <modsConfig/> + </field> + <field> + <fieldAttribs> + <attribs> + <attrib name="74439">false</attrib> + <attrib name="63909">true</attrib> + <attrib name="54374"/> + <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> + <attrib name="17">false</attrib> + <attrib name="15">false</attrib> + <attrib name="340">false</attrib> + </attribs> + </fieldAttribs> + <attribs> + <attrib name="comment"/> + <attrib name="matchType">s</attrib> + <attrib name="refField">0</attrib> + <attrib name="name">ip</attrib> + <attrib name="id">70995</attrib> + <attrib name="onDelete">n</attrib> + <attrib name="onUpdate">n</attrib> + <attrib name="refTable">0</attrib> + <attrib name="type">56637</attrib> + </attribs> + <modsConfig/> + </field> + <field> + <fieldAttribs> + <attribs> + <attrib name="74439">false</attrib> + <attrib name="63909">false</attrib> + <attrib name="54374"/> + <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> + <attrib name="17">false</attrib> + <attrib name="15">false</attrib> + <attrib name="340">false</attrib> + </attribs> + </fieldAttribs> + <attribs> + <attrib name="comment"/> + <attrib name="matchType">s</attrib> + <attrib name="refField">0</attrib> + <attrib name="name">query</attrib> + <attrib name="id">71178</attrib> + <attrib name="onDelete">n</attrib> + <attrib name="onUpdate">n</attrib> + <attrib name="refTable">0</attrib> + <attrib name="type">52596</attrib> + </attribs> + <modsConfig/> + </field> + <field> + <fieldAttribs> + <attribs> + <attrib name="74439">true</attrib> + <attrib name="63909">false</attrib> + <attrib name="54374"/> + <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> + <attrib name="17">false</attrib> + <attrib name="15">false</attrib> + <attrib name="340">false</attrib> + </attribs> + </fieldAttribs> + <attribs> + <attrib name="comment"/> + <attrib name="matchType">s</attrib> + <attrib name="refField">0</attrib> + <attrib name="name">hits</attrib> + <attrib name="id">72117</attrib> + <attrib name="onDelete">n</attrib> + <attrib name="onUpdate">n</attrib> + <attrib name="refTable">0</attrib> + <attrib name="type">5</attrib> + </attribs> + <modsConfig/> + </field> + <field> + <fieldAttribs> + <attribs> + <attrib name="74439">false</attrib> + <attrib name="63909">false</attrib> + <attrib name="54374"/> + <attrib name="61528">false</attrib> + <attrib name="74440">true</attrib> + <attrib name="17">false</attrib> + <attrib name="15">false</attrib> + <attrib name="340">false</attrib> + </attribs> + </fieldAttribs> + <attribs> + <attrib name="comment"/> + <attrib name="matchType">s</attrib> + <attrib name="refField">0</attrib> + <attrib name="name">lang</attrib> + <attrib name="id">72119</attrib> + <attrib name="onDelete">n</attrib> + <attrib name="onUpdate">n</attrib> + <attrib name="refTable">0</attrib> + <attrib name="type">56729</attrib> + </attribs> + <modsConfig/> + </field> + <field> + <fieldAttribs> + <attribs> + <attrib name="63909">false</attrib> + <attrib name="74439">false</attrib> + <attrib name="54374"/> + <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> + <attrib name="17">false</attrib> + <attrib name="15">false</attrib> + <attrib name="340">false</attrib> + </attribs> + </fieldAttribs> + <attribs> + <attrib name="comment"/> + <attrib name="matchType">s</attrib> + <attrib name="refField">0</attrib> + <attrib name="name">sortBy</attrib> + <attrib name="id">74662</attrib> + <attrib name="onDelete">n</attrib> + <attrib name="onUpdate">n</attrib> + <attrib name="refTable">0</attrib> + <attrib name="type">56637</attrib> + </attribs> + <modsConfig/> + </field> + <field> + <fieldAttribs> + <attribs> + <attrib name="63909">false</attrib> + <attrib name="74439">false</attrib> + <attrib name="54374"/> + <attrib name="61528">false</attrib> + <attrib name="74440">false</attrib> + <attrib name="17">false</attrib> + <attrib name="15">false</attrib> + <attrib name="340">false</attrib> + </attribs> + </fieldAttribs> + <attribs> + <attrib name="comment"/> + <attrib name="matchType">s</attrib> + <attrib name="refField">0</attrib> + <attrib name="name">spatialFilter</attrib> + <attrib name="id">74663</attrib> + <attrib name="onDelete">n</attrib> + <attrib name="onUpdate">n</attrib> + <attrib name="refTable">0</attrib> + <attrib name="type">52596</attrib> + </attribs> + <modsConfig/> + </field> + </table> + <table> + <vars> + <list> + <header> + <elem>name</elem> + <elem>type</elem> + <elem>value</elem> + <elem>descr</elem> + </header> + </list> + </vars> + <triggers/> + <rules/> + <attribs> + <attrib name="comment"/> + <attrib name="name">Params</attrib> + <attrib name="id">70804</attrib> + <attrib name="schema"/> + <attrib name="tempPK"/> + <attrib name="tempFK"/> + <attrib name="tempOther"/> + <attrib name="sqlCommands"/> + </attribs> + <modsConfig> + <SqlGenModule> + <stdSql> + <idx type="l"> + <list> + <header> + <elem type="i">id</elem> + <elem type="s">index</elem> + <elem type="s">name</elem> + </header> + <row> + <elem>61528</elem> + <elem>Idx1</elem> + <elem/> + </row> + <row> + <elem>63909</elem> + <elem>Idx2</elem> + <elem/> + </row> + <row> + <elem>74439</elem> + <elem>Idx3</elem> + <elem/> + </row> + <row> + <elem>74440</elem> + <elem>Idx4</elem> + <elem/> + </row> + </list> + </idx> + </stdSql> + <oraSql> + <idx type="l"> + <list> + <header> + <elem type="i">id</elem> + <elem type="s">index</elem> + <elem type="s">name</elem> + <elem type="i">ts</elem> + <elem type="b">bitmap</elem> + <elem type="b">stats</elem> + <elem type="b">noSort</elem> + </header> + <row> + <elem>61528</elem> + <elem>Idx1</elem> + <elem/> + <elem>0</elem> + <elem>false</elem> + <elem>false</elem> + <elem>false</elem> + </row> + <row> + <elem>63909</elem> + <elem>Idx2</elem> + <elem/> + <elem>0</elem> + <elem>false</elem> + <elem>false</elem> + <elem>false</elem> + </row> + <row> + <elem>74439</elem> + <elem>Idx3</elem> + <elem/> + <elem>0</elem> + <elem>false</elem> + <elem>false</elem> + <elem>false</elem> + </row> + <row> + <elem>74440</elem> + <elem>Idx4</elem> + <elem/> + <elem>0</elem> + <elem>false</elem> + <elem>false</elem> + <elem>false</elem> + </row> + </list> + </idx> + </oraSql> + <mckoiS... [truncated message content] |
From: <jes...@us...> - 2009-01-12 09:33:38
|
Revision: 1932 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1932&view=rev Author: jesseeichar Date: 2009-01-12 09:33:27 +0000 (Mon, 12 Jan 2009) Log Message: ----------- added messed up revision 1919 Revision Links: -------------- http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1919&view=rev Modified Paths: -------------- sandbox/geocat.ch/trunk/src/org/fao/geonet/constants/Edit.java sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/DataManager.java sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/csw/services/getrecords/CatalogSearcher.java sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/search/LuceneSearcher.java sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/summaryConfig.xml sandbox/geocat.ch/trunk/web/geonetwork/loc/deu/xml/strings.xml sandbox/geocat.ch/trunk/web/geonetwork/loc/fra/xml/strings.xml sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19115/index-fields.xsl sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139/index-fields.xsl sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139/language-index-fields.xsl sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139.che/index-fields.xsl sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139.che/language-index-fields.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/banner.xsl Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/constants/Edit.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/constants/Edit.java 2009-01-12 07:44:08 UTC (rev 1931) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/constants/Edit.java 2009-01-12 09:33:27 UTC (rev 1932) @@ -91,7 +91,8 @@ public static final String DOWNLOAD = "download"; public static final String DYNAMIC = "dynamic"; public static final String FEATURED = "featured"; - public static final String VIEW = "view"; + public static final String VIEW = "view"; + public static final String GROUPOWNER = "groupowner"; } } Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/DataManager.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/DataManager.java 2009-01-12 07:44:08 UTC (rev 1931) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/DataManager.java 2009-01-12 09:33:27 UTC (rev 1932) @@ -1884,7 +1884,7 @@ Dbms dbms = (Dbms) context.getResourceManager().open(Geonet.Res.MAIN_DB); String query ="SELECT schemaId, createDate, changeDate, source, isTemplate, title, "+ - "uuid, isHarvested, harvestUuid, popularity, rating FROM Metadata WHERE id = " + id; + "uuid, isHarvested, harvestUuid, popularity, rating, groupowner FROM Metadata WHERE id = " + id; // add Metadata table infos: schemaId, createDate, changeDate, source, Element rec = dbms.select(query).getChild("record"); @@ -1899,7 +1899,8 @@ String isHarvested= rec.getChildText("isharvested"); String harvestUuid= rec.getChildText("harvestuuid"); String popularity = rec.getChildText("popularity"); - String rating = rec.getChildText("rating"); + String rating = rec.getChildText("rating"); + String groupowner = rec.getChildText("groupowner"); Element info = new Element(Edit.RootChild.INFO, Edit.NAMESPACE); @@ -1913,7 +1914,8 @@ addElement(info, Edit.Info.Elem.UUID, uuid); addElement(info, Edit.Info.Elem.IS_HARVESTED,isHarvested); addElement(info, Edit.Info.Elem.POPULARITY, popularity); - addElement(info, Edit.Info.Elem.RATING, rating); + addElement(info, Edit.Info.Elem.RATING, rating); + addElement(info, Edit.Info.Elem.GROUPOWNER, groupowner); if (isHarvested.equals("y")) info.addContent(harvestMan.getHarvestInfo(harvestUuid, id, uuid)); Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/csw/services/getrecords/CatalogSearcher.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/csw/services/getrecords/CatalogSearcher.java 2009-01-12 07:44:08 UTC (rev 1931) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/csw/services/getrecords/CatalogSearcher.java 2009-01-12 09:33:27 UTC (rev 1932) @@ -215,7 +215,7 @@ { if (elem.getName().equals("TermQuery")) { String field = elem.getAttributeValue("fld"); - if (!field.equals("keyword")) { // Quick fix for keyword but should be for all non tokenized field + if (!field.equals("keyword") && !field.equals("_orgName")) { // Quick fix for keyword but should be for all non tokenized field String text = elem.getAttributeValue("txt"); if (text.indexOf(" ") != -1) { Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/search/LuceneSearcher.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/search/LuceneSearcher.java 2009-01-12 07:44:08 UTC (rev 1931) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/search/LuceneSearcher.java 2009-01-12 09:33:27 UTC (rev 1932) @@ -618,7 +618,7 @@ */ private static final String processToken(String string, String field) { - if (field.equals("keyword")) // Quick fix for keyword but should be for all non tokenized field + if (field.equals("keyword") || field.equals("_orgName")) // Quick fix for keyword but should be for all non tokenized field return string; else return removeAccents(string).toLowerCase(); Modified: sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/summaryConfig.xml =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/summaryConfig.xml 2009-01-12 07:44:08 UTC (rev 1931) +++ sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/summaryConfig.xml 2009-01-12 09:33:27 UTC (rev 1932) @@ -1,6 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> <summary> +<!-- All items specified in a summarz MUST have a non tokeniyed field in the + lucene index. Indeed the search is made on the exact value from the client side. + Once added to summary config. you have to edit he JS refine search title --> <def> <hits /> <results> @@ -19,7 +22,7 @@ <item name="spatialRepresentation" plural="spatialRepresentations" indexKey="spatialRepresentation" type="string" order="freq" max="10" /> <item name="organizationName" plural="organizationNames" - indexKey="orgName" order="freq" type="string" max="10" /> + indexKey="_orgName" order="freq" type="string" max="10" /> <item name="group" plural="groups" indexKey="_groupOwnerName" order="freq" type="string" max="10" /> <item name="serviceType" plural="serviceTypes" indexKey="serviceType" Modified: sandbox/geocat.ch/trunk/web/geonetwork/loc/deu/xml/strings.xml =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/loc/deu/xml/strings.xml 2009-01-12 07:44:08 UTC (rev 1931) +++ sandbox/geocat.ch/trunk/web/geonetwork/loc/deu/xml/strings.xml 2009-01-12 09:33:27 UTC (rev 1932) @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <strings> + <refineSearch.title>TODO</refineSearch.title> <parent>View parent metadata</parent> <userdetails>User details</userdetails> <publicaccess>Allow user to be used in metadata records</publicaccess> Modified: sandbox/geocat.ch/trunk/web/geonetwork/loc/fra/xml/strings.xml =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/loc/fra/xml/strings.xml 2009-01-12 07:44:08 UTC (rev 1931) +++ sandbox/geocat.ch/trunk/web/geonetwork/loc/fra/xml/strings.xml 2009-01-12 09:33:27 UTC (rev 1932) @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <strings> + <refineSearch.title>Précisez votre recherche</refineSearch.title> <parent>Consulter la fiche du parent</parent> <userdetails>User details</userdetails> <publicaccess>Allow user to be used in metadata records</publicaccess> Modified: sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19115/index-fields.xsl =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19115/index-fields.xsl 2009-01-12 07:44:08 UTC (rev 1931) +++ sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19115/index-fields.xsl 2009-01-12 09:33:27 UTC (rev 1932) @@ -79,7 +79,8 @@ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <!-- === Responsible organization === --> <xsl:for-each select="/Metadata/mdContact/rpOrgName"> - <Field name="orgName" string="{string(.)}" store="true" index="true" token="true"/> + <Field name="orgName" string="{string(.)}" store="true" index="true" token="true"/> + <Field name="_orgName" string="{string(.)}" store="true" index="true" token="false"/> </xsl:for-each> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> Modified: sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139/index-fields.xsl =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139/index-fields.xsl 2009-01-12 07:44:08 UTC (rev 1931) +++ sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139/index-fields.xsl 2009-01-12 09:33:27 UTC (rev 1932) @@ -162,7 +162,8 @@ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <xsl:for-each select="gmd:pointOfContact/gmd:CI_ResponsibleParty/gmd:organisationName/gco:CharacterString"> - <Field name="orgName" string="{string(.)}" store="true" index="true" token="true"/> + <Field name="orgName" string="{string(.)}" store="true" index="true" token="true"/> + <Field name="_orgName" string="{string(.)}" store="true" index="true" token="false"/> </xsl:for-each> <xsl:for-each select="gmd:pointOfContact/gmd:CI_ResponsibleParty/gmd:individualName/gco:CharacterString"> <Field name="creator" string="{string(.)}" store="true" index="true" token="true"/> Modified: sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139/language-index-fields.xsl =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139/language-index-fields.xsl 2009-01-12 07:44:08 UTC (rev 1931) +++ sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139/language-index-fields.xsl 2009-01-12 09:33:27 UTC (rev 1932) @@ -180,7 +180,8 @@ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <xsl:for-each select="gmd:pointOfContact/gmd:CI_ResponsibleParty/gmd:organisationName//gmd:LocalisedCharacterString[@locale=$langId]"> - <Field name="orgName" string="{string(.)}" store="true" index="true" token="true"/> + <Field name="orgName" string="{string(.)}" store="true" index="true" token="true"/> + <Field name="_orgName" string="{string(.)}" store="true" index="true" token="false"/> </xsl:for-each> <xsl:for-each select="gmd:pointOfContact/gmd:CI_ResponsibleParty/gmd:individualName/gco:CharacterString| gmd:pointOfContact/gmd:CI_ResponsibleParty/gmd:individualFirstName/gco:CharacterString| Modified: sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139.che/index-fields.xsl =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139.che/index-fields.xsl 2009-01-12 07:44:08 UTC (rev 1931) +++ sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139.che/index-fields.xsl 2009-01-12 09:33:27 UTC (rev 1932) @@ -172,7 +172,8 @@ <xsl:for-each select="gmd:pointOfContact/gmd:CI_ResponsibleParty/gmd:organisationName/gco:CharacterString| gmd:pointOfContact/che:CHE_CI_ResponsibleParty/gmd:organisationName/gco:CharacterString"> - <Field name="orgName" string="{string(.)}" store="true" index="true" token="true"/> + <Field name="orgName" string="{string(.)}" store="true" index="true" token="true"/> + <Field name="_orgName" string="{string(.)}" store="true" index="true" token="false"/> </xsl:for-each> <xsl:for-each select="gmd:pointOfContact/gmd:CI_ResponsibleParty/gmd:individualName/gco:CharacterString| gmd:pointOfContact/che:CHE_CI_ResponsibleParty/gmd:individualFirstName/gco:CharacterString| Modified: sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139.che/language-index-fields.xsl =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139.che/language-index-fields.xsl 2009-01-12 07:44:08 UTC (rev 1931) +++ sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/iso19139.che/language-index-fields.xsl 2009-01-12 09:33:27 UTC (rev 1932) @@ -181,7 +181,8 @@ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <xsl:for-each select="gmd:pointOfContact/gmd:CI_ResponsibleParty/gmd:organisationName//gmd:LocalisedCharacterString[@locale=$langId]"> - <Field name="orgName" string="{string(.)}" store="true" index="true" token="true"/> + <Field name="orgName" string="{string(.)}" store="true" index="true" token="true"/> + <Field name="_orgName" string="{string(.)}" store="true" index="true" token="false"/> </xsl:for-each> <xsl:for-each select="gmd:pointOfContact/gmd:CI_ResponsibleParty/gmd:individualName/gco:CharacterString| gmd:pointOfContact/che:CHE_CI_ResponsibleParty/gmd:individualFirstName/gco:CharacterString| Modified: sandbox/geocat.ch/trunk/web/geonetwork/xsl/banner.xsl =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/xsl/banner.xsl 2009-01-12 07:44:08 UTC (rev 1931) +++ sandbox/geocat.ch/trunk/web/geonetwork/xsl/banner.xsl 2009-01-12 09:33:27 UTC (rev 1932) @@ -21,8 +21,15 @@ <!-- buttons --> <tr class="banner"> <td class="banner-menu"> - <a class="banner" href="geocat"><xsl:value-of select="/root/gui/strings/home"/></a> - | + <xsl:choose> + <xsl:when test="/root/gui/reqService='geocat' or /root/gui/reqService='user.login' or /root/gui/reqService='user.logout'"> + <font class="banner-active"><xsl:value-of select="/root/gui/strings/home"/></font> + </xsl:when> + <xsl:otherwise> + <a class="banner" href="geocat"><xsl:value-of select="/root/gui/strings/home"/></a> + </xsl:otherwise> + </xsl:choose> + | <xsl:if test="string(/root/gui/session/userId)!=''"> <xsl:choose> <xsl:when test="/root/gui/reqService='admin'"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jes...@us...> - 2009-01-12 14:25:54
|
Revision: 1935 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1935&view=rev Author: jesseeichar Date: 2009-01-12 14:25:48 +0000 (Mon, 12 Jan 2009) Log Message: ----------- update ignores Modified Paths: -------------- sandbox/geocat.ch/trunk/.classpath sandbox/geocat.ch/trunk/.gitignore Modified: sandbox/geocat.ch/trunk/.classpath =================================================================== --- sandbox/geocat.ch/trunk/.classpath 2009-01-12 11:48:06 UTC (rev 1934) +++ sandbox/geocat.ch/trunk/.classpath 2009-01-12 14:25:48 UTC (rev 1935) @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="src"/> + <classpathentry kind="src" path="jeeves/src"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> <classpathentry exported="true" kind="lib" path="jeeves/lib/avalon-framework-4.2.0.jar"/> <classpathentry exported="true" kind="lib" path="jeeves/lib/batik-all-1.6.jar"/> Modified: sandbox/geocat.ch/trunk/.gitignore =================================================================== --- sandbox/geocat.ch/trunk/.gitignore 2009-01-12 11:48:06 UTC (rev 1934) +++ sandbox/geocat.ch/trunk/.gitignore 2009-01-12 14:25:48 UTC (rev 1935) @@ -14,3 +14,8 @@ gast/log/* jetty/jcs_caching *~ +bin/log +jeeves/lib/jeeves.jar +web/geonetwork/WEB-INF/lib/geonetwork.jar +web/intermap/WEB-INF/lib/jeeves.jar + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jes...@us...> - 2009-01-12 14:26:51
|
Revision: 1936 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1936&view=rev Author: jesseeichar Date: 2009-01-12 14:26:45 +0000 (Mon, 12 Jan 2009) Log Message: ----------- xlink cache changed to the JCS cache Modified Paths: -------------- sandbox/geocat.ch/trunk/jeeves/src/jeeves/xlink/Processor.java sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/search/spatial/SpatialFilter.java sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/cache.ccf Modified: sandbox/geocat.ch/trunk/jeeves/src/jeeves/xlink/Processor.java =================================================================== --- sandbox/geocat.ch/trunk/jeeves/src/jeeves/xlink/Processor.java 2009-01-12 14:25:48 UTC (rev 1935) +++ sandbox/geocat.ch/trunk/jeeves/src/jeeves/xlink/Processor.java 2009-01-12 14:26:45 UTC (rev 1936) @@ -1,18 +1,21 @@ package jeeves.xlink; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.net.URL; +import java.util.List; + import jeeves.utils.Xml; + +import org.apache.jcs.access.exception.CacheException; import org.apache.log4j.Logger; +import org.fao.geonet.GeonetworkJCS; import org.jdom.Content; import org.jdom.Element; import org.jdom.JDOMException; -import java.io.IOException; -import java.net.URL; -import java.util.List; -import java.util.WeakHashMap; -import java.util.concurrent.locks.Lock; -import java.util.concurrent.locks.ReentrantLock; - /** * Process XML document having XLinks to resolve, remove and detach fragments. * @@ -25,16 +28,6 @@ public class Processor { /** - * To protect {@link #xlinkCache}. - */ - private static Lock xlinkCacheLock = new ReentrantLock(); - - /** - * Cache of xlink fragments. Will be emptied if some memory is needed. - */ - private static WeakHashMap<String, CachedXLink> xlinkCache = new WeakHashMap<String, CachedXLink>(); - - /** * Action to specify to remove all children off elements having an XLink. */ private static final String ACTION_REMOVE = "remove"; @@ -51,6 +44,8 @@ private static final Logger LOGGER = Logger.getLogger(Processor.class); + private static final String XLINK_JCS = "xlink"; + /** * Process all XLinks of the input XML document. * <p/> @@ -121,10 +116,10 @@ // fragment. element.addContent(remoteFragment); - } catch (JDOMException e) { - System.out.println(e.getMessage()); - } catch (IOException e) { - System.out.println(e.getMessage()); + } catch (Exception e) { + ByteArrayOutputStream s = new ByteArrayOutputStream(); + e.printStackTrace(new PrintWriter(s)); + jeeves.utils.Log.error("jeeves.xlink.Processor", s.toString()); } // Clean all XLink related attributes @@ -151,51 +146,23 @@ } - /** - * Clear all fragments contained in current cache. - */ - public void cleanCache() { - xlinkCacheLock.lock(); - xlinkCache.clear(); - xlinkCacheLock.unlock(); - } - private static Content resolveXLink(String uri) throws IOException, - JDOMException { - xlinkCacheLock.lock(); - CachedXLink remoteFragment = xlinkCache.get(uri); + JDOMException, CacheException { + GeonetworkJCS xlinkCache = GeonetworkJCS.getInstance(XLINK_JCS); + Element remoteFragment = (Element) xlinkCache.get(uri); - if (remoteFragment == null - || System.currentTimeMillis() > remoteFragment.expiration) { - xlinkCacheLock.unlock(); + if (remoteFragment == null) { - remoteFragment = new CachedXLink(Xml.loadFile(new URL(uri - .replaceAll("&", "&")))); + remoteFragment = Xml.loadFile(new URL(uri + .replaceAll("&", "&"))); - xlinkCacheLock.lock(); xlinkCache.put(uri, remoteFragment); - xlinkCacheLock.unlock(); if (LOGGER.isDebugEnabled()) LOGGER.debug("cache miss for " + uri); - } else { - xlinkCacheLock.unlock(); - - if (LOGGER.isDebugEnabled()) - LOGGER.debug("cache hit for " + uri); } - - return (Element) remoteFragment.content.clone(); + + return (Element) remoteFragment.clone(); } - private static class CachedXLink { - private Element content; - private long expiration; - private static final int EXPIRATION_MILLI = 60000; - - public CachedXLink(Element element) { - content = element; - expiration = System.currentTimeMillis() + EXPIRATION_MILLI; - } - } } Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/search/spatial/SpatialFilter.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/search/spatial/SpatialFilter.java 2009-01-12 14:25:48 UTC (rev 1935) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/search/spatial/SpatialFilter.java 2009-01-12 14:26:45 UTC (rev 1936) @@ -45,6 +45,7 @@ public abstract class SpatialFilter extends Filter { + private static final String SPATIAL_FILTER_JCS = "SpatialFilterCache"; private static final long serialVersionUID = -6221744013750827050L; private static SimpleFeatureType FEATURE_TYPE; @@ -126,7 +127,7 @@ private BitSet applySpatialFilter(Set<FeatureId> matches, Map<FeatureId, Integer> docIndexLookup, BitSet bits) throws IOException, CacheException { - GroupCacheAccess jcs = GeonetworkJCS.getInstance("SpatialFilterCache"); + GroupCacheAccess jcs = GeonetworkJCS.getInstance(SPATIAL_FILTER_JCS); processCachedFeatures(jcs, matches, docIndexLookup, bits); Id fidFilter = _filterFactory.id(matches); Modified: sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/cache.ccf =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/cache.ccf 2009-01-12 14:25:48 UTC (rev 1935) +++ sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/cache.ccf 2009-01-12 14:26:45 UTC (rev 1936) @@ -16,6 +16,18 @@ jcs.auxiliary.DC.attributes.DiskPath=jcs_caching +# XLink cache +jcs.region.xlink=DC +jcs.region.xlink.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes +jcs.region.xlink.cacheattributes.MaxObjects=10000 +jcs.region.xlink.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache +jcs.region.xlink.elementattributes.IsEternal=false +jcs.region.xlink.elementattributes.MaxLifeSeconds=60000 +jcs.region.xlink.elementattributes.IdleTime=1800 +jcs.region.xlink.elementattributes.IsSpool=true +jcs.region.xlink.elementattributes.IsRemote=true +jcs.region.xlink.elementattributes.IsLateral=true + # SPATIAL Filter FEATURE CACHING jcs.region.SpatialFilterCache=DC jcs.region.SpatialFilterCache.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxp...@us...> - 2009-01-12 16:13:33
|
Revision: 1937 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1937&view=rev Author: fxprunayre Date: 2009-01-12 16:13:26 +0000 (Mon, 12 Jan 2009) Log Message: ----------- Fixed thesaurus manager to support iso3code instead of iso2code. Added support to ids defined as url without #id like GEMET thesaurus does. Modified Paths: -------------- sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/search/KeywordsSearcher.java sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/thesaurus/skos/Concept.java sandbox/geocat.ch/trunk/web/geonetwork/xsl/thesaurus-edit-element.xsl Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/search/KeywordsSearcher.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/search/KeywordsSearcher.java 2009-01-12 14:26:45 UTC (rev 1936) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/search/KeywordsSearcher.java 2009-01-12 16:13:26 UTC (rev 1937) @@ -136,6 +136,9 @@ public Concept searchById(String id, String sThesaurusName, String lang) throws Exception { + if (lang.length()>2) + lang=lang.substring(0, 2); + _query = "SELECT prefLab, note, id, lowc, uppc " + " FROM {id} rdf:type {skos:Concept}; " + " skos:prefLabel {prefLab};" @@ -246,7 +249,7 @@ // This will cause multilingual metadata search quite complex !! // Quid Lucene and thesaurus ? - String _lang = srvContext.getLanguage(); + String _lang = srvContext.getLanguage().substring(0, 2); _query = "SELECT prefLab, note, id, lowc, uppc " + " FROM {id} rdf:type {skos:Concept}; " + " skos:prefLabel {prefLab};" @@ -271,7 +274,7 @@ } _query += " IGNORE CASE " + " USING NAMESPACE skos=<" + Concept.NS_SKOS + ">, gml=<" + Concept.NS_GML + "> "; - + System.out.println (_query); } @@ -366,6 +369,8 @@ Thesaurus thesaurus = _tm.getThesaurusByName(sThesaurusName); _results = new ArrayList<Concept>(); + if (_lang.length()>2) + _lang=_lang.substring(0, 2); String _query = "SELECT prefLab, note, id " + " from {id} rdf:type {skos:Concept};" @@ -377,6 +382,8 @@ + " IGNORE CASE " + " USING NAMESPACE skos=<" + Concept.NS_SKOS + ">, gml=<" + Concept.NS_GML + "> "; + System.out.println(_query); + // Perform request QueryResultsTable resultsTable = thesaurus.performRequest(_query); Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/thesaurus/skos/Concept.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/thesaurus/skos/Concept.java 2009-01-12 14:26:45 UTC (rev 1936) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/thesaurus/skos/Concept.java 2009-01-12 16:13:26 UTC (rev 1937) @@ -177,23 +177,37 @@ this.id = id; } - /* + /** * return the URI of the keyword concept */ public String getCode() { return rdf_about; } + /** + * If no #id element relative code is URL + * with no namespace. + * + * @return + */ public String getRelativeCode() { - String tmpres = rdf_about; - String res = tmpres.split("#")[1]; - return res; + if (rdf_about.contains("#")) + return rdf_about.split("#")[1]; + else + return rdf_about; } + /** + * Namespace is only defined if code pattern is + * using ID. For example, GEMET is not using it. + * + * @return + */ public String getNameSpaceCode() { - String tmpres = rdf_about; - String res = tmpres.split("#")[0] + "#"; - return res; + if (rdf_about.contains("#")) + return rdf_about.split("#")[0] + "#"; + else + return ""; } public void setCode(String code) { Modified: sandbox/geocat.ch/trunk/web/geonetwork/xsl/thesaurus-edit-element.xsl =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/xsl/thesaurus-edit-element.xsl 2009-01-12 14:26:45 UTC (rev 1936) +++ sandbox/geocat.ch/trunk/web/geonetwork/xsl/thesaurus-edit-element.xsl 2009-01-12 16:13:26 UTC (rev 1937) @@ -189,16 +189,18 @@ <input class="md" name="prefLab" id="prefLab" type="text"> <xsl:attribute name="value"><xsl:value-of select="/root/response/prefLab"/></xsl:attribute> </input>  + <select class="md" name="lang" id="lang" type="text"> <xsl:for-each select="/root/gui/languages/record"> <xsl:variable name="langId" select="id"/> <xsl:if test="$langId = /root/gui/language"> + <!-- TODO : Add multilingual thesaurus editing. Actually, Geonetwork provide only editing in the current GUI interface language --> <option> - <xsl:attribute name="selected"><xsl:value-of select="$langId"/></xsl:attribute> - <xsl:attribute name="value"><xsl:value-of select="$langId"/></xsl:attribute> - <xsl:value-of select="/root/gui/strings/child::*[name() = $langId]"/> + <xsl:attribute name="selected">selected</xsl:attribute> + <xsl:attribute name="value"><xsl:value-of select="substring($langId, 1, 2)"/></xsl:attribute> + <xsl:value-of select="name"/> </option> </xsl:if> </xsl:for-each> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxp...@us...> - 2009-01-13 13:03:01
|
Revision: 1944 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1944&view=rev Author: fxprunayre Date: 2009-01-13 13:02:55 +0000 (Tue, 13 Jan 2009) Log Message: ----------- Added support for multilingual prefLabel in keywords. Use logger instead of system.out in ThesaurusManager. Modified Paths: -------------- sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/search/KeywordsSearcher.java sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/thesaurus/skos/Concept.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/thesaurus/EditElement.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/thesaurus/GetKeywordById.java sandbox/geocat.ch/trunk/web/geonetwork/scripts/ed.js sandbox/geocat.ch/trunk/web/geonetwork/xsl/metadata-edit.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/skos-to-iso.xsl Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/search/KeywordsSearcher.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/search/KeywordsSearcher.java 2009-01-13 12:39:47 UTC (rev 1943) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/search/KeywordsSearcher.java 2009-01-13 13:02:55 UTC (rev 1944) @@ -33,7 +33,9 @@ import jeeves.server.context.ServiceContext; import jeeves.utils.Util; +import jeeves.utils.Log; +import org.fao.geonet.constants.Geonet; import org.fao.geonet.kernel.thesaurus.Thesaurus; import org.fao.geonet.kernel.thesaurus.ThesaurusManager; import org.fao.geonet.kernel.thesaurus.skos.Concept; @@ -112,34 +114,41 @@ + " USING NAMESPACE skos=<" + Concept.NS_SKOS + ">, gml=<" + Concept.NS_GML + "> "; Thesaurus thesaurus = _tm.getThesaurusByName(sThesaurusName); - System.out.println (_query); - System.out.println (thesaurus.getFile()); + Log.debug(Geonet.THESAURUS_MAN, "GetConcept in " + thesaurus.getFile() + ":" + _query); + // Perform request Graph c = thesaurus.performGraphRequest(_query); - System.out.println (c.toString()); StatementIterator s = c.getStatements(); while (s.hasNext()) { Statement st = s.next(); - System.out.println("======" + st.toString() + " " + st.getPredicate().toString()); if (st.getObject() instanceof BNode) { BNode node = (BNode) st.getObject(); - System.out.println("======" + node.toString()); } } return null; } - public Concept searchById(String id, String sThesaurusName, String lang) + public Concept searchById(String id, String sThesaurusName, String lang, String locales) throws Exception { +<<<<<<< .mine + String[] langs = locales.split(","); + if (lang.length()>2) lang=lang.substring(0, 2); + // Get keyword in main language + _query = "SELECT prefLab, note, id, lowc, uppc, lang(prefLab) " +======= + if (lang.length()>2) + lang=lang.substring(0, 2); + _query = "SELECT prefLab, note, id, lowc, uppc " +>>>>>>> .r1943 + " FROM {id} rdf:type {skos:Concept}; " + " skos:prefLabel {prefLab};" + " [skos:scopeNote {note} WHERE lang(note) LIKE \""+lang+"\"]; " @@ -155,32 +164,42 @@ // Perform request QueryResultsTable resultsTable = thesaurus.performRequest(_query); int rowCount = resultsTable.getRowCount(); - int idKeyword = 0; if (rowCount == 0){ return null; }else{ - // MUST be one because search by ID - - // preflab Value value = resultsTable.getValue(0, 0); - String sValue = ""; - if (value != null) { - sValue = value.toString(); - } - -// uri (= id in RDF file != id in list) Value uri = resultsTable.getValue(0, 2); - String sUri = ""; - if (uri != null) { - sUri = uri.toString(); + + Concept kb = new Concept(0, + (value==null?"":value.toString()), + "", + (uri==null?"":uri.toString()), + "", "", "", "", + sThesaurusName, false, lang); + + // Add translation to keywords + if (langs.length > 1) { + for (int i=0; i<langs.length; i++) { + String locale = langs[i].toLowerCase(); + + _query = "SELECT prefLab " + + " FROM {id} rdf:type {skos:Concept}; " + + " skos:prefLabel {prefLab}" + + " WHERE lang(prefLab) LIKE \""+locale+"\" " + + " AND id LIKE \"" + id + "\" " + + " IGNORE CASE " + + " USING NAMESPACE skos=<" + Concept.NS_SKOS + ">, gml=<" + Concept.NS_GML + "> "; + Log.debug(Geonet.THESAURUS_MAN, "Searching for translation of '"+ kb.getDefaultPrefLabel() + "' in '"+ locale + "' with " + _query); + + // Perform request & add it to concept + QueryResultsTable rt = thesaurus.performRequest(_query); + int labelsCount = rt.getRowCount(); + if (labelsCount != 0) + if (rt.getValue(0, 0) != null) + kb.setPrefLabel(rt.getValue(0, 0).toString(), locale); + } } - - Concept kb = new Concept(idKeyword, sValue, - "", sUri, "", "", "", "", - sThesaurusName, false, _lang); - idKeyword++; - return kb; } @@ -190,8 +209,8 @@ throws Exception { // Get params from request and set default String sKeyword = Util.getParam(params, "pKeyword"); + String _lang = srvContext.getLanguage().substring(0, 2); - // Type of search int pTypeSearch = _pTypeSearch; if (params.getChild("pTypeSearch") != null){ // if param pTypeSearch not here @@ -249,7 +268,11 @@ // This will cause multilingual metadata search quite complex !! // Quid Lucene and thesaurus ? +<<<<<<< .mine + +======= String _lang = srvContext.getLanguage().substring(0, 2); +>>>>>>> .r1943 _query = "SELECT prefLab, note, id, lowc, uppc " + " FROM {id} rdf:type {skos:Concept}; " + " skos:prefLabel {prefLab};" @@ -274,7 +297,11 @@ } _query += " IGNORE CASE " + " USING NAMESPACE skos=<" + Concept.NS_SKOS + ">, gml=<" + Concept.NS_GML + "> "; +<<<<<<< .mine + Log.debug(Geonet.THESAURUS_MAN, _query); +======= System.out.println (_query); +>>>>>>> .r1943 } @@ -382,7 +409,7 @@ + " IGNORE CASE " + " USING NAMESPACE skos=<" + Concept.NS_SKOS + ">, gml=<" + Concept.NS_GML + "> "; - System.out.println(_query); + Log.debug(Geonet.THESAURUS_MAN, _query); // Perform request QueryResultsTable resultsTable = thesaurus.performRequest(_query); @@ -432,19 +459,19 @@ return _results.size(); } - public void sortResults(String tri) { - _sortBy = tri; - if ("label".equals(tri)) { + public void sortResults(String sort) { + _sortBy = sort; + if ("label".equals(sort)) { // sort by label Collections.sort((List) _results, new Comparator() { public int compare(final Object o1, final Object o2) { final Concept kw1 = (Concept) o1; final Concept kw2 = (Concept) o2; - return kw1.getPrefLabel().compareToIgnoreCase(kw2.getPrefLabel()); + return kw1.getDefaultPrefLabel().compareToIgnoreCase(kw2.getDefaultPrefLabel()); } }); } - if ("definition".equals(tri)) { + if ("definition".equals(sort)) { // sort by def Collections.sort((List) _results, new Comparator() { public int compare(final Object o1, final Object o2) { @@ -514,93 +541,6 @@ return elDescKeys; } - /** - * @return a collection of descKeys element describing the list of selected keywords - */ - public ArrayList getSelectedKeywordsInDescKeys() { - ArrayList listSelectedKeywords = new ArrayList(); - ArrayList listElDescKeys = new ArrayList(); - - // Get all selected keywords - for (int i=0; i<this.getNbResults(); i++){ - Concept kb = (Concept) _results.get(i); - if (kb.isSelected()) { - listSelectedKeywords.add(kb); - } - } - - // Sort keywords - Collections.sort((List) listSelectedKeywords, new Comparator() { - // Compare - public int compare(final Object o1, final Object o2) { - final Concept kw1 = (Concept) o1; - final Concept kw2 = (Concept) o2; - return kw1.getThesaurus().compareToIgnoreCase(kw2.getThesaurus()); - } - }); - - String thesaurusName =""; - Element elDescKeys = null; - Element elKeyTyp = null; - Element elKeyTypCd = null; - Element elThesaName = null; - Element elResTitle = null; - Element elResRefDate = null; - Element elRefDate = null; - Element elRefDateType = null; - Element elDateTypCd = null; - - for (int i = 0; i < listSelectedKeywords.size(); i++) { - Concept kb = (Concept) listSelectedKeywords.get(i); - if (!thesaurusName.equals(kb.getThesaurus())) { - if (elDescKeys!=null){ - elKeyTyp.addContent(elKeyTypCd); - elDescKeys.addContent(elKeyTyp); - elRefDateType.addContent(elDateTypCd); - elResRefDate.addContent(elRefDateType); - elResRefDate.addContent(elRefDate); - elThesaName.addContent(elResTitle); - elThesaName.addContent(elResRefDate); - elDescKeys.addContent(elThesaName); - listElDescKeys.add(elDescKeys.clone()); - } - elDescKeys = new Element(DESC_KEYS); - String thesaurusType = kb.getThesaurus(); - thesaurusType = thesaurusType.replace('.', '-'); - thesaurusType = thesaurusType.split("-")[1]; - elKeyTyp = new Element(KEYWORD_TYPE); - elKeyTypCd = new Element(KEY_TYP_CD); - elKeyTypCd.setAttribute(VALUE, thesaurusType); - elThesaName = new Element(THESAURUS_NAME); - elResTitle = new Element(RES_TITLE); - elResTitle.addContent(kb.getThesaurus()); - elResRefDate = new Element(RES_REF_DATE); - elRefDate = new Element(REF_DATE); - elRefDateType = new Element(REF_DATE_TYPE); - elDateTypCd = new Element(DATE_TYP_CD); - elDateTypCd.setAttribute(VALUE,"nill"); - - thesaurusName = kb.getThesaurus(); - } - Element elKeyword = new Element(KEYWORD); - elKeyword.addContent(kb.getPrefLabel()); - elDescKeys.addContent(elKeyword); - } - // add last item - if (elDescKeys!=null){ - elKeyTyp.addContent(elKeyTypCd); - elDescKeys.addContent(elKeyTyp); - elRefDateType.addContent(elDateTypCd); - elResRefDate.addContent(elRefDateType); - elResRefDate.addContent(elRefDate); - elThesaName.addContent(elResTitle); - elThesaName.addContent(elResRefDate); - elDescKeys.addContent(elThesaName); - listElDescKeys.add(elDescKeys.clone()); - } - return listElDescKeys; - } - public List getSelectedKeywordsInList() { ArrayList keywords = new ArrayList<Concept>(); for (int i = 0; i < this.getNbResults(); i++) { Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/thesaurus/skos/Concept.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/thesaurus/skos/Concept.java 2009-01-13 12:39:47 UTC (rev 1943) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/thesaurus/skos/Concept.java 2009-01-13 13:02:55 UTC (rev 1944) @@ -22,7 +22,10 @@ package org.fao.geonet.kernel.thesaurus.skos; +import java.util.HashMap; +import java.util.Iterator; import java.util.Map; +import java.util.Set; import org.jdom.Element; @@ -32,8 +35,7 @@ * external non-URI identifier (descriptor). These are usually * related to some particular thesaurus. * - * FIXME : prefLabel, scopeNote and other xs:string attributes should - * have an xml:lang attributes + * FIXME : scopeNote could be multilingual (not used in metadata) * * @author fxprunayre * @@ -42,15 +44,18 @@ private int id; /* - * Preferred label of the concept (optional, 0 or 1) (skos:prefLabel) + * Preferred label of the concept (optional, 0 or 1) (skos:prefLabel) + * with languages */ - private String prefLabel; + private HashMap<String, String> prefLabel; /* * Scope note text for describing the intended meaning (skos:scopeNote) */ private String scopeNote; + private String mainLanguage; + /* * Formal definition of the concept (skos:definition) */ @@ -93,7 +98,8 @@ String coordNorth, String thesaurus, boolean selected, String lang) { super(); this.id = id; - this.prefLabel = value; + this.prefLabel = new HashMap<String, String>(); + this.prefLabel.put(lang, value); this.scopeNote = definition; this.rdf_about = code; this.gml_coordEast = coordEast; @@ -110,12 +116,14 @@ * @param definition * @param thesaurus * @param selected + * @param lang TODO */ public Concept(int id, String value, String definition, - String thesaurus, boolean selected) { + String thesaurus, boolean selected, String lang) { super(); this.id = id; - this.prefLabel = value; + this.prefLabel = new HashMap<String, String>(); + this.prefLabel.put(lang, value); this.scopeNote = definition; this.thesaurus = thesaurus; this.selected = selected; @@ -126,11 +134,13 @@ * @param definition * @param thesaurus * @param selected + * @param lang TODO */ public Concept(String value, String definition, String thesaurus, - boolean selected) { + boolean selected, String lang) { super(); - this.prefLabel = value; + this.prefLabel = new HashMap<String, String>(); + this.prefLabel.put(lang, value); this.scopeNote = definition; this.thesaurus = thesaurus; this.selected = selected; @@ -161,14 +171,31 @@ this.thesaurus = thesaurus; } - public String getPrefLabel() { - return prefLabel; + public String getPrefLabel(String lang) { + return prefLabel.get(lang); } - public void setPrefLabel(String value) { - this.prefLabel = value; + public void setPrefLabel(String value, String lang) { + this.prefLabel.put(lang, value); } + /** + * Return prefLabel in default language or the first + * prefLabel of the keyword. + * + * @return + */ + public String getDefaultPrefLabel () { + if (prefLabel.containsKey(DEFAULT_LANG)) + return prefLabel.get(DEFAULT_LANG); + else { + Iterator iter = prefLabel.entrySet().iterator(); + Map.Entry<String, String> e = (Map.Entry<String, String>) iter.next(); + return e.getValue(); + } + + } + public int getId() { return id; } @@ -267,8 +294,19 @@ elSelected.addContent("false"); } - Element elValue = new Element("value"); - elValue.addContent(this.getPrefLabel()); + elKeyword.addContent(elId); + elKeyword.addContent(elCode); + + Iterator iter = prefLabel.entrySet().iterator(); + while (iter.hasNext()) { + Map.Entry<String, String> e = (Map.Entry<String, String>) iter.next(); + Element elValue = new Element("value"); + elValue.addContent(e.getValue()); + elValue.setAttribute("lang", e.getKey().toUpperCase()); + elKeyword.addContent(elValue); + } + + Element elDefiniton = new Element("definition"); elDefiniton.addContent(this.getScopeNote()); Element elUri = new Element("uri"); @@ -300,10 +338,7 @@ elKeyword.addContent(elBbox); } - elKeyword.addContent(elId); - elKeyword.addContent(elCode); elKeyword.addContent(elthesaurus); - elKeyword.addContent(elValue); elKeyword.addContent(elDefiniton); elKeyword.addContent(elSelected); elKeyword.addContent(elUri); Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/services/thesaurus/EditElement.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/services/thesaurus/EditElement.java 2009-01-13 12:39:47 UTC (rev 1943) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/services/thesaurus/EditElement.java 2009-01-13 13:02:55 UTC (rev 1944) @@ -81,11 +81,11 @@ ThesaurusManager thesaurusMan = gc.getThesaurusManager(); KeywordsSearcher searcher = new KeywordsSearcher(thesaurusMan); - kb = searcher.searchById(uri, ref, lang); + kb = searcher.searchById(uri, ref, lang, ""); } // Add info needed by thesaurus.edit - elResp.addContent(new Element("prefLab").setText(kb.getPrefLabel())); + elResp.addContent(new Element("prefLab").setText(kb.getPrefLabel(context.getLanguage().substring(0, 2)))); elResp.addContent(new Element("definition").setText(kb .getScopeNote())); Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/services/thesaurus/GetKeywordById.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/services/thesaurus/GetKeywordById.java 2009-01-13 12:39:47 UTC (rev 1943) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/services/thesaurus/GetKeywordById.java 2009-01-13 13:02:55 UTC (rev 1944) @@ -51,11 +51,19 @@ // --- // -------------------------------------------------------------------------- + /** + * lang parameter should be metadata main language. If not set, use GUI + * language. + * + * locales parameters is the list of locales set in metadata record. + * + */ public Element exec(Element params, ServiceContext context) throws Exception { String sThesaurusName = Util.getParam(params, "thesaurus"); String uri = Util.getParam(params, "id"); String lang = Util.getParam(params, "lang", context.getLanguage()); + String locales = Util.getParam(params, "locales", ""); Element response = new Element(Jeeves.Elem.RESPONSE); KeywordsSearcher searcher = null; @@ -67,7 +75,7 @@ searcher = new KeywordsSearcher(thesaurusMan); - Concept kb = searcher.searchById(uri, sThesaurusName, lang); + Concept kb = searcher.searchById(uri, sThesaurusName, lang, locales); if (kb == null) return response; else Modified: sandbox/geocat.ch/trunk/web/geonetwork/scripts/ed.js =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/scripts/ed.js 2009-01-13 12:39:47 UTC (rev 1943) +++ sandbox/geocat.ch/trunk/web/geonetwork/scripts/ed.js 2009-01-13 13:02:55 UTC (rev 1944) @@ -92,7 +92,9 @@ if (mode == "CONTACT") contactSetRole ($("contact.role").value); - + else if (mode == "KEYWORD") + keywordSetLocales ($("keyword.locales").value); + xl.set (); } @@ -146,15 +148,15 @@ /** * Contact specific url setting role parameter */ -function contactSetRole (role) { - if (role != "") { - var add = "&role=" + role; +function keywordSetLocales (locales) { + if (locales != "") { + var add = "&locales=" + locales; - if (xl.href.indexOf("role") != -1) - xl.href = xl.href.replace (/&role=.*/i, add); + if (xl.href.indexOf("locales") != -1) + xl.href = xl.href.replace (/&locales=.*/i, add); else xl.href += add; - + xl.set(); } } @@ -177,6 +179,20 @@ ); } +function contactSetRole (role) { + if (role != "") { + var add = "&role=" + role; + + if (xl.href.indexOf("role") != -1) + xl.href = xl.href.replace (/&role=.*/i, add); + else + xl.href += add; + + xl.set(); + } +} + + /** * Format allow search in the format table */ Modified: sandbox/geocat.ch/trunk/web/geonetwork/xsl/metadata-edit.xsl =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/xsl/metadata-edit.xsl 2009-01-13 12:39:47 UTC (rev 1943) +++ sandbox/geocat.ch/trunk/web/geonetwork/xsl/metadata-edit.xsl 2009-01-13 13:02:55 UTC (rev 1944) @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:geonet="http://www.fao.org/geonetwork"> <!-- @@ -191,6 +192,8 @@ <xsl:template name="content"> <table width="100%" height="100%"> <xsl:for-each select="/root/*[name(.)!='gui' and name(.)!='request']"> <!-- just one --> + <xsl:variable name="locales" select="//gmd:locale"/> + <tr height="100%"> <td class="blue-content" width="150" valign="top"> <xsl:call-template name="tab"> @@ -238,7 +241,9 @@ </table> </form> - <xsl:call-template name="xlinkSelector"/> + <xsl:call-template name="xlinkSelector"> + <xsl:with-param name="locales" select="$locales"/> + </xsl:call-template> <xsl:call-template name="catSearcher"/> </td> </tr> @@ -342,6 +347,8 @@ See scripts/ed.js for javascript behaviour. --> <xsl:template name="xlinkSelector"> + <xsl:param name="locales"/> + <div id="popXLink" name="popXLink" class="pop" style="display:none;"> <fieldset> <legend><xsl:value-of select="/root/gui/strings/xlink"/> <a onclick="$('popXLink').style.display = 'none';">[X]</a></legend> @@ -360,7 +367,9 @@ </form> <!-- Codelist for contact role. CI_ResponsibleParty as to defined the role - of the contact element. --> + of the contact element. + FIXME : in iso19139.che, role could be multiple. + --> <select name="contact.role" id="contact.role" onChange="contactSetRole(this.options[this.selectedIndex].value);" style="display:none;"> <xsl:for-each select="/root/gui/iso19139/codelist[@name='gmd:CI_RoleCode']/entry"> <xsl:sort select="label" order="ascending"/> @@ -370,6 +379,14 @@ </xsl:for-each> </select> + <xsl:variable name="localesValue"> + <xsl:for-each select="$locales//gmd:PT_Locale"> + <xsl:value-of select="@id"/> + <xsl:if test="position()!=last()">,</xsl:if> + </xsl:for-each> + </xsl:variable> + <input id="keyword.locales" name="keyword.locales" type="hidden" value="{$localesValue}"/> + <!-- Div to display autocompletion list of elements. --> <div id='xll' class="keywordList" ></div> Modified: sandbox/geocat.ch/trunk/web/geonetwork/xsl/skos-to-iso.xsl =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/xsl/skos-to-iso.xsl 2009-01-13 12:39:47 UTC (rev 1943) +++ sandbox/geocat.ch/trunk/web/geonetwork/xsl/skos-to-iso.xsl 2009-01-13 13:02:55 UTC (rev 1944) @@ -16,7 +16,22 @@ <xsl:for-each select="root/response/keyword"> <gmd:MD_Keywords> <gmd:keyword> - <gco:CharacterString><xsl:value-of select="value"/></gco:CharacterString> + <xsl:choose> + <xsl:when test="count(value)>1"> + <!-- multilingual keyword --> + <gmd:PT_FreeText> + <xsl:for-each select="value"> + <gmd:textGroup> + <gmd:LocalisedCharacterString locale="#{@lang}" + ><xsl:value-of select="."/></gmd:LocalisedCharacterString> + </gmd:textGroup> + </xsl:for-each> + </gmd:PT_FreeText> + </xsl:when> + <xsl:otherwise> + <gco:CharacterString><xsl:value-of select="value"/></gco:CharacterString> + </xsl:otherwise> + </xsl:choose> </gmd:keyword> <gmd:type> <!-- TODO : Theme is based on thesaurus type --> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxp...@us...> - 2009-01-13 17:35:04
|
Revision: 1950 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1950&view=rev Author: fxprunayre Date: 2009-01-13 17:34:59 +0000 (Tue, 13 Jan 2009) Log Message: ----------- Added service to export CSW response in text format. Text output could be different according to schema. Added an OWN outputSchema in CSW response if client needs metadata in the schema stored in the database. Renamed OGC_CORE and ISO_PROFILE in enum. This will cause trouble in the CSW java client but will be fixed with Mathieu in CSW improvements. Fixed allow printing results even if only one record in search results. Modified Paths: -------------- sandbox/geocat.ch/trunk/src/org/fao/geonet/csw/common/OutputSchema.java sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/csw/services/GetRecords.java sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/csw/services/getrecords/SearchController.java sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config-export.xml sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config.xml sandbox/geocat.ch/trunk/web/geonetwork/scripts/mapfishIntegration/geocat.js sandbox/geocat.ch/trunk/web/geonetwork/xml/user-profiles.xml sandbox/geocat.ch/trunk/web/geonetwork/xsl/csv-search.xsl Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/csw/common/OutputSchema.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/csw/common/OutputSchema.java 2009-01-13 16:36:46 UTC (rev 1949) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/csw/common/OutputSchema.java 2009-01-13 17:34:59 UTC (rev 1950) @@ -4,7 +4,14 @@ public enum OutputSchema { - OGC_CORE("Record"), ISO_PROFILE("IsoRecord"); + /** + * outputSchema returning metadata in records in there + * own schema which could be different for each metadata. + * Eg. dc, ogc, fgdc, ... + */ + OWN("own"), + OGC_CORE("ogc"), + ISO_PROFILE("iso"); //------------------------------------------------------------------------ @@ -19,6 +26,9 @@ public static OutputSchema parse(String schema) throws InvalidParameterValueEx { if (schema == null) return OGC_CORE; + if (schema.equals(OGC_CORE.toString())) return OGC_CORE; + if (schema.equals(ISO_PROFILE.toString())) return ISO_PROFILE; + if (schema.equals(OWN.toString())) return OWN; if (schema.equals("csw:Record")) return OGC_CORE; if (schema.equals("csw:IsoRecord")) return ISO_PROFILE; Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/csw/services/GetRecords.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/csw/services/GetRecords.java 2009-01-13 16:36:46 UTC (rev 1949) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/csw/services/GetRecords.java 2009-01-13 17:34:59 UTC (rev 1950) @@ -35,6 +35,7 @@ import jeeves.server.context.ServiceContext; import jeeves.utils.Util; import jeeves.utils.Xml; +import jeeves.utils.Log; import org.apache.lucene.search.Sort; import org.fao.geonet.constants.Geonet; @@ -119,7 +120,7 @@ if (resultType == ResultType.VALIDATE) { String schema = context.getAppPath() + Geonet.Path.VALIDATION + "csw/2.0.2/csw-2.0.2.xsd"; - System.out.println("Validating against " + schema); + Log.debug(Geonet.CSW_SEARCH, "Validating against " + schema); try { Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/csw/services/getrecords/SearchController.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/csw/services/getrecords/SearchController.java 2009-01-13 16:36:46 UTC (rev 1949) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/csw/services/getrecords/SearchController.java 2009-01-13 17:34:59 UTC (rev 1950) @@ -126,24 +126,26 @@ if (schema.contains("iso19139")) schema = "iso19139"; - //--- skip metadata with wrong schemas - if (schema.equals("fgdc-std") || schema.equals("dublin-core") || schema.equals("iso19115")) - if (outSchema != OutputSchema.OGC_CORE) - return null; - - //--- apply stylesheet according to setName and schema - - String FS = File.separator; - // TODO : add results according to gui language - String schemaDir = context.getAppPath() +"xml"+ FS +"csw"+ FS +"schemas"+ FS +schema+ FS; - String prefix = (outSchema == OutputSchema.OGC_CORE) ? "ogc" : "iso"; - String styleSheet = schemaDir + prefix +"-"+ setName +".xsl"; - - HashMap<String, String> params = new HashMap<String, String>(); - params.put("lang", context.getLanguage()); + // Return metadata in their own schema + if (outSchema != OutputSchema.OWN) { + //--- skip metadata with wrong schemas + if (schema.equals("fgdc-std") || schema.equals("dublin-core") || schema.equals("iso19115")) + if (outSchema != OutputSchema.OGC_CORE) + return null; + + //--- apply stylesheet according to setName and schema + String FS = File.separator; + // TODO : add results according to gui language + String schemaDir = context.getAppPath() +"xml"+ FS +"csw"+ FS +"schemas"+ FS +schema+ FS; + //String prefix = (outSchema == OutputSchema.OGC_CORE) ? "ogc" : "iso"; + String styleSheet = schemaDir + outSchema +"-"+ setName +".xsl"; + + HashMap<String, String> params = new HashMap<String, String>(); + params.put("lang", context.getLanguage()); + + res = Xml.transform(res, styleSheet, params); + } - res = Xml.transform(res, styleSheet, params); - //--- if the client has specified some ElementNames, then we remove the unwanted children if (elemNames != null) removeElements(res, elemNames); Modified: sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config-export.xml =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config-export.xml 2009-01-13 16:36:46 UTC (rev 1949) +++ sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config-export.xml 2009-01-13 17:34:59 UTC (rev 1950) @@ -55,18 +55,7 @@ </service> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> - <!-- CSV services --> - <service name="csv.search"> - <class name=".services.main.CsvSearch"> - <param name="fast" value="false" /> - </class> - - <output sheet="csv-search.xsl" contentType="text/plain; charset=UTF-8" /> - </service> - - <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> - </services> </geonet> Modified: sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config.xml =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config.xml 2009-01-13 16:36:46 UTC (rev 1949) +++ sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config.xml 2009-01-13 17:34:59 UTC (rev 1950) @@ -761,6 +761,9 @@ <class name=".services.main.CswDispatcher" /> </service> + <!-- Service to export a CSW query in a pdf document. + To be used with no outputSchema (ie. default ogc) to return + search result in a pdf. Replace existing pdf.search service. --> <service name="csw.pdf"> <class name=".services.main.CswDispatcher" /> @@ -768,8 +771,16 @@ <call name="siteURL" class=".guiservices.util.GetSiteURL" /> </output> </service> + + <!-- Service to export a CSW query in a text file output. + To be used with outputSchema=own in order to be able to produce + specific output according to schema. --> + <service name="csw.txt"> + <class name=".services.main.CswDispatcher" /> + + <output sheet="csv-search.xsl" contentType="text/plain; charset=UTF-8" /> + </service> - <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <!-- Open Archive Initiative, Protocol for Metadata Harvesting --> Modified: sandbox/geocat.ch/trunk/web/geonetwork/scripts/mapfishIntegration/geocat.js =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/scripts/mapfishIntegration/geocat.js 2009-01-13 16:36:46 UTC (rev 1949) +++ sandbox/geocat.ch/trunk/web/geonetwork/scripts/mapfishIntegration/geocat.js 2009-01-13 17:34:59 UTC (rev 1950) @@ -1172,14 +1172,17 @@ maxRecords: 1000, startPosition: 1 }, query); - var printUrl = geocat.baseUrl + "srv/" + translate('languageIso3') + "/csw.pdf?" + OpenLayers.Util.getParameterString(newQuery); + var q = OpenLayers.Util.getParameterString(newQuery); + var printUrl = geocat.baseUrl + "srv/" + translate('languageIso3') + "/csw.pdf?" + q; printUrl = printUrl.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>'); + var csvUrl = geocat.baseUrl + "srv/" + translate('languageIso3') + "/csw.txt?outputSchema=own&" + q; + csvUrl = csvUrl.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>'); return '<?xml version="1.0" encoding="UTF-8"?>\n' + '<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dct="http://purl.org/dc/terms/" xmlns:geonet="http://www.fao.org/geonetwork" exclude-result-prefixes="dc dct csw">\n' + ' <xsl:template match="csw:SearchResults">\n' + //' <div style="height: 25px;">\n'+ + ' <div style="float: right;"><a href="' + printUrl + '" target="_blank"><img src="' + geocat.baseUrl + 'images/pdf.gif"/></a><a href="' + csvUrl + '" target="_blank"><img src="' + geocat.baseUrl + 'images/csv.gif"/></a></div>\n' + ' <xsl:if test="@numberOfRecordsMatched > 1">\n' + - ' <div style="float: right;"><a href="' + printUrl + '" target="_blank"><img src="' + geocat.baseUrl + 'images/pdf.gif"/></a></div>\n' + ' <div id="sortBy" style="float: right;"></div><div style="float: right">' + translate('sortBy') + ':</div>\n' + ' </xsl:if>\n' + ' <xsl:choose>\n' + Modified: sandbox/geocat.ch/trunk/web/geonetwork/xml/user-profiles.xml =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/xml/user-profiles.xml 2009-01-13 16:36:46 UTC (rev 1949) +++ sandbox/geocat.ch/trunk/web/geonetwork/xml/user-profiles.xml 2009-01-13 17:34:59 UTC (rev 1950) @@ -280,7 +280,8 @@ <!-- Catalogue Services for the Web --> <allow service="csw"/> <allow service="csw.pdf"/> - + <allow service="csw.txt"/> + <!-- Open Archive Initiative, Protocol for Metadata Harvesting --> <allow service="oaipmh"/> @@ -305,9 +306,7 @@ <allow service="thesaurus.list"/> <allow service="thesaurus.view"/><!-- FIXME : Check if needed --> - <!-- CSV service --> - <allow service="csv.search"/> - + <!-- Test i18n --> <allow service="test.i18n"/> <allow service="test.i18n.xml"/> Modified: sandbox/geocat.ch/trunk/web/geonetwork/xsl/csv-search.xsl =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/xsl/csv-search.xsl 2009-01-13 16:36:46 UTC (rev 1949) +++ sandbox/geocat.ch/trunk/web/geonetwork/xsl/csv-search.xsl 2009-01-13 17:34:59 UTC (rev 1950) @@ -1,7 +1,8 @@ <?xml version="1.0" encoding="UTF-8" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:geonet="http://www.fao.org/geonetwork" - xmlns:exslt= "http://exslt.org/common" + xmlns:exslt= "http://exslt.org/common" + xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" exclude-result-prefixes="xsl exslt geonet"> <xsl:output method="text" version="1.0" encoding="UTF-8" indent="no"/> @@ -23,7 +24,7 @@ <!-- Sort results first as csv output could be different from one schema to another --> <xsl:variable name="sortedResults"> - <xsl:for-each select="/root/response/*[name(.)!='summary']"> + <xsl:for-each select="/root/csw:GetRecordsResponse/csw:SearchResults/*"> <xsl:sort select="geonet:info/schema" order="descending"/> <xsl:copy-of select="."/> </xsl:for-each> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jes...@us...> - 2009-01-14 12:55:33
|
Revision: 1959 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1959&view=rev Author: jesseeichar Date: 2009-01-14 12:31:50 +0000 (Wed, 14 Jan 2009) Log Message: ----------- now adds description as well Modified Paths: -------------- sandbox/geocat.ch/trunk/src/org/fao/geonet/services/xlink/Extent.java sandbox/geocat.ch/trunk/test/org/fao/xsl/ExtractGmlTest.java Added Paths: ----------- sandbox/geocat.ch/trunk/web/geonetwork/xsl/xlink/ sandbox/geocat.ch/trunk/web/geonetwork/xsl/xlink/geometry_description.xsl sandbox/geocat.ch/trunk/web/geoserver/data/featureTypes/countries_countries/ sandbox/geocat.ch/trunk/web/geoserver/data/featureTypes/countries_countries/info.xml Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/services/xlink/Extent.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/services/xlink/Extent.java 2009-01-14 12:30:33 UTC (rev 1958) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/services/xlink/Extent.java 2009-01-14 12:31:50 UTC (rev 1959) @@ -2,6 +2,7 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; +import java.io.PrintStream; import java.io.Serializable; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; @@ -86,7 +87,7 @@ descColumnDesc = findColumn("desc", featureSource.getSchema()); String[] properties; - if( descColumn!=null ){ + if( descColumnDesc!=null ){ properties = new String[3]; properties[2] = descColumnDesc.getLocalName(); } else { @@ -114,12 +115,11 @@ SimpleFeature feature = features.next(); return loadXMLAttribute(feature); } else { - error("no features founds with ID=" + id); + return error("no features founds with ID=" + id); } } finally { features.close(); } - return null; } private Element loadXMLAttribute(SimpleFeature feature) throws IOException, JDOMException @@ -147,7 +147,9 @@ exExtent.addContent(0, toGeomDescElem(attribute)); } } catch (Exception e) { - Log.error("org.fao.geonet.services.xlink.Extent", "Error parsing XML from feature"); + ByteArrayOutputStream out = new ByteArrayOutputStream(); + e.printStackTrace(new PrintStream(out)); + Log.error("org.fao.geonet.services.xlink.Extent", "Error parsing XML from feature:\n"+out); } } @@ -246,7 +248,7 @@ String url = ServiceParams.wfsurl.getValue(params); dsParams = new HashMap<String, Serializable>(); dsParams.put(WFSDataStoreFactory.URL.key, url); - this.geomDescStyleSheet=appPath+"/xsl/xlink/geometry_description.xsl"; + this.geomDescStyleSheet=appPath+"xsl/xlink/geometry_description.xsl"; } } Modified: sandbox/geocat.ch/trunk/test/org/fao/xsl/ExtractGmlTest.java =================================================================== --- sandbox/geocat.ch/trunk/test/org/fao/xsl/ExtractGmlTest.java 2009-01-14 12:30:33 UTC (rev 1958) +++ sandbox/geocat.ch/trunk/test/org/fao/xsl/ExtractGmlTest.java 2009-01-14 12:31:50 UTC (rev 1959) @@ -75,7 +75,7 @@ return null; } - private Element getXML(String name) throws IOException, JDOMException + private static Element getXML(String name) throws IOException, JDOMException { return getXML(ExtractGmlTest.class, name); } @@ -85,6 +85,13 @@ return Xml.loadStream(xmlsource); } - + public static void main(String[] args) throws Exception + { + Element xml = getXML("test.xml"); + String sSheet = new File("web/geonetwork/xsl/xlink/geometry_description.xsl").getAbsolutePath(); + Element transform = Xml.transform(xml, sSheet); + System.out.println(Xml.getString(transform)); + } + } Added: sandbox/geocat.ch/trunk/web/geonetwork/xsl/xlink/geometry_description.xsl =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/xsl/xlink/geometry_description.xsl (rev 0) +++ sandbox/geocat.ch/trunk/web/geonetwork/xsl/xlink/geometry_description.xsl 2009-01-14 12:31:50 UTC (rev 1959) @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<xsl:stylesheet version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:che="http://www.geocat.ch/2008/che" xmlns:gml="http://www.opengis.net/gml" + xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:gmd="http://www.isotc211.org/2005/gmd" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > + + <xsl:output method="xml" /> + + <xsl:template match="/description"> + <gmd:description xsi:type="gmd:PT_FreeText_PropertyType"> + <xsl:apply-templates /> + </gmd:description> + </xsl:template> + + <xsl:template match="/description/text()" priority="2"> + <gco:CharacterString> + <xsl:value-of select="normalize-space(.)" /> + </gco:CharacterString> + </xsl:template> + + <xsl:template match="/description/node()" priority="1"> + <gmd:PT_FreeText> + <gmd:textGroup> + <gmd:LocalisedCharacterString> + <xsl:attribute name="locale"> + <xsl:value-of select="normalize-space(name(.))" /> + </xsl:attribute> + <xsl:value-of select="normalize-space(.)" /> + </gmd:LocalisedCharacterString> + </gmd:textGroup> + </gmd:PT_FreeText> + </xsl:template> + +</xsl:stylesheet> \ No newline at end of file Added: sandbox/geocat.ch/trunk/web/geoserver/data/featureTypes/countries_countries/info.xml =================================================================== --- sandbox/geocat.ch/trunk/web/geoserver/data/featureTypes/countries_countries/info.xml (rev 0) +++ sandbox/geocat.ch/trunk/web/geoserver/data/featureTypes/countries_countries/info.xml 2009-01-14 12:31:50 UTC (rev 1959) @@ -0,0 +1,21 @@ +<featureType datastore = "countries" > + <name>countries</name> + <!-- + native wich EPGS code for the FeatureTypeInfoDTO + --> + <SRS>4326</SRS> + <SRSHandling>0</SRSHandling> + <title>countries_Type</title> + <abstract>Generated from countries</abstract> + <wmspath>/</wmspath> + <numDecimals value = "8" /> + <keywords>countries</keywords> + <latLonBoundingBox dynamic = "false" maxx = "10.493459252966687" maxy = "47.810475823557454" minx = "5.956640769345093" miny = "45.81975202969038" /> + <nativeBBox dynamic = "false" maxx = "10.493459252966687" maxy = "47.810475823557454" minx = "5.956640769345093" miny = "45.81975202969038" /> + <!-- + the default style this FeatureTypeInfoDTO can be represented by. + at least must contain the "default" attribute + --> + <styles default = "polygon" /> + <cacheinfo enabled = "false" maxage = "" /> +</featureType> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jes...@us...> - 2009-01-14 12:55:34
|
Revision: 1957 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1957&view=rev Author: jesseeichar Date: 2009-01-14 12:29:26 +0000 (Wed, 14 Jan 2009) Log Message: ----------- new service now spits out GML but I need to add ability to append the rest of the extent information Modified Paths: -------------- sandbox/geocat.ch/trunk/.classpath sandbox/geocat.ch/trunk/build.xml sandbox/geocat.ch/trunk/jeeves/build.xml sandbox/geocat.ch/trunk/jeeves/src/jeeves/xlink/Processor.java sandbox/geocat.ch/trunk/src/org/fao/geonet/Geonetwork.java sandbox/geocat.ch/trunk/src/org/fao/geonet/kernel/search/spatial/SpatialFilter.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/xlink/Extent.java sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config.xml sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/lib/pom.xml sandbox/geocat.ch/trunk/web/geoserver/data/catalog.xml sandbox/geocat.ch/trunk/web/geoserver/data/coverages/BlueMarble_world/info.xml sandbox/geocat.ch/trunk/web/geoserver/data/featureTypes/countrybox_countrybox/info.xml Added Paths: ----------- sandbox/geocat.ch/trunk/jeeves/lib/jcs-1.3.jar sandbox/geocat.ch/trunk/jeeves/src/jeeves/JeevesJCS.java sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/lib/gt-epsg-hsql-2.5.1.jar sandbox/geocat.ch/trunk/web/geoserver/data/featureTypes/xlinks_xlinks/ sandbox/geocat.ch/trunk/web/geoserver/data/featureTypes/xlinks_xlinks/info.xml Removed Paths: ------------- sandbox/geocat.ch/trunk/src/org/fao/geonet/GeonetworkJCS.java Modified: sandbox/geocat.ch/trunk/.classpath =================================================================== --- sandbox/geocat.ch/trunk/.classpath 2009-01-14 12:27:17 UTC (rev 1956) +++ sandbox/geocat.ch/trunk/.classpath 2009-01-14 12:29:26 UTC (rev 1957) @@ -188,13 +188,24 @@ <classpathentry kind="lib" path="jetty/ext/jsp-api-2.0.jar"/> <classpathentry kind="lib" path="jetty/ext/org.mortbay.jetty.plus.jar"/> <classpathentry kind="lib" path="jetty/ext/slf4j-simple-1.0.1.jar"/> - <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/gt2-validation-2.3.4.jar"/> + <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/wcs-1.5.3.jar"/> + <classpathentry kind="lib" path="web/geonetwork/WEB-INF/lib/gt-wfs-2.5.1.jar" sourcepath="/home/jeichar/dev/project/geocat/src/geotools/modules/plugin/wfs"/> + <classpathentry kind="lib" path="web/geonetwork/WEB-INF/lib/gt-wms-2.5.1.jar"/> + <classpathentry kind="lib" path="web/geonetwork/WEB-INF/lib/gt-xml-2.5.1.jar"/> + <classpathentry kind="lib" path="web/geonetwork/WEB-INF/lib/gt-xsd-ows-2.5.1.jar"/> + <classpathentry kind="lib" path="web/geonetwork/WEB-INF/lib/gt-xsd-wfs-2.5.1.jar"/> + <classpathentry kind="lib" path="web/geonetwork/WEB-INF/lib/net.opengis.ows-2.5.1.jar"/> + <classpathentry kind="lib" path="web/geonetwork/WEB-INF/lib/net.opengis.wfs-2.5.1.jar"/> + <classpathentry kind="lib" path="web/geonetwork/WEB-INF/lib/org.w3.xlink-2.5.1.jar"/> + <classpathentry kind="lib" path="web/geonetwork/WEB-INF/lib/xpp3-1.1.3.4.O.jar"/> + <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/wfs-1.5.3.jar"/> + <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/wms-1.5.3.jar"/> + <classpathentry kind="lib" path="web/geonetwork/WEB-INF/lib/gt-epsg-hsql-2.5.1.jar"/> <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/gt2-api-2.3.4.jar"/> <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/gt2-arcgrid-2.3.4.jar"/> <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/gt2-coverage-2.3.4.jar"/> <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/gt2-cql-2.3.4.jar"/> <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/gt2-demo-property-2.3.4.jar"/> - <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/gt2-epsg-hsql-2.3.4.jar"/> <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/gt2-geotiff-2.3.4.jar"/> <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/gt2-graph-2.3.4.jar"/> <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/gt2-gtopo30-2.3.4.jar"/> @@ -206,8 +217,6 @@ <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/gt2-referencing-2.3.4.jar"/> <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/gt2-render-2.3.4.jar"/> <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/gt2-shapefile-2.3.4.jar"/> - <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/wcs-1.5.3.jar"/> - <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/wfs-1.5.3.jar"/> - <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/wms-1.5.3.jar"/> + <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/gt2-validation-2.3.4.jar"/> <classpathentry kind="output" path="classes"/> </classpath> Modified: sandbox/geocat.ch/trunk/build.xml =================================================================== --- sandbox/geocat.ch/trunk/build.xml 2009-01-14 12:27:17 UTC (rev 1956) +++ sandbox/geocat.ch/trunk/build.xml 2009-01-14 12:29:26 UTC (rev 1957) @@ -48,7 +48,7 @@ <jar jarfile ="web/geonetwork/WEB-INF/lib/geonetwork.jar" basedir =".build" - includes="org/fao/geonet/**, org/fao/gast/**, cache.ccf" /> + includes="org/fao/geonet/**, org/fao/gast/**" /> <jar jarfile ="web/geonetwork/WEB-INF/lib/oaipmh-lib.jar" basedir =".build" Modified: sandbox/geocat.ch/trunk/jeeves/build.xml =================================================================== --- sandbox/geocat.ch/trunk/jeeves/build.xml 2009-01-14 12:27:17 UTC (rev 1956) +++ sandbox/geocat.ch/trunk/jeeves/build.xml 2009-01-14 12:29:26 UTC (rev 1957) @@ -21,6 +21,7 @@ extdirs = "lib" includes = "jeeves/**" debug = "true"/> + <jar jarfile = "lib/jeeves.jar" basedir = "build" Added: sandbox/geocat.ch/trunk/jeeves/lib/jcs-1.3.jar =================================================================== --- sandbox/geocat.ch/trunk/jeeves/lib/jcs-1.3.jar (rev 0) +++ sandbox/geocat.ch/trunk/jeeves/lib/jcs-1.3.jar 2009-01-14 12:29:26 UTC (rev 1957) @@ -0,0 +1,3089 @@ +PK + |
From: <jes...@us...> - 2009-01-14 12:55:36
|
Revision: 1958 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1958&view=rev Author: jesseeichar Date: 2009-01-14 12:30:33 +0000 (Wed, 14 Jan 2009) Log Message: ----------- working on geometry description Modified Paths: -------------- sandbox/geocat.ch/trunk/.classpath sandbox/geocat.ch/trunk/src/org/fao/geonet/services/xlink/Extent.java sandbox/geocat.ch/trunk/web/geoserver/data/catalog.xml sandbox/geocat.ch/trunk/web/geoserver/data/coverages/BlueMarble_world/info.xml Removed Paths: ------------- sandbox/geocat.ch/trunk/web/geoserver/data/featureTypes/country_boundaries_gboundaries/info.xml sandbox/geocat.ch/trunk/web/geoserver/data/featureTypes/country_boundaries_gboundaries/schema.xml sandbox/geocat.ch/trunk/web/geoserver/data/featureTypes/countrybox_countrybox/info.xml Modified: sandbox/geocat.ch/trunk/.classpath =================================================================== --- sandbox/geocat.ch/trunk/.classpath 2009-01-14 12:29:26 UTC (rev 1957) +++ sandbox/geocat.ch/trunk/.classpath 2009-01-14 12:30:33 UTC (rev 1958) @@ -218,5 +218,6 @@ <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/gt2-render-2.3.4.jar"/> <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/gt2-shapefile-2.3.4.jar"/> <classpathentry kind="lib" path="web/geoserver/WEB-INF/lib/gt2-validation-2.3.4.jar"/> + <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/> <classpathentry kind="output" path="classes"/> </classpath> Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/services/xlink/Extent.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/services/xlink/Extent.java 2009-01-14 12:29:26 UTC (rev 1957) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/services/xlink/Extent.java 2009-01-14 12:30:33 UTC (rev 1958) @@ -12,6 +12,7 @@ import jeeves.interfaces.Service; import jeeves.server.ServiceConfig; import jeeves.server.context.ServiceContext; +import jeeves.utils.Log; import jeeves.utils.Xml; import org.geotools.data.DataStore; @@ -22,10 +23,11 @@ import org.geotools.factory.CommonFactoryFinder; import org.geotools.factory.GeoTools; import org.geotools.feature.FeatureIterator; -import org.geotools.gml2.GML; import org.geotools.gml3.GMLConfiguration; import org.geotools.xml.Encoder; import org.jdom.Element; +import org.jdom.JDOMException; +import org.jdom.Namespace; import org.opengis.feature.simple.SimpleFeature; import org.opengis.feature.simple.SimpleFeatureType; import org.opengis.feature.type.AttributeDescriptor; @@ -49,9 +51,10 @@ } - private final GMLConfiguration gmlConfiguration = new GMLConfiguration(); + private final GMLConfiguration gmlConfiguration = new GMLConfiguration(); private HashMap<String, Serializable> dsParams; private DataStore datastore; + private String geomDescStyleSheet; @Override public Element exec(Element params, ServiceContext context) throws Exception @@ -59,6 +62,7 @@ String id = params.getChildTextTrim("id"); String idColumn = params.getChildTextTrim("column"); String typename = params.getChildTextTrim("typename"); + String descColumn = params.getChildTextTrim("descColumn"); if (id == null) { error("id parameter is required"); } @@ -76,57 +80,130 @@ return error("The column: " + idColumn + " does not exist. Options are: " + options); } - String[] properties = new String[] { idColumnDesc.getLocalName(), - featureSource.getSchema().getGeometryDescriptor().getLocalName() }; + AttributeDescriptor descColumnDesc; + descColumnDesc = findColumn(descColumn, featureSource.getSchema()); + if( descColumnDesc==null) + descColumnDesc = findColumn("desc", featureSource.getSchema()); + + String[] properties; + if( descColumn!=null ){ + properties = new String[3]; + properties[2] = descColumnDesc.getLocalName(); + } else { + properties = new String[2]; + } + + properties[0] = idColumnDesc.getLocalName(); + properties[1] = featureSource.getSchema().getGeometryDescriptor().getLocalName(); + FilterFactory2 filterFactory2 = CommonFactoryFinder.getFilterFactory2(GeoTools.getDefaultHints()); Filter filter = filterFactory2.equals(filterFactory2.property(idColumnDesc.getLocalName()), filterFactory2 .literal(id)); Query q = new DefaultQuery(typename, filter, properties); + Element xml = resolve(id, featureSource, q); + return xml; + } + + private Element resolve(String id, FeatureSource<SimpleFeatureType, SimpleFeature> featureSource, Query q) + throws IOException, JDOMException + { FeatureIterator<SimpleFeature> features = featureSource.getFeatures(q).features(); try { if (features.hasNext()) { SimpleFeature feature = features.next(); - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - Encoder encoder = new Encoder(gmlConfiguration); - encoder.setIndenting(false); - encoder.encode(feature.getDefaultGeometry(), org.geotools.gml3.GML.geometryMember, outputStream); - return Xml.loadString(outputStream.toString(), false); + return loadXMLAttribute(feature); } else { error("no features founds with ID=" + id); } } finally { features.close(); } - return params; + return null; } + private Element loadXMLAttribute(SimpleFeature feature) throws IOException, JDOMException + { + + Namespace ns = Namespace.getNamespace("gmd", "http://www.isotc211.org/2005/gmd"); + Element extent = new Element("extent", ns); + Element exExtent = new Element("EX_Extent", ns); + Element geographicElement = new Element("geographicElement", ns); + Element boundingPoly = new Element("EX_BoundingPolygon", ns); + Element polyon = new Element("polygon", ns); + Element geom = (Element) encodeAsGML(feature).getContent(0); + geom.detach(); + + extent.addContent(exExtent); + exExtent.addContent(geographicElement); + geographicElement.addContent(boundingPoly); + boundingPoly.addContent(polyon); + polyon.addContent(geom); + + if (feature.getFeatureType().getAttributeCount() == 3) { + try { + String attribute = (String) feature.getAttribute(2); + if (attribute.length() > 0) { + exExtent.addContent(0, toGeomDescElem(attribute)); + } + } catch (Exception e) { + Log.error("org.fao.geonet.services.xlink.Extent", "Error parsing XML from feature"); + } + } + + return extent; + } + + private Element toGeomDescElem(String basicValue) throws Exception + { + String xml = "<description>"+basicValue+"</description>"; + Element desc = Xml.loadString(xml, false); + return Xml.transform(desc, geomDescStyleSheet); + } + + private Element encodeAsGML(SimpleFeature feature) throws IOException, JDOMException + { + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + Encoder encoder = new Encoder(gmlConfiguration); + encoder.setIndenting(false); + encoder.encode(feature.getDefaultGeometry(), org.geotools.gml3.GML.geometryMember, outputStream); + return Xml.loadString(outputStream.toString(), false); + } + private String toString(List<AttributeDescriptor> attributeDescriptors) { StringBuilder builder = new StringBuilder(); - + for (AttributeDescriptor desc : attributeDescriptors) { - if(builder.length()>0){ + if (builder.length() > 0) { builder.append(", "); } builder.append(desc.getName().toString()); } - return "["+builder.toString()+"]"; + return "[" + builder.toString() + "]"; } private AttributeDescriptor getIdColumn(String idColumn, FeatureSource<SimpleFeatureType, SimpleFeature> featureSource) { - AttributeDescriptor idDesc = null; - - for (AttributeDescriptor desc : featureSource.getSchema().getAttributeDescriptors()) { - if (desc.getLocalName().equalsIgnoreCase("id")) { - idDesc = desc; - }else if( idColumn!=null && desc.getLocalName().equalsIgnoreCase(idColumn) ){ + + SimpleFeatureType schema = featureSource.getSchema(); + AttributeDescriptor column = findColumn(idColumn, schema); + if (column != null) { + return column; + } + + return findColumn("id", schema); + } + + private AttributeDescriptor findColumn(String idColumn, SimpleFeatureType featureType) + { + for (AttributeDescriptor desc : featureType.getAttributeDescriptors()) { + if (desc.getLocalName().equalsIgnoreCase(idColumn)) { return desc; } } - return idDesc; + return null; } private Element errorTypename(String typename) throws IOException @@ -169,6 +246,7 @@ String url = ServiceParams.wfsurl.getValue(params); dsParams = new HashMap<String, Serializable>(); dsParams.put(WFSDataStoreFactory.URL.key, url); + this.geomDescStyleSheet=appPath+"/xsl/xlink/geometry_description.xsl"; } } Modified: sandbox/geocat.ch/trunk/web/geoserver/data/catalog.xml =================================================================== --- sandbox/geocat.ch/trunk/web/geoserver/data/catalog.xml 2009-01-14 12:29:26 UTC (rev 1957) +++ sandbox/geocat.ch/trunk/web/geoserver/data/catalog.xml 2009-01-14 12:30:33 UTC (rev 1958) @@ -12,10 +12,11 @@ <parameter name = "namespace" value = "gn" /> </connectionParams> </datastore> - <datastore id = "country_boundaries" enabled = "true" namespace = "gn" > + <datastore id = "countries" enabled = "true" namespace = "gn" > <connectionParams > - <parameter name = "charset" value = "ISO-8859-1" /> - <parameter name = "url" value = "file:data/boundaries/gboundaries.shp" /> + <parameter name = "create spatial index" value = "true" /> + <parameter name = "charset" value = "UTF-8" /> + <parameter name = "shapefile url" value = "file:SwissTopo/countries.shp" /> <parameter name = "namespace" value = "gn" /> </connectionParams> </datastore> @@ -26,15 +27,7 @@ <parameter name = "namespace" value = "gn" /> </connectionParams> </datastore> - <datastore id = "countrybox" enabled = "true" namespace = "gn" > - <connectionParams > - <parameter name = "charset" value = "ISO-8859-1" /> - <parameter name = "url" value = "file:data/boundaries/countrybox.shp" /> - <parameter name = "namespace" value = "gn" /> - </connectionParams> - </datastore> <datastore id = "xlinks" enabled = "true" namespace = "gn" > - <abstract></abstract> <connectionParams > <parameter name = "create spatial index" value = "true" /> <parameter name = "charset" value = "UTF-8" /> @@ -58,8 +51,8 @@ Defines namespaces to be used by the datastores. --> <namespaces > - <namespace prefix = "cite" uri = "http://www.opengeospatial.net/cite" /> <namespace default = "true" prefix = "gn" uri = "http://geonetwork-opensource.org" /> + <namespace prefix = "cite" uri = "http://www.opengeospatial.net/cite" /> <namespace prefix = "topp" uri = "http://www.openplans.org/topp" /> </namespaces> <styles > @@ -78,8 +71,8 @@ <style id = "raster" filename = "raster.sld" /> <style id = "point" filename = "default_point.sld" /> <style id = "tiger_roads" filename = "tiger_roads.sld" /> - <style id = "poly_landmarks" filename = "poly_landmarks.sld" /> <style id = "dem" filename = "dem.sld" /> + <style id = "poly_landmarks" filename = "poly_landmarks.sld" /> <style id = "population" filename = "popshade.sld" /> </styles> </catalog> Modified: sandbox/geocat.ch/trunk/web/geoserver/data/coverages/BlueMarble_world/info.xml =================================================================== --- sandbox/geocat.ch/trunk/web/geoserver/data/coverages/BlueMarble_world/info.xml 2009-01-14 12:29:26 UTC (rev 1957) +++ sandbox/geocat.ch/trunk/web/geoserver/data/coverages/BlueMarble_world/info.xml 2009-01-14 12:30:33 UTC (rev 1958) @@ -8,10 +8,16 @@ + + + + + + </metadataLink> <keywords>Blue,Marble,world,topography,bathymetry,200407</keywords> <!-- Deleted: sandbox/geocat.ch/trunk/web/geoserver/data/featureTypes/country_boundaries_gboundaries/info.xml =================================================================== --- sandbox/geocat.ch/trunk/web/geoserver/data/featureTypes/country_boundaries_gboundaries/info.xml 2009-01-14 12:29:26 UTC (rev 1957) +++ sandbox/geocat.ch/trunk/web/geoserver/data/featureTypes/country_boundaries_gboundaries/info.xml 2009-01-14 12:30:33 UTC (rev 1958) @@ -1,24 +0,0 @@ -<featureType datastore = "country_boundaries" > - <name>gboundaries</name> - <!-- - native wich EPGS code for the FeatureTypeInfoDTO - --> - <SRS>4326</SRS> - <SRSHandling>0</SRSHandling> - <title>Country boundaries</title> - <abstract>Derived from GAUL Country Boundaries</abstract> - <wmspath>/</wmspath> - <numDecimals value = "8" /> - <keywords>GAUL Country Boundaries</keywords> - <metadataLinks > - <metadataLink type = "text/html" metadataType = "TC211" >http://www.fao.org/geonetwork/srv/en/metadata.show?id=12691</metadataLink> - </metadataLinks> - <latLonBoundingBox dynamic = "false" maxx = "180.0" maxy = "83.6274185180664" minx = "-180.0" miny = "-89.9000015258789" /> - <nativeBBox dynamic = "false" maxx = "180.0" maxy = "83.6274185180664" minx = "-180.0" miny = "-89.9000015258789" /> - <!-- - the default style this FeatureTypeInfoDTO can be represented by. - at least must contain the "default" attribute - --> - <styles default = "line" /> - <cacheinfo enabled = "false" maxage = "" /> -</featureType> Deleted: sandbox/geocat.ch/trunk/web/geoserver/data/featureTypes/country_boundaries_gboundaries/schema.xml =================================================================== --- sandbox/geocat.ch/trunk/web/geoserver/data/featureTypes/country_boundaries_gboundaries/schema.xml 2009-01-14 12:29:26 UTC (rev 1957) +++ sandbox/geocat.ch/trunk/web/geoserver/data/featureTypes/country_boundaries_gboundaries/schema.xml 2009-01-14 12:30:33 UTC (rev 1958) @@ -1,17 +0,0 @@ -<xs:complexType name = "gboundaries_Type" > - <xs:complexContent > - <xs:extension base = "AbstractFeatureType" > - <xs:sequence > - <xs:element nillable = "false" name = "the_geom" maxOccurs = "1" type = "gml:MultiPolygonPropertyType" minOccurs = "1" /> - <xs:element nillable = "false" name = "ADM0_CODE" maxOccurs = "1" type = "xs:long" minOccurs = "1" /> - <xs:element nillable = "false" name = "COUNT" maxOccurs = "1" type = "xs:long" minOccurs = "1" /> - <xs:element nillable = "false" name = "ADM0NAME" maxOccurs = "1" type = "xs:string" minOccurs = "1" /> - <xs:element nillable = "false" name = "LAST_UPD" maxOccurs = "1" type = "xs:long" minOccurs = "1" /> - <xs:element nillable = "false" name = "CONTINENT_" maxOccurs = "1" type = "xs:string" minOccurs = "1" /> - <xs:element nillable = "false" name = "REGION_" maxOccurs = "1" type = "xs:string" minOccurs = "1" /> - <xs:element nillable = "false" name = "START_Y" maxOccurs = "1" type = "xs:long" minOccurs = "1" /> - <xs:element nillable = "false" name = "EXPIRY_Y" maxOccurs = "1" type = "xs:long" minOccurs = "1" /> - </xs:sequence> - </xs:extension> - </xs:complexContent> -</xs:complexType> Deleted: sandbox/geocat.ch/trunk/web/geoserver/data/featureTypes/countrybox_countrybox/info.xml =================================================================== --- sandbox/geocat.ch/trunk/web/geoserver/data/featureTypes/countrybox_countrybox/info.xml 2009-01-14 12:29:26 UTC (rev 1957) +++ sandbox/geocat.ch/trunk/web/geoserver/data/featureTypes/countrybox_countrybox/info.xml 2009-01-14 12:30:33 UTC (rev 1958) @@ -1,21 +0,0 @@ -<featureType datastore = "countrybox" > - <name>countrybox</name> - <!-- - native wich EPGS code for the FeatureTypeInfoDTO - --> - <SRS>4326</SRS> - <SRSHandling>0</SRSHandling> - <title>countrybox_Type</title> - <abstract>Generated from countrybox</abstract> - <wmspath>/</wmspath> - <numDecimals value = "8" /> - <keywords>countrybox</keywords> - <latLonBoundingBox dynamic = "false" maxx = "180.0" maxy = "90.0" minx = "-180.0" miny = "-90.0" /> - <nativeBBox dynamic = "true" /> - <!-- - the default style this FeatureTypeInfoDTO can be represented by. - at least must contain the "default" attribute - --> - <styles default = "polygon" /> - <cacheinfo enabled = "false" maxage = "" /> -</featureType> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jes...@us...> - 2009-01-14 12:55:32
|
Revision: 1960 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1960&view=rev Author: jesseeichar Date: 2009-01-14 12:32:45 +0000 (Wed, 14 Jan 2009) Log Message: ----------- renamed service Made processor use JEevesJCS made JeevesJCS change when filename changes Modified Paths: -------------- sandbox/geocat.ch/trunk/jeeves/src/jeeves/JeevesJCS.java sandbox/geocat.ch/trunk/jeeves/src/jeeves/xlink/Processor.java sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config.xml sandbox/geocat.ch/trunk/web/geonetwork/xml/user-profiles.xml Added Paths: ----------- sandbox/geocat.ch/trunk/test/org/fao/xsl/test.xml Modified: sandbox/geocat.ch/trunk/jeeves/src/jeeves/JeevesJCS.java =================================================================== --- sandbox/geocat.ch/trunk/jeeves/src/jeeves/JeevesJCS.java 2009-01-14 12:31:50 UTC (rev 1959) +++ sandbox/geocat.ch/trunk/jeeves/src/jeeves/JeevesJCS.java 2009-01-14 12:32:45 UTC (rev 1960) @@ -154,6 +154,7 @@ */ public static void setConfigFilename( String configFilename ) { + cacheMgr=null; JeevesJCS.configFilename = configFilename; } Modified: sandbox/geocat.ch/trunk/jeeves/src/jeeves/xlink/Processor.java =================================================================== --- sandbox/geocat.ch/trunk/jeeves/src/jeeves/xlink/Processor.java 2009-01-14 12:31:50 UTC (rev 1959) +++ sandbox/geocat.ch/trunk/jeeves/src/jeeves/xlink/Processor.java 2009-01-14 12:32:45 UTC (rev 1960) @@ -6,6 +6,7 @@ import java.net.URL; import java.util.List; +import jeeves.JeevesJCS; import jeeves.utils.Xml; import org.apache.jcs.JCS; @@ -147,7 +148,7 @@ private static Content resolveXLink(String uri) throws IOException, JDOMException, CacheException { - JCS xlinkCache = JCS.getInstance(XLINK_JCS); + JeevesJCS xlinkCache = JeevesJCS.getInstance(XLINK_JCS); Element remoteFragment = (Element) xlinkCache.get(uri); if (remoteFragment == null) { Added: sandbox/geocat.ch/trunk/test/org/fao/xsl/test.xml =================================================================== --- sandbox/geocat.ch/trunk/test/org/fao/xsl/test.xml (rev 0) +++ sandbox/geocat.ch/trunk/test/org/fao/xsl/test.xml 2009-01-14 12:32:45 UTC (rev 1960) @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<description>lichtenstein</description> Modified: sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config.xml =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config.xml 2009-01-14 12:31:50 UTC (rev 1959) +++ sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config.xml 2009-01-14 12:32:45 UTC (rev 1960) @@ -71,8 +71,8 @@ <name>main-db</name> <provider>jeeves.resources.dbms.DbmsPool</provider> <config> - <user>MLVbuDbi</user> - <password>EndbQulj</password> + <user>T5VYanIt</user> + <password>w5MNFTGc</password> <driver>com.mckoi.JDBCDriver</driver> <url>jdbc:mckoi://localhost:9159/</url> <poolSize>10</poolSize> @@ -153,7 +153,7 @@ </output> </service> - <service name="xlink.extent"> + <service name="xml.extent.get"> <class name=".services.xlink.Extent"> <param name="wfsurl" value="http://localhost:8080/geoserver/wfs?service=WFS&request=GetCapabilities" /> </class> @@ -767,8 +767,8 @@ <class name=".services.main.CswDispatcher" /> </service> - <!-- Service to export a CSW query in a pdf document. - To be used with no outputSchema (ie. default ogc) to return + <!-- Service to export a CSW query in a pdf document. + To be used with no outputSchema (ie. default ogc) to return search result in a pdf. Replace existing pdf.search service. --> <service name="csw.pdf"> <class name=".services.main.CswDispatcher" /> @@ -778,8 +778,8 @@ </output> </service> - <!-- Service to export a CSW query in a text file output. - To be used with outputSchema=own in order to be able to produce + <!-- Service to export a CSW query in a text file output. + To be used with outputSchema=own in order to be able to produce specific output according to schema. --> <service name="csw.txt"> <class name=".services.main.CswDispatcher" /> Modified: sandbox/geocat.ch/trunk/web/geonetwork/xml/user-profiles.xml =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/xml/user-profiles.xml 2009-01-14 12:31:50 UTC (rev 1959) +++ sandbox/geocat.ch/trunk/web/geonetwork/xml/user-profiles.xml 2009-01-14 12:32:45 UTC (rev 1960) @@ -187,7 +187,7 @@ <!-- Basic services to search and display the results --> <allow service="mapfish"/> <allow service="geocat"/> - <allow service="xlink.extent"/> + <allow service="xml.extent.get"/> <allow service="home"/> <allow service="main.home"/> <allow service="main.searchform.simple.embedded"/> <!-- ETj --> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jes...@us...> - 2009-01-14 12:55:53
|
Revision: 1955 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1955&view=rev Author: jesseeichar Date: 2009-01-14 12:26:48 +0000 (Wed, 14 Jan 2009) Log Message: ----------- added Extent service (doesnt do anything yet) Modified Paths: -------------- sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config.xml sandbox/geocat.ch/trunk/web/geonetwork/xml/user-profiles.xml Added Paths: ----------- sandbox/geocat.ch/trunk/src/org/fao/geonet/services/xlink/ sandbox/geocat.ch/trunk/src/org/fao/geonet/services/xlink/Extent.java Added: sandbox/geocat.ch/trunk/src/org/fao/geonet/services/xlink/Extent.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/services/xlink/Extent.java (rev 0) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/services/xlink/Extent.java 2009-01-14 12:26:48 UTC (rev 1955) @@ -0,0 +1,32 @@ +package org.fao.geonet.services.xlink; + +import org.jdom.Element; +import org.json.XML; + +import jeeves.interfaces.Service; +import jeeves.server.ServiceConfig; +import jeeves.server.context.ServiceContext; + + +public class Extent implements Service +{ + + @Override + public Element exec(Element params, ServiceContext context) throws Exception + { + // TODO Auto-generated method stub + System.out.println("Service xlink.Extent#init:"); + System.out.println(XML.toString(params)); + return null; + } + + @Override + public void init(String appPath, ServiceConfig params) throws Exception + { + // TODO Auto-generated method stub + System.out.println("Service xlink.Extent#init:"); + System.out.println(appPath); + System.out.println(params); + } + +} Modified: sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config.xml =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config.xml 2009-01-14 12:25:59 UTC (rev 1954) +++ sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config.xml 2009-01-14 12:26:48 UTC (rev 1955) @@ -71,8 +71,8 @@ <name>main-db</name> <provider>jeeves.resources.dbms.DbmsPool</provider> <config> - <user>F4UBRCtn</user> - <password>7Htl5T34</password> + <user>yKv0DzBE</user> + <password>fXrBq01p</password> <driver>com.mckoi.JDBCDriver</driver> <url>jdbc:mckoi://localhost:9159/</url> <poolSize>10</poolSize> @@ -125,7 +125,7 @@ <param name="thesauriDir" value="codeListDir" /> <param name="codeListDir" value="xml/codelist" /> <param name="summaryConfig" value="WEB-INF/summaryConfig.xml" /> - <param name="kantoneShpFiles" value="../geoserver/data/SwissTopo" /> + <param name="kantoneShpFiles" value="../geoserver/data/SwissTopo" /> </appHandler> <!-- ====================================================================== --> @@ -152,6 +152,12 @@ <!--<xml name="countries" file="xml/countries.xml" /> --> </output> </service> + + <service name="xlink.extent"> + <class name=".services.xlink.Extent"> + <param name="datastore" value="http://localhost:8080/geoserver/wfs" /> + </class> + </service> <service name="home"> <output sheet="home.xsl" /> Modified: sandbox/geocat.ch/trunk/web/geonetwork/xml/user-profiles.xml =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/xml/user-profiles.xml 2009-01-14 12:25:59 UTC (rev 1954) +++ sandbox/geocat.ch/trunk/web/geonetwork/xml/user-profiles.xml 2009-01-14 12:26:48 UTC (rev 1955) @@ -186,7 +186,8 @@ <!-- Basic services to search and display the results --> <allow service="mapfish"/> - <allow service="geocat"/> + <allow service="geocat"/> + <allow service="xlink.extent"/> <allow service="home"/> <allow service="main.home"/> <allow service="main.searchform.simple.embedded"/> <!-- ETj --> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jes...@us...> - 2009-01-14 12:56:06
|
Revision: 1956 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1956&view=rev Author: jesseeichar Date: 2009-01-14 12:27:17 +0000 (Wed, 14 Jan 2009) Log Message: ----------- just clean up Modified Paths: -------------- sandbox/geocat.ch/trunk/bin/start-geonetwork.sh sandbox/geocat.ch/trunk/jeeves/src/jeeves/xlink/Processor.java Modified: sandbox/geocat.ch/trunk/bin/start-geonetwork.sh =================================================================== --- sandbox/geocat.ch/trunk/bin/start-geonetwork.sh 2009-01-14 12:26:48 UTC (rev 1955) +++ sandbox/geocat.ch/trunk/bin/start-geonetwork.sh 2009-01-14 12:27:17 UTC (rev 1956) @@ -1,8 +1,8 @@ cd ../jetty rm log/*request.log* rm log/output.log -mv log/geonetwork.log.* log/archive -mv log/intermap.log.* log/archive +mv log/geonetwork.log* log/archive +mv log/intermap.log* log/archive mkdir -p log Modified: sandbox/geocat.ch/trunk/jeeves/src/jeeves/xlink/Processor.java =================================================================== --- sandbox/geocat.ch/trunk/jeeves/src/jeeves/xlink/Processor.java 2009-01-14 12:26:48 UTC (rev 1955) +++ sandbox/geocat.ch/trunk/jeeves/src/jeeves/xlink/Processor.java 2009-01-14 12:27:17 UTC (rev 1956) @@ -3,7 +3,6 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.PrintWriter; -import java.io.StringWriter; import java.net.URL; import java.util.List; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pva...@us...> - 2009-01-14 14:59:59
|
Revision: 1962 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1962&view=rev Author: pvalsecc Date: 2009-01-14 14:59:53 +0000 (Wed, 14 Jan 2009) Log Message: ----------- added conversion from ISO19139CHE to GM03 (work in progress) Modified Paths: -------------- sandbox/geocat.ch/trunk/src/org/fao/geonet/util/TranslateAndValidate.java sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/import/test/testCHE03to19139.sh Added Paths: ----------- sandbox/geocat.ch/trunk/src/org/fao/geonet/util/ISO19139CHEtoGM03.java sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/gm03/ sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/gm03/GM03_2.xsd sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/ sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/19139CHE-to-GM03.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/distribution.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/extent.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/header.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/identification.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/metadata.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/ref-system.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/resp-party.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/import/ISO19139CHE-to-GM03.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/import/test/test19139toCHE03.sh Added: sandbox/geocat.ch/trunk/src/org/fao/geonet/util/ISO19139CHEtoGM03.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/util/ISO19139CHEtoGM03.java (rev 0) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/util/ISO19139CHEtoGM03.java 2009-01-14 14:59:53 UTC (rev 1962) @@ -0,0 +1,269 @@ +package org.fao.geonet.util; + +import org.w3c.dom.*; +import org.xml.sax.SAXException; +import org.apache.commons.lang.ArrayUtils; +import org.apache.xml.serialize.OutputFormat; +import org.apache.xml.serialize.XMLSerializer; + +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.*; +import javax.xml.transform.dom.DOMResult; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamSource; +import javax.xml.validation.Schema; +import javax.xml.validation.SchemaFactory; +import javax.xml.validation.Validator; +import javax.xml.XMLConstants; +import java.io.*; +import java.util.*; +import java.util.regex.Pattern; + +public class ISO19139CHEtoGM03 { + private static final SchemaFactory SCHEMA_FACTORY = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); + private static final TransformerFactory TRANSFORMER_FACTORY = TransformerFactory.newInstance(); + private static final String NS = "http://www.interlis.ch/INTERLIS2.3"; + + private final Schema schema; + + private Transformer xslt; + + public ISO19139CHEtoGM03(File schemaLocation, String xslFilename) throws SAXException, TransformerConfigurationException { + if (schemaLocation != null) { + schema = SCHEMA_FACTORY.newSchema(schemaLocation); + } else { + schema = null; + } + xslt = TRANSFORMER_FACTORY.newTransformer(new StreamSource(xslFilename)); + } + + private void flatten(Document source) throws FlattenerException { + NodeList root = source.getElementsByTagNameNS(NS, "GM03_2Comprehensive.Comprehensive"); + if (root.getLength() != 1) { + throw new FlattenerException("Not 1 and only 1 GM03_2Comprehensive.Comprehensive"); + } + final Node start = root.item(0); + flattenNode(start, null, start); + } + + private void flattenNode(Node root, Node parent, Node cur) throws FlattenerException { + if (cur.getNodeType() != Node.ELEMENT_NODE) return; + + final NamedNodeMap attrs = cur.getAttributes(); + + Node backRef = findBackRef(cur); + if (backRef != null) { + replaceByInsertion(root, parent, cur, backRef); + } + + if (attrs != null) { + Node ref = attrs.getNamedItem("REF"); + if (ref != null && ref.getTextContent().equals("?")) { + replaceByReference(root, parent, cur); + } + } + + final Iterator<Node> childsIter = new ChildIterator(cur); + while (childsIter.hasNext()) { + Node child = childsIter.next(); + flattenNode(root, cur, child); + } + } + + private void replaceByInsertion(Node root, Node parent, Node cur, Node dummyBackRef) throws FlattenerException { + final Node tidAttr = parent.getAttributes().getNamedItem("TID"); + if (tidAttr == null) { + //already moved... + return; + } + final String tid = tidAttr.getTextContent(); + + parent.removeChild(cur); + root.appendChild(cur); + + final String backRefName = dummyBackRef.getAttributes().getNamedItem("name").getTextContent(); + final Document doc = cur.getOwnerDocument(); + Node backRef = doc.createElementNS(NS, backRefName); + final Attr ref = doc.createAttribute("REF"); + ref.setTextContent(tid); + backRef.getAttributes().setNamedItem(ref); + + cur.replaceChild(backRef, dummyBackRef); + } + + private Node findBackRef(Node parent) throws FlattenerException { + for (Node cur = parent.getFirstChild(); cur != null; cur = cur.getNextSibling()) { + if (cur.getNodeName().equals("BACK_REF")) { + return cur; + } + } + return null; + } + + private void replaceByReference(Node root, Node parent, Node cur) throws FlattenerException { + final NodeList childs = cur.getChildNodes(); + if (childs.getLength() != 1) { + throw new FlattenerException("A node that is replaced by a reference must have only one child!"); + } + Node dest = childs.item(0); + if (dest.getNodeName().equals("ERROR")) return; + cur.removeChild(dest); + + String tid = dest.getAttributes().getNamedItem("TID").getTextContent(); + cur.getAttributes().getNamedItem("REF").setTextContent(tid); + + root.appendChild(dest); + + //must flatten the child that we just moved. + flattenNode(root, root, dest); + } + + private void validate(String xmlFilename, Document doc) throws IOException { + if (schema != null) { + Validator validator = schema.newValidator(); + final TranslateAndValidate.MyErrorHandler errorHandler = new TranslateAndValidate.MyErrorHandler(xmlFilename); + validator.setErrorHandler(errorHandler); + + Source validationSource = new DOMSource(doc); + + try { + validator.validate(validationSource); + if (errorHandler.isError()) { + System.exit(-1); + } else { + //System.out.println(xmlFilename + " is valid."); + } + } catch (SAXException ex) { + ex.printStackTrace(System.err); + System.exit(-1); + } + } + } + + public void convert(String xmlFilename) throws FlattenerException, IOException, TransformerException { + File xmlFile = new File(xmlFilename); + + DOMResult transformed = new DOMResult(); + final StreamSource source = new StreamSource(xmlFilename); + xslt.transform(source, transformed); + final Document doc = (Document) transformed.getNode(); + + saveDom(doc, xmlFile.getParent() + "/intermediate_" + xmlFile.getName()); + + flatten(doc); + convertCoordinates(doc); + //TODO: must remove the duplicates + + final String resultFilename = xmlFile.getParent() + "/result_" + xmlFile.getName(); + saveDom(doc, resultFilename); + + validate(resultFilename, doc); + } + + /** + * Will replace all the gml:coordinates with a set of COORD with C1 and C2 childs. + */ + private void convertCoordinates(Document doc) { + NodeList toConvert = doc.getElementsByTagNameNS(NS, "GML_COORDINATES"); + for (int i = 0; i < toConvert.getLength(); ++i) { + Node cur = toConvert.item(i); + convertCoordinates(doc, cur); + } + } + + /** + * Will replace a gml:coordinates with a set of COORD with C1 and C2 childs. + */ + private void convertCoordinates(Document doc, Node gmlCoordinates) { + Node parent = gmlCoordinates.getParentNode(); + + String cs = gmlCoordinates.getAttributes().getNamedItem("cs").getTextContent(); + String decimal = gmlCoordinates.getAttributes().getNamedItem("decimal").getTextContent(); + String ts = gmlCoordinates.getAttributes().getNamedItem("ts").getTextContent(); + String raw = gmlCoordinates.getTextContent(); + + String[] coords = raw.split(Pattern.quote(ts)); + for (int j = 0; j < coords.length; j++) { + String coord = coords[j]; + Element coordNode = doc.createElementNS(NS, "COORD"); + String[] vals = coord.split(Pattern.quote(cs)); + for (int k = 0; k < vals.length; k++) { + String val = vals[k].replace(decimal, "."); + Element valNode = doc.createElementNS(NS, "C" + (k + 1)); + valNode.setTextContent(val); + coordNode.appendChild(valNode); + } + parent.insertBefore(coordNode, gmlCoordinates); + } + + parent.removeChild(gmlCoordinates); + } + + private static void saveDom(Document node, String filename) throws IOException { + OutputStream outputStream = new FileOutputStream(filename); + try { + OutputFormat format = new OutputFormat(); + format.setIndent(2); + format.setIndenting(true); + format.setPreserveSpace(false); + + XMLSerializer serializer = new XMLSerializer(); + serializer.setOutputFormat(format); + serializer.setOutputByteStream(outputStream); + serializer.serialize(node); + } finally { + outputStream.close(); + } + } + + public static void main(String[] args) throws ParserConfigurationException, IOException, SAXException, FlattenerException, TransformerException { + final String xslFilename = args[0]; + final String schemaFilename = args[1]; + final String[] xmlFilenames = (String[]) ArrayUtils.subarray(args, 2, args.length); + + File schemaLocation = null; + if (!schemaFilename.equalsIgnoreCase("no")) { + schemaLocation = new File(schemaFilename); + } + ISO19139CHEtoGM03 converter = new ISO19139CHEtoGM03(schemaLocation, xslFilename); + + for (int i = 0; i < xmlFilenames.length; i++) { + String xmlFilename = xmlFilenames[i]; + converter.convert(xmlFilename); + } + } + + public static class FlattenerException extends Exception { + public FlattenerException(String message) { + super(message); + } + } + + /** + * A DOM child node iterator that takes a snapshot of the list of child nodes + * at construction. It is therefore not impacted by the modifications while iterating + */ + private class ChildIterator implements Iterator<Node> { + private final List<Node> childs; + private int pos = 0; + + public ChildIterator(Node root) { + childs = new ArrayList<Node>(); + for (Node child = root.getFirstChild(); child != null; child = child.getNextSibling()) { + childs.add(child); + } + } + + public boolean hasNext() { + return pos < childs.size(); + } + + public Node next() { + return childs.get(pos++); + } + + public void remove() { + throw new UnsupportedOperationException(); + } + } +} Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/util/TranslateAndValidate.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/util/TranslateAndValidate.java 2009-01-14 14:26:03 UTC (rev 1961) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/util/TranslateAndValidate.java 2009-01-14 14:59:53 UTC (rev 1962) @@ -34,8 +34,10 @@ for (int i = 0; i < xmlFilenames.length; i++) { String xmlFilename = xmlFilenames[i]; + final String xmlFilenameOnly = new File(xmlFilename).getName(); StringBuffer doc = translate(xmlFilename, xslt, false); - saveFile(doc, "result_" + new File(xmlFilename).getName()); + saveFile(doc, "result_" + xmlFilenameOnly); + saveFile(translate(xmlFilename, xslt, true), "intermediate_" + xmlFilenameOnly); validate(schema, xmlFilename, doc, xslt); } } @@ -83,7 +85,7 @@ writer.close(); } - private static class MyErrorHandler implements ErrorHandler { + public static class MyErrorHandler implements ErrorHandler { private boolean error = false; private final String xmlFilename; @@ -119,5 +121,9 @@ error = true; } + + public boolean isError() { + return error; + } } } \ No newline at end of file Added: sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/gm03/GM03_2.xsd =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/gm03/GM03_2.xsd (rev 0) +++ sandbox/geocat.ch/trunk/web/geonetwork/xml/schemas/gm03/GM03_2.xsd 2009-01-14 14:59:53 UTC (rev 1962) @@ -0,0 +1,6166 @@ +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.interlis.ch/INTERLIS2.3" xmlns:ili2c="http://www.interlis.ch/ili2c" targetNamespace="http://www.interlis.ch/INTERLIS2.3" elementFormDefault="qualified" attributeFormDefault="unqualified"> + <xsd:annotation> + <xsd:appinfo source="http://www.interlis.ch/ili2c/ili2cversion">4.0.1-20081114</xsd:appinfo> + <xsd:appinfo source="http://www.interlis.ch/ili2c"> + <ili2c:model>Units</ili2c:model> + <ili2c:modelVersion>2005-06-06</ili2c:modelVersion> + <ili2c:modelAt>http://www.interlis.ch/models</ili2c:modelAt> + </xsd:appinfo> + <xsd:appinfo source="http://www.interlis.ch/ili2c"> + <ili2c:model>CodeISO</ili2c:model> + <ili2c:modelVersion>20060808</ili2c:modelVersion> + <ili2c:modelAt>http://www.kogis.ch</ili2c:modelAt> + </xsd:appinfo> + <xsd:appinfo source="http://www.interlis.ch/ili2c"> + <ili2c:model>GM03_2Core</ili2c:model> + <ili2c:modelVersion>20081211</ili2c:modelVersion> + <ili2c:modelAt>http://www.kogis.ch</ili2c:modelAt> + </xsd:appinfo> + <xsd:appinfo source="http://www.interlis.ch/ili2c"> + <ili2c:model>GM03_2Comprehensive</ili2c:model> + <ili2c:modelVersion>20081211</ili2c:modelVersion> + <ili2c:modelAt>http://www.kogis.ch</ili2c:modelAt> + </xsd:appinfo> + </xsd:annotation> + <xsd:element name="TRANSFER" type="Transfer"/> + <xsd:simpleType name="IliID"> + <xsd:restriction base="xsd:string"> + <xsd:pattern value="([a-zA-Z_][0-9a-zA-Z_\-\.]*:)?[0-9a-zA-Z_][0-9a-zA-Z_\-\.]*"/> + </xsd:restriction> + </xsd:simpleType> + <xsd:complexType name="Transfer"> + <xsd:sequence> + <xsd:element name="HEADERSECTION" type="HeaderSection"/> + <xsd:element name="DATASECTION" type="DataSection"/> + </xsd:sequence> + </xsd:complexType> + <!-- ALIAS TABLE + <ENTRIES FOR="GM03_2Core"> + <TAGENTRY FROM="GM03_2Core.Core" TO="GM03_2Core.Core"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive" TO="GM03_2Core.Core"/> + <TAGENTRY FROM="GM03_2Core.Core.CharacterString_" TO="GM03_2Core.Core.CharacterString_"/> + <TAGENTRY FROM="GM03_2Core.Core.CharacterStringLong_" TO="GM03_2Core.Core.CharacterStringLong_"/> + <TAGENTRY FROM="GM03_2Core.Core.CI_RoleCode_" TO="GM03_2Core.Core.CI_RoleCode_"/> + <TAGENTRY FROM="GM03_2Core.Core.DateTime_" TO="GM03_2Core.Core.DateTime_"/> + <TAGENTRY FROM="GM03_2Core.Core.GM_Point_" TO="GM03_2Core.Core.GM_Point_"/> + <TAGENTRY FROM="GM03_2Core.Core.MD_CharacterSetCode_" TO="GM03_2Core.Core.MD_CharacterSetCode_"/> + <TAGENTRY FROM="GM03_2Core.Core.MD_ProgressCode_" TO="GM03_2Core.Core.MD_ProgressCode_"/> + <TAGENTRY FROM="GM03_2Core.Core.MD_ScopeCode_" TO="GM03_2Core.Core.MD_ScopeCode_"/> + <TAGENTRY FROM="GM03_2Core.Core.MD_SpatialRepresentationTypeCode_" TO="GM03_2Core.Core.MD_SpatialRepresentationTypeCode_"/> + <TAGENTRY FROM="GM03_2Core.Core.MD_TopicCategoryCode_" TO="GM03_2Core.Core.MD_TopicCategoryCode_"/> + <TAGENTRY FROM="GM03_2Core.Core.Real_" TO="GM03_2Core.Core.Real_"/> + <TAGENTRY FROM="GM03_2Core.Core.URL_" TO="GM03_2Core.Core.URL_"/> + <TAGENTRY FROM="GM03_2Core.Core.DQ_DataQuality" TO="GM03_2Core.Core.DQ_DataQuality"/> + <TAGENTRY FROM="GM03_2Core.Core.MD_Authority" TO="GM03_2Core.Core.MD_Authority"/> + <TAGENTRY FROM="GM03_2Core.Core.MD_DigitalTransferOptions" TO="GM03_2Core.Core.MD_DigitalTransferOptions"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_DigitalTransferOptions" TO="GM03_2Core.Core.MD_DigitalTransferOptions"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_DigitalTransferOptions" ATTR="unitsOfDistribution"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_DigitalTransferOptions" ATTR="transferSize"/> + <TAGENTRY FROM="GM03_2Core.Core.MD_Distribution" TO="GM03_2Core.Core.MD_Distribution"/> + <TAGENTRY FROM="GM03_2Core.Core.MD_ReferenceSystem" TO="GM03_2Core.Core.MD_ReferenceSystem"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_CRS" TO="GM03_2Core.Core.MD_ReferenceSystem"/> + <TAGENTRY FROM="GM03_2Core.Core.MD_Thesaurus" TO="GM03_2Core.Core.MD_Thesaurus"/> + <TAGENTRY FROM="GM03_2Core.Core.SC_VerticalDatum" TO="GM03_2Core.Core.SC_VerticalDatum"/> + <TAGENTRY FROM="GM03_2Core.Core.CI_Address" TO="GM03_2Core.Core.CI_Address"/> + <TAGENTRY FROM="GM03_2Core.Core.CI_Date" TO="GM03_2Core.Core.CI_Date"/> + <TAGENTRY FROM="GM03_2Core.Core.CI_Telephone" TO="GM03_2Core.Core.CI_Telephone"/> + <TAGENTRY FROM="GM03_2Core.Core.DQ_Scope" TO="GM03_2Core.Core.DQ_Scope"/> + <TAGENTRY FROM="GM03_2Core.Core.EX_VerticalExtent" TO="GM03_2Core.Core.EX_VerticalExtent"/> + <TAGENTRY FROM="GM03_2Core.Core.MD_Format" TO="GM03_2Core.Core.MD_Format"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_Format" TO="GM03_2Core.Core.MD_Format"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Format" ATTR="amendmentNumber"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Format" ATTR="specification"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Format" ATTR="fileDecompressionTechnique"/> + <TAGENTRY FROM="GM03_2Core.Core.MD_Metadata" TO="GM03_2Core.Core.MD_Metadata"/> + <TAGENTRY FROM="GM03_2Core.Core.MD_RepresentativeFraction" TO="GM03_2Core.Core.MD_RepresentativeFraction"/> + <TAGENTRY FROM="GM03_2Core.Core.MD_Resolution" TO="GM03_2Core.Core.MD_Resolution"/> + <TAGENTRY FROM="GM03_2Core.Core.MD_ScopeDescription" TO="GM03_2Core.Core.MD_ScopeDescription"/> + <TAGENTRY FROM="GM03_2Core.Core.PT_Group" TO="GM03_2Core.Core.PT_Group"/> + <TAGENTRY FROM="GM03_2Core.Core.PT_URLGroup" TO="GM03_2Core.Core.PT_URLGroup"/> + <TAGENTRY FROM="GM03_2Core.Core.TM_Primitive" TO="GM03_2Core.Core.TM_Primitive"/> + <TAGENTRY FROM="GM03_2Core.Core.MD_DistributiontransferOptions" TO="GM03_2Core.Core.MD_DistributiontransferOptions"/> + <TAGENTRY FROM="GM03_2Core.Core.EX_BoundingPolygon" TO="GM03_2Core.Core.EX_BoundingPolygon"/> + <TAGENTRY FROM="GM03_2Core.Core.EX_GeographicBoundingBox" TO="GM03_2Core.Core.EX_GeographicBoundingBox"/> + <TAGENTRY FROM="GM03_2Core.Core.EX_GeographicDescription" TO="GM03_2Core.Core.EX_GeographicDescription"/> + <TAGENTRY FROM="GM03_2Core.Core.EX_TemporalExtent" TO="GM03_2Core.Core.EX_TemporalExtent"/> + <TAGENTRY FROM="GM03_2Core.Core.EX_SpatialTemporalExtent" TO="GM03_2Core.Core.EX_TemporalExtent"/> + <TAGENTRY FROM="GM03_2Core.Core.PT_FreeText" TO="GM03_2Core.Core.PT_FreeText"/> + <TAGENTRY FROM="GM03_2Core.Core.PT_FreeURL" TO="GM03_2Core.Core.PT_FreeURL"/> + <TAGENTRY FROM="GM03_2Core.Core.distributionInfoMD_Metadata" TO="GM03_2Core.Core.distributionInfoMD_Metadata"/> + <TAGENTRY FROM="GM03_2Core.Core.DQ_ScopelevelDescription" TO="GM03_2Core.Core.DQ_ScopelevelDescription"/> + <TAGENTRY FROM="GM03_2Core.Core.MD_DistributiondistributionFormat" TO="GM03_2Core.Core.MD_DistributiondistributionFormat"/> + <TAGENTRY FROM="GM03_2Core.Core.MD_MetadatadataQualityInfo" TO="GM03_2Core.Core.MD_MetadatadataQualityInfo"/> + <TAGENTRY FROM="GM03_2Core.Core.MD_ResolutionequivalentScale" TO="GM03_2Core.Core.MD_ResolutionequivalentScale"/> + <TAGENTRY FROM="GM03_2Core.Core.parentIdentifierMD_Metadata" TO="GM03_2Core.Core.parentIdentifierMD_Metadata"/> + <TAGENTRY FROM="GM03_2Core.Core.referenceSystemInfoMD_Metadata" TO="GM03_2Core.Core.referenceSystemInfoMD_Metadata"/> + <TAGENTRY FROM="GM03_2Core.Core.scopeDQ_DataQuality" TO="GM03_2Core.Core.scopeDQ_DataQuality"/> + <TAGENTRY FROM="GM03_2Core.Core.verticalDatumEX_VerticalExtent" TO="GM03_2Core.Core.verticalDatumEX_VerticalExtent"/> + <TAGENTRY FROM="GM03_2Core.Core.CI_Citation" TO="GM03_2Core.Core.CI_Citation"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.CI_Citation" TO="GM03_2Core.Core.CI_Citation"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.CI_Citation" ATTR="edition"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.CI_Citation" ATTR="editionDate"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.CI_Citation" ATTR="presentationForm"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.CI_Citation" ATTR="ISBN"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.CI_Citation" ATTR="ISSN"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.CI_Citation" ATTR="alternateTitle"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.CI_Citation" ATTR="collectiveTitle"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.CI_Citation" ATTR="otherCitationDetails"/> + <TAGENTRY FROM="GM03_2Core.Core.CI_Contact" TO="GM03_2Core.Core.CI_Contact"/> + <TAGENTRY FROM="GM03_2Core.Core.CI_OnlineResource" TO="GM03_2Core.Core.CI_OnlineResource"/> + <TAGENTRY FROM="GM03_2Core.Core.CI_ResponsibleParty" TO="GM03_2Core.Core.CI_ResponsibleParty"/> + <TAGENTRY FROM="GM03_2Core.Core.EX_Extent" TO="GM03_2Core.Core.EX_Extent"/> + <TAGENTRY FROM="GM03_2Core.Core.EX_SpatialTemporalExtent" TO="GM03_2Core.Core.EX_SpatialTemporalExtent"/> + <TAGENTRY FROM="GM03_2Core.Core.LI_Lineage" TO="GM03_2Core.Core.LI_Lineage"/> + <TAGENTRY FROM="GM03_2Core.Core.MD_Identifier" TO="GM03_2Core.Core.MD_Identifier"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.RS_Identifier" TO="GM03_2Core.Core.MD_Identifier"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.RS_Identifier" ATTR="codeSpace"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.RS_Identifier" ATTR="version"/> + <TAGENTRY FROM="GM03_2Core.Core.RS_Identifier" TO="GM03_2Core.Core.MD_Identifier"/> + <TAGENTRY FROM="GM03_2Core.Core.MD_Keywords" TO="GM03_2Core.Core.MD_Keywords"/> + <TAGENTRY FROM="GM03_2Core.Core.MD_DataIdentification" TO="GM03_2Core.Core.MD_DataIdentification"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_DataIdentification" TO="GM03_2Core.Core.MD_DataIdentification"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_DataIdentification" ATTR="ProjectType"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_DataIdentification" ATTR="credit"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_DataIdentification" ATTR="basicGeodataID"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_DataIdentification" ATTR="basicGeodataIDType"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_DataIdentification" ATTR="environmentDescription"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_DataIdentification" ATTR="supplementalInformation"/> + <TAGENTRY FROM="GM03_2Core.Core.RS_Identifier" TO="GM03_2Core.Core.RS_Identifier"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.RS_Identifier" TO="GM03_2Core.Core.RS_Identifier"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.RS_Identifier" ATTR="codeSpace"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.RS_Identifier" ATTR="version"/> + <TAGENTRY FROM="GM03_2Core.Core.authorityMD_Identifier" TO="GM03_2Core.Core.authorityMD_Identifier"/> + <TAGENTRY FROM="GM03_2Core.Core.CI_Citationdate" TO="GM03_2Core.Core.CI_Citationdate"/> + <TAGENTRY FROM="GM03_2Core.Core.CI_ResponsiblePartyaddress" TO="GM03_2Core.Core.CI_ResponsiblePartyaddress"/> + <TAGENTRY FROM="GM03_2Core.Core.CI_ResponsiblePartycontactInfo" TO="GM03_2Core.Core.CI_ResponsiblePartycontactInfo"/> + <TAGENTRY FROM="GM03_2Core.Core.CI_ResponsiblePartyparentinfo" TO="GM03_2Core.Core.CI_ResponsiblePartyparentinfo"/> + <TAGENTRY FROM="GM03_2Core.Core.CI_ResponsiblePartyphone" TO="GM03_2Core.Core.CI_ResponsiblePartyphone"/> + <TAGENTRY FROM="GM03_2Core.Core.citationCI_Citation" TO="GM03_2Core.Core.citationCI_Citation"/> + <TAGENTRY FROM="GM03_2Core.Core.descriptiveKeywordsMD_Identification" TO="GM03_2Core.Core.descriptiveKeywordsMD_Identification"/> + <TAGENTRY FROM="GM03_2Core.Core.DQ_DataQualitylineage" TO="GM03_2Core.Core.DQ_DataQualitylineage"/> + <TAGENTRY FROM="GM03_2Core.Core.EX_ExtentgeographicElement" TO="GM03_2Core.Core.EX_ExtentgeographicElement"/> + <TAGENTRY FROM="GM03_2Core.Core.EX_ExtenttemporalElement" TO="GM03_2Core.Core.EX_ExtenttemporalElement"/> + <TAGENTRY FROM="GM03_2Core.Core.EX_ExtentverticalElement" TO="GM03_2Core.Core.EX_ExtentverticalElement"/> + <TAGENTRY FROM="GM03_2Core.Core.EX_GeographicDescriptiongeographicIdentifier" TO="GM03_2Core.Core.EX_GeographicDescriptiongeographicIdentifier"/> + <TAGENTRY FROM="GM03_2Core.Core.MD_DigitalTransferOptionsonLine" TO="GM03_2Core.Core.MD_DigitalTransferOptionsonLine"/> + <TAGENTRY FROM="GM03_2Core.Core.MD_Identificationcitation" TO="GM03_2Core.Core.MD_Identificationcitation"/> + <TAGENTRY FROM="GM03_2Core.Core.MD_IdentificationpointOfContact" TO="GM03_2Core.Core.MD_IdentificationpointOfContact"/> + <TAGENTRY FROM="GM03_2Core.Core.MD_Keywordsthesaurus" TO="GM03_2Core.Core.MD_Keywordsthesaurus"/> + <TAGENTRY FROM="GM03_2Core.Core.MD_Metadatacontact" TO="GM03_2Core.Core.MD_Metadatacontact"/> + <TAGENTRY FROM="GM03_2Core.Core.MD_MetadataidentificationInfo" TO="GM03_2Core.Core.MD_MetadataidentificationInfo"/> + <TAGENTRY FROM="GM03_2Core.Core.MD_Thesauruscitation" TO="GM03_2Core.Core.MD_Thesauruscitation"/> + <TAGENTRY FROM="GM03_2Core.Core.spatialExtentEX_SpatialTemporalExtent" TO="GM03_2Core.Core.spatialExtentEX_SpatialTemporalExtent"/> + <TAGENTRY FROM="GM03_2Core.Core.MD_DataIdentificationextent" TO="GM03_2Core.Core.MD_DataIdentificationextent"/> + <TAGENTRY FROM="GM03_2Core.Core.MD_DataIdentificationspatialResolution" TO="GM03_2Core.Core.MD_DataIdentificationspatialResolution"/> + <TAGENTRY FROM="GM03_2Core.Core.MD_ReferenceSystemreferenceSystemIdentifier" TO="GM03_2Core.Core.MD_ReferenceSystemreferenceSystemIdentifier"/> + <TAGENTRY FROM="GM03_2Core.Core.SC_VerticalDatumdatumID" TO="GM03_2Core.Core.SC_VerticalDatumdatumID"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.CI_PresentationFormCode_"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.DCPList_"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.GenericName_"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_MediumFormatCode_"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_RestrictionCode_"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.Record_"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.CI_Series"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.Duration"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.gml_CodeType"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.LI_ProcessStep"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.LI_Source"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_ArchiveConcept"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Attribute"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_BrowseGraphic"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_CodeDomain"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_CodeValue"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Constraints"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Distributor"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_EllipsoidParameters"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_HistoryConcept"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_MetadataExtensionInformation"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_ObliqueLineAzimuth"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_ObliqueLinePoint"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_PortrayalCatalogueReference"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_ProjectionParameters"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Revision"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Role"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_StandardOrderProcess"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Type"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Usage"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.SV_OperationChainMetadata"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.DQ_Scopeextent"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.resourceFormatMD_Identification"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.DQ_ConformanceResult"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.DQ_QuantitativeResult"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_AggregateInformation"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_ApplicationSchemaInformation"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Association"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Class"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_CoverageDescription"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Dimension"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_ExtendedElementInformation"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_FeatureCatalogueDescription"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_GeometricObjects"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_GridSpatialRepresentation"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_LegalConstraints"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Legislation"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Medium"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_RangeDimension"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_SecurityConstraints"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_VectorSpatialRepresentation"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.SV_CoupledResource"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.SV_OperationMetadata"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.SV_Parameter"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.anonymousTypeMD_Attribute"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.attributeMD_AbstractClass"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.contentInfoMD_Metadata"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.distributionOrderProcessMD_Distributor"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.distributorTransferOptionsMD_Distributor"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.ellipsoidParametersMD_CRS"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.formatDistributordistributorFormat"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.graphicOverviewMD_Identification"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.LI_ProcessStepprocessor"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.LI_SourcescaleDenominator"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.LI_SourcesourceExtent"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.LI_SourcesourceReferenceSystem"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_ArchiveConceptarchiveConceptCitation"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_AttributenamedType"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_CRSdatum"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_CRSellipsoid"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_CRSprojection"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Distributiondistributor"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_DistributordistributorContact"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_HistoryConcepthistoryConceptCitation"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_MetadataExtensionInfoextensionOnLineResource"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_MetadatametadataConstraints"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_MetadataspatialRepresentationInfo"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_RevisionrevisionContact"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_RevisionrevisionExtent"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_RevisionrevisionScopeDescription"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_RoletoClass"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_UsageuserContactInfo"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.metadataExtensionInfoMD_Metadata"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.obliqueLineAzimuthParameterMD_ProjectionParameters"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.obliqueLinePointParameterMD_ProjectionParameters"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.portrayalCatalogueInfoMD_Metadata"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.processStepLI_Lineage"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.projectionParametersMD_CRS"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.resourceConstraintsMD_Identification"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.resourceSpecificUsageMD_Identification"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.revisionMD_Identification"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.sourceLI_Lineage"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.sourceStepsource"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.subClassbaseClass"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.subDomainbaseDomain"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.subValueMD_CodeValue"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.typeMD_CodeDomain"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.valueMD_Type"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Band"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Georectified"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Georeferenceable"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_ImageDescription"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_MaintenanceInformation"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.SV_ServiceIdentification"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.aggregationInfo_MD_Identification"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.applicationSchemaInfoMD_Metadata"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.axisDimensionPropertiesMD_GridSpatialRepresentation"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.CI_CitationcitedResponsibleParty"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.CI_Citationidentifier"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.CI_Citationseries"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.classMD_FeatureCatalogueDescription"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.dimensionMD_CoverageDescription"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.domainMD_FeatureCatalogueDescription"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.DQ_ConformanceResultspecification"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.DQ_ElementevaluationProcedure"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.DQ_ElementmeasureIdentification"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.extendedElementInformationMD_MetadataExtensionInformation"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.featureCatalogueCitationCI_Citation"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.legislationConstraintsMD_LegalConstraints"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.LI_SourcesourceCitation"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_AggregateInformationaggregateDataSetIdentifier"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_AggregateInformationaggregateDataSetName"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_ApplicationSchemaInformationname"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_DigitalTransferOptionsoffLine"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_ExtendedElementInformationsource"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Legislationtitle"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_MetadatalegislationInformation"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_PortrayalCatalogueReferenceportrayalCatalogueCitation"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_VectorSpatialRepresentationgeometricObjects"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.parametersoperation"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.reportDQ_DataQuality"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.resultDQ_Element"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.roleMD_Association"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.SV_OperationChainMetadataoperation"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.SV_OperationMetadataconnectPoint"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.DQ_AbsoluteExternalPositionalAccuracy"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.DQ_AccuracyOfATimeMeasurement"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.DQ_CompletenessCommission"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.DQ_CompletenessOmission"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.DQ_ConceptualConsistency"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.DQ_DomainConsistency"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.DQ_FormatConsistency"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.DQ_GriddedDataPositionalAccuracy"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.DQ_NonQuantitativeAttributeAccuracy"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.DQ_QuantitativeAttributeAccuracy"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.DQ_RelativeInternalPositionalAccuracy"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.DQ_TemporalConsistency"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.DQ_TemporalValidity"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.DQ_ThematicClassificationCorrectness"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.DQ_TopologicalConsistency"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.containsOperationsSV_ServiceIdentification"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.extentSV_ServiceIdentification"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_GeoreferenceableparameterCitation"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_ImageDescriptionimageQualitiyCode"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_ImageDescriptionprocessingLevelCode"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_MaintenanceInformationarchiveConcept"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_MaintenanceInformationcontact"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_MaintenanceInformationhistoryConcept"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_MaintenanceInformationupdateScopeDescription"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_MetadatametadataMaintenance"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.resourceMaintenanceMD_Identification"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.SV_ServiceIdentificationaccessProperties"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.SV_ServiceIdentificationrestrictions"/> + </ENTRIES> + <ENTRIES FOR="GM03_2Comprehensive"> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive" TO="GM03_2Comprehensive.Comprehensive"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.CI_PresentationFormCode_" TO="GM03_2Comprehensive.Comprehensive.CI_PresentationFormCode_"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.DCPList_" TO="GM03_2Comprehensive.Comprehensive.DCPList_"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.GenericName_" TO="GM03_2Comprehensive.Comprehensive.GenericName_"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_MediumFormatCode_" TO="GM03_2Comprehensive.Comprehensive.MD_MediumFormatCode_"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_RestrictionCode_" TO="GM03_2Comprehensive.Comprehensive.MD_RestrictionCode_"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.Record_" TO="GM03_2Comprehensive.Comprehensive.Record_"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.CI_Series" TO="GM03_2Comprehensive.Comprehensive.CI_Series"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.Duration" TO="GM03_2Comprehensive.Comprehensive.Duration"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.gml_CodeType" TO="GM03_2Comprehensive.Comprehensive.gml_CodeType"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.LI_ProcessStep" TO="GM03_2Comprehensive.Comprehensive.LI_ProcessStep"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.LI_Source" TO="GM03_2Comprehensive.Comprehensive.LI_Source"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_ArchiveConcept" TO="GM03_2Comprehensive.Comprehensive.MD_ArchiveConcept"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_Attribute" TO="GM03_2Comprehensive.Comprehensive.MD_Attribute"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_BrowseGraphic" TO="GM03_2Comprehensive.Comprehensive.MD_BrowseGraphic"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_CodeDomain" TO="GM03_2Comprehensive.Comprehensive.MD_CodeDomain"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_CodeValue" TO="GM03_2Comprehensive.Comprehensive.MD_CodeValue"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_Constraints" TO="GM03_2Comprehensive.Comprehensive.MD_Constraints"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_LegalConstraints" TO="GM03_2Comprehensive.Comprehensive.MD_Constraints"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_LegalConstraints" ATTR="accessConstraints"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_LegalConstraints" ATTR="useConstraints"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_LegalConstraints" ATTR="otherConstraints"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_SecurityConstraints" TO="GM03_2Comprehensive.Comprehensive.MD_Constraints"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_SecurityConstraints" ATTR="classification"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_SecurityConstraints" ATTR="classificationSystem"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_SecurityConstraints" ATTR="userNote"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_SecurityConstraints" ATTR="handlingDescription"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_CRS" TO="GM03_2Comprehensive.Comprehensive.MD_CRS"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_DigitalTransferOptions" TO="GM03_2Comprehensive.Comprehensive.MD_DigitalTransferOptions"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_Distributor" TO="GM03_2Comprehensive.Comprehensive.MD_Distributor"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_EllipsoidParameters" TO="GM03_2Comprehensive.Comprehensive.MD_EllipsoidParameters"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_Format" TO="GM03_2Comprehensive.Comprehensive.MD_Format"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_HistoryConcept" TO="GM03_2Comprehensive.Comprehensive.MD_HistoryConcept"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_MetadataExtensionInformation" TO="GM03_2Comprehensive.Comprehensive.MD_MetadataExtensionInformation"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_ObliqueLineAzimuth" TO="GM03_2Comprehensive.Comprehensive.MD_ObliqueLineAzimuth"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_ObliqueLinePoint" TO="GM03_2Comprehensive.Comprehensive.MD_ObliqueLinePoint"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_PortrayalCatalogueReference" TO="GM03_2Comprehensive.Comprehensive.MD_PortrayalCatalogueReference"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_ProjectionParameters" TO="GM03_2Comprehensive.Comprehensive.MD_ProjectionParameters"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_Revision" TO="GM03_2Comprehensive.Comprehensive.MD_Revision"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_Role" TO="GM03_2Comprehensive.Comprehensive.MD_Role"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_StandardOrderProcess" TO="GM03_2Comprehensive.Comprehensive.MD_StandardOrderProcess"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_Type" TO="GM03_2Comprehensive.Comprehensive.MD_Type"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_Usage" TO="GM03_2Comprehensive.Comprehensive.MD_Usage"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.RS_Identifier" TO="GM03_2Comprehensive.Comprehensive.RS_Identifier"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.SV_OperationChainMetadata" TO="GM03_2Comprehensive.Comprehensive.SV_OperationChainMetadata"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.DQ_Scopeextent" TO="GM03_2Comprehensive.Comprehensive.DQ_Scopeextent"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.resourceFormatMD_Identification" TO="GM03_2Comprehensive.Comprehensive.resourceFormatMD_Identification"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.CI_Citation" TO="GM03_2Comprehensive.Comprehensive.CI_Citation"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.DQ_ConformanceResult" TO="GM03_2Comprehensive.Comprehensive.DQ_ConformanceResult"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.DQ_QuantitativeResult" TO="GM03_2Comprehensive.Comprehensive.DQ_QuantitativeResult"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_AggregateInformation" TO="GM03_2Comprehensive.Comprehensive.MD_AggregateInformation"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_ApplicationSchemaInformation" TO="GM03_2Comprehensive.Comprehensive.MD_ApplicationSchemaInformation"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_Association" TO="GM03_2Comprehensive.Comprehensive.MD_Association"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_Class" TO="GM03_2Comprehensive.Comprehensive.MD_Class"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_CoverageDescription" TO="GM03_2Comprehensive.Comprehensive.MD_CoverageDescription"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_ImageDescription" TO="GM03_2Comprehensive.Comprehensive.MD_CoverageDescription"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_ImageDescription" ATTR="illuminationElevationAngle"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_ImageDescription" ATTR="illuminationAzimuthAngle"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_ImageDescription" ATTR="imagingCondition"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_ImageDescription" ATTR="cloudCoverPercentage"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_ImageDescription" ATTR="compressionGenerationQuantity"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_ImageDescription" ATTR="triangulationIndicator"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_ImageDescription" ATTR="radiometricCalibrationDataAvailability"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_ImageDescription" ATTR="cameraCalibrationInformationAvailability"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_ImageDescription" ATTR="filmDistortionInformationAvailability"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_ImageDescription" ATTR="lensDistortionInformationAvailability"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_DataIdentification" TO="GM03_2Comprehensive.Comprehensive.MD_DataIdentification"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_Dimension" TO="GM03_2Comprehensive.Comprehensive.MD_Dimension"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_ExtendedElementInformation" TO="GM03_2Comprehensive.Comprehensive.MD_ExtendedElementInformation"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_FeatureCatalogueDescription" TO="GM03_2Comprehensive.Comprehensive.MD_FeatureCatalogueDescription"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_GeometricObjects" TO="GM03_2Comprehensive.Comprehensive.MD_GeometricObjects"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_GridSpatialRepresentation" TO="GM03_2Comprehensive.Comprehensive.MD_GridSpatialRepresentation"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_Georectified" TO="GM03_2Comprehensive.Comprehensive.MD_GridSpatialRepresentation"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Georectified" ATTR="checkPointAvailability"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Georectified" ATTR="checkPointDescription"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Georectified" ATTR="cornerPoints"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Georectified" ATTR="centerPoint"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Georectified" ATTR="pointInPixel"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Georectified" ATTR="transformationDimensionDescription"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Georectified" ATTR="transformationDimensionMapping"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_Georeferenceable" TO="GM03_2Comprehensive.Comprehensive.MD_GridSpatialRepresentation"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Georeferenceable" ATTR="controlPointAvailability"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Georeferenceable" ATTR="orientationParameterAvailability"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Georeferenceable" ATTR="orientationParameterDescription"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Georeferenceable" ATTR="georeferencedParameters"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_LegalConstraints" TO="GM03_2Comprehensive.Comprehensive.MD_LegalConstraints"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_Legislation" TO="GM03_2Comprehensive.Comprehensive.MD_Legislation"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_Medium" TO="GM03_2Comprehensive.Comprehensive.MD_Medium"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_RangeDimension" TO="GM03_2Comprehensive.Comprehensive.MD_RangeDimension"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_Band" TO="GM03_2Comprehensive.Comprehensive.MD_RangeDimension"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Band" ATTR="maxValue"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Band" ATTR="minValue"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Band" ATTR="units"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Band" ATTR="peakResponse"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Band" ATTR="bitsPerValue"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Band" ATTR="toneGradation"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Band" ATTR="scaleFactor"/> + <DELENTRY TAG="GM03_2Comprehensive.Comprehensive.MD_Band" ATTR="offset"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_SecurityConstraints" TO="GM03_2Comprehensive.Comprehensive.MD_SecurityConstraints"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_VectorSpatialRepresentation" TO="GM03_2Comprehensive.Comprehensive.MD_VectorSpatialRepresentation"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.SV_CoupledResource" TO="GM03_2Comprehensive.Comprehensive.SV_CoupledResource"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.SV_OperationMetadata" TO="GM03_2Comprehensive.Comprehensive.SV_OperationMetadata"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.SV_Parameter" TO="GM03_2Comprehensive.Comprehensive.SV_Parameter"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.anonymousTypeMD_Attribute" TO="GM03_2Comprehensive.Comprehensive.anonymousTypeMD_Attribute"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.attributeMD_AbstractClass" TO="GM03_2Comprehensive.Comprehensive.attributeMD_AbstractClass"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.contentInfoMD_Metadata" TO="GM03_2Comprehensive.Comprehensive.contentInfoMD_Metadata"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.distributionOrderProcessMD_Distributor" TO="GM03_2Comprehensive.Comprehensive.distributionOrderProcessMD_Distributor"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.distributorTransferOptionsMD_Distributor" TO="GM03_2Comprehensive.Comprehensive.distributorTransferOptionsMD_Distributor"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.ellipsoidParametersMD_CRS" TO="GM03_2Comprehensive.Comprehensive.ellipsoidParametersMD_CRS"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.formatDistributordistributorFormat" TO="GM03_2Comprehensive.Comprehensive.formatDistributordistributorFormat"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.graphicOverviewMD_Identification" TO="GM03_2Comprehensive.Comprehensive.graphicOverviewMD_Identification"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.LI_ProcessStepprocessor" TO="GM03_2Comprehensive.Comprehensive.LI_ProcessStepprocessor"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.LI_SourcescaleDenominator" TO="GM03_2Comprehensive.Comprehensive.LI_SourcescaleDenominator"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.LI_SourcesourceExtent" TO="GM03_2Comprehensive.Comprehensive.LI_SourcesourceExtent"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.LI_SourcesourceReferenceSystem" TO="GM03_2Comprehensive.Comprehensive.LI_SourcesourceReferenceSystem"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_ArchiveConceptarchiveConceptCitation" TO="GM03_2Comprehensive.Comprehensive.MD_ArchiveConceptarchiveConceptCitation"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_AttributenamedType" TO="GM03_2Comprehensive.Comprehensive.MD_AttributenamedType"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_CRSdatum" TO="GM03_2Comprehensive.Comprehensive.MD_CRSdatum"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_CRSellipsoid" TO="GM03_2Comprehensive.Comprehensive.MD_CRSellipsoid"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_CRSprojection" TO="GM03_2Comprehensive.Comprehensive.MD_CRSprojection"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_Distributiondistributor" TO="GM03_2Comprehensive.Comprehensive.MD_Distributiondistributor"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_DistributordistributorContact" TO="GM03_2Comprehensive.Comprehensive.MD_DistributordistributorContact"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_HistoryConcepthistoryConceptCitation" TO="GM03_2Comprehensive.Comprehensive.MD_HistoryConcepthistoryConceptCitation"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_MetadataExtensionInfoextensionOnLineResource" TO="GM03_2Comprehensive.Comprehensive.MD_MetadataExtensionInfoextensionOnLineResource"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_MetadatametadataConstraints" TO="GM03_2Comprehensive.Comprehensive.MD_MetadatametadataConstraints"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_MetadataspatialRepresentationInfo" TO="GM03_2Comprehensive.Comprehensive.MD_MetadataspatialRepresentationInfo"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_RevisionrevisionContact" TO="GM03_2Comprehensive.Comprehensive.MD_RevisionrevisionContact"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_RevisionrevisionExtent" TO="GM03_2Comprehensive.Comprehensive.MD_RevisionrevisionExtent"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_RevisionrevisionScopeDescription" TO="GM03_2Comprehensive.Comprehensive.MD_RevisionrevisionScopeDescription"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_RoletoClass" TO="GM03_2Comprehensive.Comprehensive.MD_RoletoClass"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.MD_UsageuserContactInfo" TO="GM03_2Comprehensive.Comprehensive.MD_UsageuserContactInfo"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.metadataExtensionInfoMD_Metadata" TO="GM03_2Comprehensive.Comprehensive.metadataExtensionInfoMD_Metadata"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.obliqueLineAzimuthParameterMD_ProjectionParameters" TO="GM03_2Comprehensive.Comprehensive.obliqueLineAzimuthParameterMD_ProjectionParameters"/> + <TAGENTRY FROM="GM03_2Comprehensive.Comprehensive.obliqueLinePointParameterMD_ProjectionParameters" TO="GM03_2Comprehensive.Comprehensive.obliqueLinePointParameterMD_ProjectionParameters"/> + <TAGENTRY ... [truncated message content] |
From: <pva...@us...> - 2009-01-15 13:02:28
|
Revision: 1966 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1966&view=rev Author: pvalsecc Date: 2009-01-15 13:02:17 +0000 (Thu, 15 Jan 2009) Log Message: ----------- Doing some progress in the ISO -> GM03 export Modified Paths: -------------- sandbox/geocat.ch/trunk/src/org/fao/geonet/util/ISO19139CHEtoGM03.java sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/19139CHE-to-GM03.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/distribution.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/extent.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/identification.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/metadata.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/ref-system.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/GM03to19139CHE/CHE03-to-19139.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/GM03to19139CHE/identification.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/import/test/test19139toCHE03.sh Added Paths: ----------- sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/data-quality.xsl sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/spatial_repr.xsl Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/util/ISO19139CHEtoGM03.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/util/ISO19139CHEtoGM03.java 2009-01-15 07:28:26 UTC (rev 1965) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/util/ISO19139CHEtoGM03.java 2009-01-15 13:02:17 UTC (rev 1966) @@ -148,13 +148,15 @@ xslt.transform(source, transformed); final Document doc = (Document) transformed.getNode(); - saveDom(doc, xmlFile.getParent() + "/intermediate_" + xmlFile.getName()); + String parent = xmlFile.getParent(); + if (parent == null) parent = "."; + saveDom(doc, parent + "/intermediate_" + xmlFile.getName()); flatten(doc); convertCoordinates(doc); //TODO: must remove the duplicates - final String resultFilename = xmlFile.getParent() + "/result_" + xmlFile.getName(); + final String resultFilename = parent + "/result_" + xmlFile.getName(); saveDom(doc, resultFilename); validate(resultFilename, doc); @@ -164,9 +166,10 @@ * Will replace all the gml:coordinates with a set of COORD with C1 and C2 childs. */ private void convertCoordinates(Document doc) { - NodeList toConvert = doc.getElementsByTagNameNS(NS, "GML_COORDINATES"); - for (int i = 0; i < toConvert.getLength(); ++i) { - Node cur = toConvert.item(i); + while (true) { + NodeList toConvert = doc.getElementsByTagNameNS(NS, "GML_COORDINATES"); + if (toConvert.getLength() == 0) break; + Node cur = toConvert.item(0); convertCoordinates(doc, cur); } } Modified: sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/19139CHE-to-GM03.xsl =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/19139CHE-to-GM03.xsl 2009-01-15 07:28:26 UTC (rev 1965) +++ sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/19139CHE-to-GM03.xsl 2009-01-15 13:02:17 UTC (rev 1966) @@ -14,6 +14,8 @@ <xsl:include href="ref-system.xsl"/> <xsl:include href="identification.xsl"/> <xsl:include href="extent.xsl"/> + <xsl:include href="data-quality.xsl"/> + <xsl:include href="spatial_repr.xsl"/> <xsl:template match="/"> <TRANSFER> @@ -37,6 +39,7 @@ <xsl:when test="$lang3='fra'">fr</xsl:when> <xsl:when test="$lang3='ita'">it</xsl:when> <xsl:when test="$lang3='eng'">en</xsl:when> + <xsl:when test="$lang3='rhe'">rm</xsl:when> <xsl:otherwise>ERROR<xsl:value-of select="$lang3"/></xsl:otherwise> </xsl:choose> </xsl:template> @@ -49,6 +52,30 @@ </xsl:for-each> </xsl:variable> + <xsl:template mode="groupText" match="*"> + <xsl:param name="element"/> + <xsl:element name="{$element}"> + <xsl:for-each select="*[local-name()=$element]"> + <GM03_2Core.Core.PT_FreeText> + <textGroup> + <xsl:for-each select="gco:CharacterString"> + <GM03_2Core.Core.PT_Group> + <language><xsl:value-of select="$defaultLanguage"/></language> + <plainText><xsl:value-of select="."/></plainText> + </GM03_2Core.Core.PT_Group> + </xsl:for-each> + <xsl:for-each select="gmd:PT_FreeText/gmd:textGroup/gmd:LocalisedCharacterString"> + <GM03_2Core.Core.PT_Group> + <xsl:apply-templates mode="text" select="@locale"/> + <plainText><xsl:value-of select="."/></plainText> + </GM03_2Core.Core.PT_Group> + </xsl:for-each> + </textGroup> + </GM03_2Core.Core.PT_FreeText> + </xsl:for-each> + </xsl:element> + </xsl:template> + <xsl:template mode="text" match="*[@xsi:type='gmd:PT_FreeText_PropertyType']" priority="2"> <xsl:element name="{local-name(.)}"> <GM03_2Core.Core.PT_FreeText> @@ -94,12 +121,21 @@ </xsl:element> </xsl:template> + <xsl:template mode="text" match="*[*/@codeListValue]"> + <xsl:for-each select="*"> + <xsl:element name="{local-name(..)}"> + <xsl:value-of select="@codeListValue"/> + </xsl:element> + </xsl:for-each> + </xsl:template> + <xsl:template mode="text" match="@locale"> <language><xsl:choose> <xsl:when test=".='#DE'">de</xsl:when> <xsl:when test=".='#FR'">fr</xsl:when> <xsl:when test=".='#IT'">it</xsl:when> <xsl:when test=".='#EN'">en</xsl:when> + <xsl:when test=".='#RM'">rm</xsl:when> <xsl:otherwise><xsl:value-of select="@locale"/></xsl:otherwise> </xsl:choose></language> </xsl:template> @@ -125,24 +161,12 @@ </xsl:element> </xsl:template> - <xsl:template mode="text" match="*[gmd:MD_CharacterSetCode]"> - <xsl:element name="{local-name(.)}"> - <xsl:value-of select="gmd:MD_CharacterSetCode/@codeListValue"/> - </xsl:element> - </xsl:template> - <xsl:template mode="text" match="*[gco:Date]"> <xsl:element name="{local-name(.)}"> <xsl:value-of select="gco:Date"/> </xsl:element> </xsl:template> - <xsl:template mode="text" match="*[gmd:MD_ScopeCode]"> - <xsl:element name="{local-name(.)}"> - <xsl:apply-templates mode="text"/> - </xsl:element> - </xsl:template> - <xsl:template mode="text" match="gmd:MD_ScopeCode"> <GM03_2Core.Core.MD_ScopeCode_> <value><xsl:value-of select="@codeListValue"/></value> Added: sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/data-quality.xsl =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/data-quality.xsl (rev 0) +++ sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/data-quality.xsl 2009-01-15 13:02:17 UTC (rev 1966) @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xsl:stylesheet version="1.0" + xmlns="http://www.interlis.ch/INTERLIS2.3" + xmlns:che="http://www.geocat.ch/2008/che" + xmlns:gco="http://www.isotc211.org/2005/gco" + xmlns:gmd="http://www.isotc211.org/2005/gmd" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:gml="http://www.opengis.net/gml" + exclude-result-prefixes="che gco gmd"> + + <xsl:template mode="DataQuality" match="gmd:DQ_DataQuality"> + <GM03_2Core.Core.DQ_DataQuality TID="x{generate-id(.)}"> + <BACK_REF name="MD_Metadata"/> + <xsl:apply-templates mode="DataQuality" select="gmd:scope"/> + <xsl:apply-templates mode="DataQuality" select="gmd:report"/> + <xsl:apply-templates mode="DataQuality" select="gmd:lineage"/> + </GM03_2Core.Core.DQ_DataQuality> + </xsl:template> + + <xsl:template mode="DataQuality" match="gmd:scope|gmd:report|gmd:lineage"> + <xsl:apply-templates mode="DataQuality"/> + </xsl:template> + + <xsl:template mode="DataQuality" match="gmd:DQ_Scope"> + <GM03_2Core.Core.DQ_Scope TID="x{generate-id(.)}"> + <xsl:apply-templates mode="text" select="gmd:level"/> + <BACK_REF name="DQ_DataQuality"/> + <xsl:apply-templates mode="DataQuality" select="gmd:extent"/> + <xsl:apply-templates mode="DataQuality" select="gmd:levelDescription"/> + </GM03_2Core.Core.DQ_Scope> + </xsl:template> + + <xsl:template mode="DataQuality" match="gmd:LI_Lineage"> + <GM03_2Core.Core.LI_Lineage TID="x{generate-id(.)}"> + <xsl:apply-templates mode="text" select="gmd:statement"/> + <BACK_REF name="DQ_DataQuality"/> + <xsl:apply-templates mode="DataQuality" select="gmd:processStep"/> + <xsl:apply-templates mode="DataQuality" select="gmd:source"/> + </GM03_2Core.Core.LI_Lineage> + </xsl:template> + + <xsl:template mode="DataQuality" match="*" priority="-100"> + <ERROR>Unknown DataQuality element <xsl:value-of select="local-name(.)"/></ERROR> + </xsl:template> +</xsl:stylesheet> + Modified: sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/distribution.xsl =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/distribution.xsl 2009-01-15 07:28:26 UTC (rev 1965) +++ sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/distribution.xsl 2009-01-15 13:02:17 UTC (rev 1966) @@ -32,7 +32,7 @@ <GM03_2Core.Core.CI_OnlineResource TID="x{generate-id(.)}"> <xsl:apply-templates mode="text" select="gmd:protocol"/> <xsl:apply-templates mode="text" select="gmd:applicationProfile"/> - <xsl:apply-templates mode="distribution" select="gmd:function"/> + <xsl:apply-templates mode="text" select="gmd:function"/> <xsl:apply-templates mode="text" select="gmd:description"/> <xsl:apply-templates mode="text" select="gmd:name"/> <xsl:apply-templates mode="text" select="gmd:linkage"/> @@ -40,11 +40,6 @@ </GM03_2Core.Core.CI_OnlineResource> </xsl:template> - <xsl:template mode="distribution" match="gmd:function"> - <function><xsl:value-of select="gmd:CI_OnLineFunctionCode/@codeListValue"/></function> - </xsl:template> - - <xsl:template mode="distribution" match="gmd:MD_Distribution"> <xsl:apply-templates mode="distribution"/> </xsl:template> Modified: sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/extent.xsl =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/extent.xsl 2009-01-15 07:28:26 UTC (rev 1965) +++ sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/extent.xsl 2009-01-15 13:02:17 UTC (rev 1966) @@ -35,9 +35,7 @@ </xsl:template> <xsl:template mode="Extent" match="gmd:polygon"> - <polygon> - <xsl:apply-templates mode="gml"/> - </polygon> + <xsl:apply-templates mode="gml"/> </xsl:template> <xsl:template mode="Extent" match="gmd:EX_GeographicBoundingBox"> @@ -74,6 +72,12 @@ <ERROR>Unknown Extent element <xsl:value-of select="local-name(.)"/></ERROR> </xsl:template> + <xsl:template mode="gml" match="gml:Polygon"> + <polygon> + <xsl:apply-templates mode="gml"/> + </polygon> + </xsl:template> + <xsl:template mode="gml" match="gml:exterior"> <SURFACE> <xsl:apply-templates mode="gml"/> @@ -100,5 +104,10 @@ <!-- will be converted by ISO19139CHEtoGM03 --> <GML_COORDINATES decimal="{@decimal}" cs="{@cs}" ts="{@ts}"><xsl:value-of select="."/></GML_COORDINATES> </xsl:template> + + <xsl:template mode="gml" match="*" priority="-100"> + <ERROR>Unknown gml element <xsl:value-of select="local-name(.)"/></ERROR> + </xsl:template> + </xsl:stylesheet> Modified: sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/identification.xsl =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/identification.xsl 2009-01-15 07:28:26 UTC (rev 1965) +++ sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/identification.xsl 2009-01-15 13:02:17 UTC (rev 1966) @@ -82,10 +82,11 @@ <xsl:template mode="DataIdentification" match="gmd:MD_Keywords"> <GM03_2Core.Core.MD_Keywords TID="x{generate-id(.)}"> - <xsl:for-each select="gmd:type/gmd:MD_KeywordTypeCode"> - <type><xsl:value-of select="@codeListValue"/></type> - </xsl:for-each> - <xsl:apply-templates mode="text" select="gmd:keyword"/> + <xsl:apply-templates mode="text" select="gmd:type"/> + <!--<xsl:apply-templates mode="text" select="gmd:keyword"/>--> + <xsl:apply-templates mode="groupText" select="."> + <xsl:with-param name="element">keyword</xsl:with-param> + </xsl:apply-templates> <xsl:apply-templates mode="DataIdentification" select="gmd:thesaurusName"/> </GM03_2Core.Core.MD_Keywords> </xsl:template> Modified: sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/metadata.xsl =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/metadata.xsl 2009-01-15 07:28:26 UTC (rev 1965) +++ sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/metadata.xsl 2009-01-15 13:02:17 UTC (rev 1966) @@ -14,13 +14,13 @@ <xsl:apply-templates mode="text" select="gmd:dateStamp"/> <xsl:apply-templates mode="text" select="gmd:metadataStandardName"/> <xsl:apply-templates mode="text" select="gmd:metadataStandardVersion"/> - <xsl:apply-templates mode="text" select="gmd:hierarchyLevel"/> + <xsl:apply-templates mode="metadata" select="gmd:hierarchyLevel"/> <xsl:apply-templates mode="metadata" select="gmd:hierarchyLevelName"/> <xsl:apply-templates mode="text" select="gmd:dataSetURI"/> <xsl:apply-templates mode="distribution" select="gmd:distributionInfo"/> <xsl:apply-templates mode="metadata" select="gmd:contact"/> <xsl:apply-templates mode="metadata" select="gmd:parentIdentifier"/> - <!--<xsl:apply-templates mode="metadata" select="gmd:locale"/>--> + <!--not figuring in GM03: <xsl:apply-templates mode="metadata" select="gmd:locale"/>--> <xsl:apply-templates mode="metadata" select="gmd:spatialRepresentationInfo"/> <xsl:apply-templates mode="RefSystem" select="gmd:referenceSystemInfo"/> <xsl:apply-templates mode="metadata" select="gmd:metadataExtensionInfo"/> @@ -40,6 +40,51 @@ </GM03_2Core.Core.MD_Metadata> </xsl:template> + <xsl:template mode="metadata" match="gmd:hierarchyLevel"> + <hierarchyLevel> + <xsl:for-each select="gmd:MD_ScopeCode"> + <GM03_2Core.Core.MD_ScopeCode_> + <value><xsl:value-of select="@codeListValue"/></value> + </GM03_2Core.Core.MD_ScopeCode_> + </xsl:for-each> + </hierarchyLevel> + </xsl:template> + + <xsl:template mode="metadata" match="gmd:spatialRepresentationInfo"> + <xsl:apply-templates mode="SpatialRepr"/> + </xsl:template> + + <xsl:template mode="metadata" match="gmd:portrayalCatalogueInfo"> + <GM03_2Comprehensive.Comprehensive.portrayalCatalogueInfoMD_Metadata TID="x{generate-id(.)}"> + <portrayalCatalogueInfo REF="?"> + <xsl:apply-templates mode="metadata"/> + </portrayalCatalogueInfo> + <BACK_REF name="MD_Metadata"/> + </GM03_2Comprehensive.Comprehensive.portrayalCatalogueInfoMD_Metadata> + </xsl:template> + + <xsl:template mode="metadata" match="gmd:MD_PortrayalCatalogueReference"> + <GM03_2Comprehensive.Comprehensive.MD_PortrayalCatalogueReference TID="x{generate-id(.)}"> + <!-- portrayalCatalogueURL? --> + <xsl:apply-templates mode="metadata" select="gmd:portrayalCatalogueCitation"/> + </GM03_2Comprehensive.Comprehensive.MD_PortrayalCatalogueReference> + </xsl:template> + + <xsl:template mode="metadata" match="gmd:portrayalCatalogueCitation"> + <xsl:apply-templates mode="metadata"/> + </xsl:template> + + <xsl:template mode="metadata" match="gmd:CI_Citation"> + <GM03_2Comprehensive.Comprehensive.CI_Citation TID="x{generate-id(.)}"> + <xsl:apply-templates mode="RefSystem" select="."/> + <BACK_REF name="MD_PortrayalCatalogReference"/> + </GM03_2Comprehensive.Comprehensive.CI_Citation> + </xsl:template> + + <xsl:template mode="metadata" match="gmd:dataQualityInfo"> + <xsl:apply-templates mode="DataQuality"/> + </xsl:template> + <xsl:template mode="metadata" match="gmd:contact"> <GM03_2Core.Core.MD_Metadatacontact TID="x{generate-id(.)}"> <contact REF="?"> Modified: sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/ref-system.xsl =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/ref-system.xsl 2009-01-15 07:28:26 UTC (rev 1965) +++ sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/ref-system.xsl 2009-01-15 13:02:17 UTC (rev 1966) @@ -71,11 +71,7 @@ <xsl:template mode="RefSystem" match="gmd:CI_Date"> <GM03_2Core.Core.CI_Date TID='x{generate-id(.)}'> <xsl:apply-templates mode="text" select="gmd:date"/> - <xsl:for-each select="gmd:dateType/gmd:CI_DateTypeCode"> - <dateType> - <xsl:value-of select="@codeListValue"/> - </dateType> - </xsl:for-each> + <xsl:apply-templates mode="text" select="gmd:dateType"/> <BACK_REF name="CI_Citation"/> </GM03_2Core.Core.CI_Date> </xsl:template> Added: sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/spatial_repr.xsl =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/spatial_repr.xsl (rev 0) +++ sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/19139CHEtoGM03/spatial_repr.xsl 2009-01-15 13:02:17 UTC (rev 1966) @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xsl:stylesheet version="1.0" + xmlns="http://www.interlis.ch/INTERLIS2.3" + xmlns:che="http://www.geocat.ch/2008/che" + xmlns:gco="http://www.isotc211.org/2005/gco" + xmlns:gmd="http://www.isotc211.org/2005/gmd" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + exclude-result-prefixes="che gco gmd"> + + <xsl:template mode="SpatialRepr" match="gmd:MD_GridSpatialRepresentation"> + <GM03_2Comprehensive.Comprehensive.MD_GridSpatialRepresentation TID="x{generate-id(.)}"> + <BACK_REF name="MD_Metadata"/> + <xsl:apply-templates mode="text" select="gmd:numberOfDimensions"/> + <xsl:apply-templates mode="SpatialRepr" select="gmd:axisDimensionProperties"/> + <xsl:apply-templates mode="text" select="gmd:cellGeometry"/> + <xsl:apply-templates mode="text" select="gmd:transformationParameterAvailability"/> + </GM03_2Comprehensive.Comprehensive.MD_GridSpatialRepresentation> + </xsl:template> + + <xsl:template mode="SpatialRepr" match="gmd:axisDimensionProperties"> + <xsl:apply-templates mode="SpatialRepr"/> + </xsl:template> + + <xsl:template mode="SpatialRepr" match="gmd:MD_Dimension"> + <GM03_2Comprehensive.Comprehensive.MD_Dimension TID="x{generate-id(.)}"> + <xsl:apply-templates mode="text" select="gmd:dimensionName"/> + <xsl:apply-templates mode="text" select="gmd:dimensionSize"/> + <xsl:apply-templates mode="SpatialRepr" select="gmd:resolution"/> + <BACK_REF name="MD_GridSpatialRepresentation"/> + </GM03_2Comprehensive.Comprehensive.MD_Dimension> + </xsl:template> + + <xsl:template mode="SpatialRepr" match="gmd:resolution[gco:Measure/@uom='m']"> + <resolution><xsl:value-of select="gco:Measure"/></resolution> + </xsl:template> + + <xsl:template mode="SpatialRepr" match="*" priority="-100"> + <ERROR>Unknown SpatialRepr element <xsl:value-of select="local-name(.)"/></ERROR> + </xsl:template> + +</xsl:stylesheet> \ No newline at end of file Modified: sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/GM03to19139CHE/CHE03-to-19139.xsl =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/GM03to19139CHE/CHE03-to-19139.xsl 2009-01-15 07:28:26 UTC (rev 1965) +++ sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/GM03to19139CHE/CHE03-to-19139.xsl 2009-01-15 13:02:17 UTC (rev 1966) @@ -103,6 +103,21 @@ <!-- ====================================================================================== --> + <xsl:template match="*" mode="languageGroup"> + <xsl:param name="element"/> + <xsl:element name="{$element}"> + <xsl:attribute name="xsi:type">gmd:PT_FreeText_PropertyType</xsl:attribute> + + <xsl:apply-templates select="*[local-name()=$element]/GM03Core.Core.PT_FreeText/textGroup/GM03Core.Core.PT_Group[language=$mainLanguage]/plainText" mode="string"/> + + <xsl:if test="*[local-name()=$element]/GM03Core.Core.PT_FreeText/textGroup/GM03Core.Core.PT_Group[language!=$mainLanguage]"> + <gmd:PT_FreeText> + <xsl:apply-templates select="*[local-name()=$element]/GM03Core.Core.PT_FreeText/textGroup/GM03Core.Core.PT_Group[language!=$mainLanguage]" mode="language"/> + </gmd:PT_FreeText> + </xsl:if> + </xsl:element> + </xsl:template> + <xsl:template match="GM03Core.Core.PT_FreeText" mode="language"> <xsl:attribute name="xsi:type">gmd:PT_FreeText_PropertyType</xsl:attribute> @@ -131,6 +146,7 @@ <xsl:when test=".='FR'">fra</xsl:when> <xsl:when test=".='IT'">ita</xsl:when> <xsl:when test=".='EN'">eng</xsl:when> + <xsl:when test=".='RM'">rhe</xsl:when> <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise> </xsl:choose> </xsl:template> Modified: sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/GM03to19139CHE/identification.xsl =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/GM03to19139CHE/identification.xsl 2009-01-15 07:28:26 UTC (rev 1965) +++ sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/GM03to19139CHE/identification.xsl 2009-01-15 13:02:17 UTC (rev 1966) @@ -3,6 +3,7 @@ xmlns="http://www.isotc211.org/2005/gmd" xmlns:che="http://www.geocat.ch/2008/che" xmlns:gco="http://www.isotc211.org/2005/gco" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template mode="DataIdentification" match="GM03Comprehensive.Comprehensive.MD_DataIdentification|GM03Core.Core.MD_DataIdentification"> Modified: sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/import/test/test19139toCHE03.sh =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/import/test/test19139toCHE03.sh 2009-01-15 07:28:26 UTC (rev 1965) +++ sandbox/geocat.ch/trunk/web/geonetwork/xsl/conversion/import/test/test19139toCHE03.sh 2009-01-15 13:02:17 UTC (rev 1966) @@ -1,5 +1,5 @@ #!/bin/bash set -e -export CLASSPATH=../../../../WEB-INF/lib/xml-apis.jar:../../../../WEB-INF/lib/xercesImpl.jar:../../../../WEB-INF/lib/xalan.jar:../../../../WEB-INF/lib/serializer.jar:../../../../WEB-INF/lib/commons-lang-2.1.jar:../../../../WEB-INF/lib/geonetwork.jar -java org.fao.geonet.util.TranslateAndValidate ../ISO19139CHE-to-GM03.xsl ../../../../xml/schemas/gm03/GM03_2.xsd $* +export CLASSPATH=../../../../WEB-INF/lib/xml-apis.jar:../../../../WEB-INF/lib/xercesImpl-2.7.1.jar:../../../../WEB-INF/lib/xalan.jar:../../../../WEB-INF/lib/serializer.jar:../../../../WEB-INF/lib/commons-lang-2.1.jar:../../../../WEB-INF/lib/geonetwork.jar +java org.fao.geonet.util.ISO19139CHEtoGM03 ../ISO19139CHE-to-GM03.xsl ../../../../xml/schemas/iso19139.che/GM03_2.xsd $* This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jes...@us...> - 2009-01-15 13:17:32
|
Revision: 1967 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1967&view=rev Author: jesseeichar Date: 2009-01-15 13:17:26 +0000 (Thu, 15 Jan 2009) Log Message: ----------- Merge branch 'extent_admin' Conflicts: src/org/fao/geonet/services/extent/Get.java Modified Paths: -------------- sandbox/geocat.ch/trunk/src/org/fao/geonet/GeonetContext.java sandbox/geocat.ch/trunk/src/org/fao/geonet/Geonetwork.java sandbox/geocat.ch/trunk/src/org/fao/geonet/constants/Geonet.java sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config.xml sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/lib/gt-wfs-2.5.1.jar sandbox/geocat.ch/trunk/web/geonetwork/loc/eng/xml/strings.xml sandbox/geocat.ch/trunk/web/geonetwork/xml/user-profiles.xml sandbox/geocat.ch/trunk/web/geonetwork/xsl/admin.xsl Added Paths: ----------- sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/ sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/Add.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/ExtentHelper.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/ExtentManager.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/Get.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/List.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/WFS.java Removed Paths: ------------- sandbox/geocat.ch/trunk/src/org/fao/geonet/services/xlink/Extent.java Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/GeonetContext.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/GeonetContext.java 2009-01-15 13:02:17 UTC (rev 1966) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/GeonetContext.java 2009-01-15 13:17:26 UTC (rev 1967) @@ -32,6 +32,7 @@ import org.fao.geonet.kernel.search.SearchManager; import org.fao.geonet.kernel.setting.SettingManager; import org.fao.geonet.kernel.thesaurus.ThesaurusManager; +import org.fao.geonet.services.extent.ExtentManager; //============================================================================= @@ -44,7 +45,8 @@ /* package */ CatalogDispatcher catalogDis; /* package */ SettingManager settingMan; /* package */ HarvestManager harvestMan; - /* package */ ThesaurusManager thesaurusMan; + /* package */ ThesaurusManager thesaurusMan; + /* package */ ExtentManager extentMan; /* package */ OaiPmhDispatcher oaipmhDis; //--------------------------------------------------------------------------- @@ -58,7 +60,8 @@ public CatalogDispatcher getCatalogDispatcher() { return catalogDis; } public SettingManager getSettingManager() { return settingMan; } public HarvestManager getHarvestManager() { return harvestMan; } - public ThesaurusManager getThesaurusManager() { return thesaurusMan; } + public ThesaurusManager getThesaurusManager() { return thesaurusMan; } + public ExtentManager getExtentManager() { return extentMan; } public OaiPmhDispatcher getOaipmhDispatcher() { return oaipmhDis; } //--------------------------------------------------------------------------- Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/Geonetwork.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/Geonetwork.java 2009-01-15 13:02:17 UTC (rev 1966) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/Geonetwork.java 2009-01-15 13:17:26 UTC (rev 1967) @@ -25,6 +25,7 @@ import java.io.File; import java.io.FileInputStream; +import java.util.Iterator; import jeeves.JeevesJCS; import jeeves.interfaces.ApplicationHandler; @@ -45,6 +46,7 @@ import org.fao.geonet.kernel.search.SearchManager; import org.fao.geonet.kernel.setting.SettingManager; import org.fao.geonet.kernel.thesaurus.ThesaurusManager; +import org.fao.geonet.services.extent.ExtentManager; import org.fao.geonet.services.util.z3950.Server; import org.jdom.Element; @@ -99,15 +101,24 @@ SettingManager settingMan = new SettingManager(dbms, context.getProviderManager()); //------------------------------------------------------------------------ - //--- Initialize thesaurus + //--- Initialize thesaurus - logger.info(" - Thesaurus..."); + logger.info(" - Thesaurus..."); - String thesauriDir = handlerConfig.getMandatoryValue(Geonet.Config.CODELIST_DIR); + String thesauriDir = handlerConfig.getMandatoryValue(Geonet.Config.CODELIST_DIR); - thesaurusMan = new ThesaurusManager(path, thesauriDir); + thesaurusMan = new ThesaurusManager(path, thesauriDir); + + + //--- Initialize Extent Dict + logger.info(" - Extent Dict..."); + Iterator<Element> extentConfig = handlerConfig.getChildren(Geonet.Config.EXTENT_CONFIG); + + ExtentManager extentMan = new ExtentManager(extentConfig); + + //------------------------------------------------------------------------ //--- initialize Z39.50 @@ -221,7 +232,8 @@ gnContext.settingMan = settingMan; gnContext.harvestMan = harvestMan; gnContext.thesaurusMan= thesaurusMan; - gnContext.oaipmhDis = oaipmhDis; + gnContext.oaipmhDis = oaipmhDis; + gnContext.extentMan = extentMan; logger.info("Site ID is : " + gnContext.getSiteId()); Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/constants/Geonet.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/constants/Geonet.java 2009-01-15 13:02:17 UTC (rev 1966) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/constants/Geonet.java 2009-01-15 13:17:26 UTC (rev 1967) @@ -373,6 +373,7 @@ public static final String DIR = "dir"; public static final String FAST = "fast"; public static final String SUMMARY_CONFIG = "summaryConfig"; + public static final String EXTENT_CONFIG = "extent"; } //-------------------------------------------------------------------------- Added: sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/Add.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/Add.java (rev 0) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/Add.java 2009-01-15 13:17:26 UTC (rev 1967) @@ -0,0 +1,201 @@ +//============================================================================== +//=== Copyright (C) 2001-2008 Food and Agriculture Organization of the +//=== United Nations (FAO-UN), United Nations World Food Programme (WFP) +//=== and United Nations Environment Programme (UNEP) +//=== +//=== This program is free software; you can redistribute it and/or modify +//=== it under the terms of the GNU General Public License as published by +//=== the Free Software Foundation; either version 2 of the License, or (at +//=== your option) any later version. +//=== +//=== This program is distributed in the hope that it will be useful, but +//=== WITHOUT ANY WARRANTY; without even the implied warranty of +//=== MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +//=== General Public License for more details. +//=== +//=== You should have received a copy of the GNU General Public License +//=== along with this program; if not, write to the Free Software +//=== Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA +//=== +//=== Contact: Jeroen Ticheler - FAO - Viale delle Terme di Caracalla 2, +//=== Rome - Italy. email: geo...@os... +//============================================================================== + +package org.fao.geonet.services.extent; + +import static org.fao.geonet.services.extent.ExtentHelper.DESC; +import static org.fao.geonet.services.extent.ExtentHelper.ID; +import static org.fao.geonet.services.extent.ExtentHelper.TYPENAME; +import static org.fao.geonet.services.extent.ExtentHelper.WFS; + +import java.io.IOException; +import java.io.StringReader; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import jeeves.interfaces.Service; +import jeeves.server.ServiceConfig; +import jeeves.server.context.ServiceContext; + +import org.apache.log4j.Level; +import org.apache.log4j.Logger; +import org.fao.geonet.GeonetContext; +import org.fao.geonet.constants.Geonet; +import org.fao.geonet.services.extent.WFS.FeatureType; +import org.geotools.data.DefaultQuery; +import org.geotools.data.FeatureStore; +import org.geotools.factory.CommonFactoryFinder; +import org.geotools.factory.GeoTools; +import org.geotools.feature.FeatureCollection; +import org.geotools.feature.FeatureCollections; +import org.geotools.feature.simple.SimpleFeatureBuilder; +import org.geotools.gml2.GMLConfiguration; +import org.geotools.xml.Parser; +import org.jdom.Element; +import org.opengis.feature.simple.SimpleFeature; +import org.opengis.feature.simple.SimpleFeatureType; +import org.opengis.filter.Filter; +import org.opengis.filter.FilterFactory2; +import org.opengis.filter.expression.Literal; +import org.opengis.filter.expression.PropertyName; + +import com.vividsolutions.jts.geom.Geometry; +import com.vividsolutions.jts.io.ParseException; +import com.vividsolutions.jts.io.WKTReader; + +/** + * Service for adding new Geometries to a the updateable wfs featuretype + * + * @author jeichar + * + */ +public class Add implements Service +{ + + enum Format { + WKT{ + + @Override + public Geometry parse(String geomParam) throws ParseException + { + WKTReader reader = new WKTReader(); + return reader.read(geomParam); + } + + }, GML2{ + + Parser parser = new Parser(new GMLConfiguration()); + { + parser.setFailOnValidationError(false); + parser.setStrict(false); + parser.setValidating(false); + } + @Override + public Geometry parse(String geomParam) throws Exception + { + return (Geometry) parser.parse(new StringReader(geomParam)); + } + + }, GML3{ + + Parser parser = new Parser(new org.geotools.gml3.GMLConfiguration()); + { + parser.setFailOnValidationError(false); + parser.setStrict(false); + parser.setValidating(false); + } + @Override + public Geometry parse(String geomParam) throws Exception + { + return (Geometry) parser.parse(new StringReader(geomParam)); + } + + }; + + public static Format lookup(String param){ + for( Format format:values()){ + if(format.name().equals(param)){ + return format; + } + } + throw new IllegalArgumentException(param+" is not a recognized format. Choices include: "+Arrays.toString(values())); + } + + public abstract Geometry parse(String geomParam) throws Exception; + } + + public void init(String appPath, ServiceConfig params) throws Exception + { + } + + public Element exec(Element params, ServiceContext context) throws Exception + { + Logger.getLogger("org.geotools.data.wfs").setLevel(Level.ALL); + Logger.getLogger("org.geotools.xml").setLevel(Level.ALL); + GeonetContext gc = (GeonetContext) context.getHandlerContext(Geonet.CONTEXT_NAME); + ExtentManager extentMan = gc.getExtentManager(); + + String id = params.getChildTextTrim(ID); + String wfsParam = params.getChildTextTrim(WFS); + String typename = params.getChildTextTrim(TYPENAME); + String geomParam = params.getChildTextTrim("geom"); + String desc = params.getChildTextTrim(DESC); + Format format = Format.lookup(params.getChildTextTrim("format")); + + Geometry geometry = format.parse(geomParam); + geometry.setSRID(4326); + + WFS wfs = extentMan.getWFS(wfsParam); + FeatureType featureType = wfs.getFeatureType(typename); + if( !featureType.isModifiable() ){ + return ExtentHelper.error(typename+" is not a modifiable type, modifiable types are: "+listModifiable(wfs)); + } + FeatureStore<SimpleFeatureType, SimpleFeature> store = (FeatureStore<SimpleFeatureType, SimpleFeature>) featureType.getFeatureSource(); + SimpleFeatureType schema = store.getSchema(); + + if( idExists(store, id, featureType) ){ + return ExtentHelper.error("The id "+id+" already exists!"); + } + + addFeature(id, desc, geometry, featureType, store, schema); + + Element responseElem = new Element("success"); + responseElem.setText("Added one new feature id= "+id); + return responseElem; + } + + private boolean idExists(FeatureStore<SimpleFeatureType, SimpleFeature> store, String id, FeatureType featureType) + throws IOException + { + FilterFactory2 factory = CommonFactoryFinder.getFilterFactory2(GeoTools.getDefaultHints()); + Literal literal = factory.literal(id); + PropertyName property = factory.property(featureType.idColumn); + Filter filter = factory.equals(property, literal); + DefaultQuery query = new DefaultQuery(featureType.typename, filter, new String[]{featureType.idColumn}); + return !store.getFeatures(query).isEmpty(); + } + + private void addFeature(String id, String desc, Geometry geometry, FeatureType featureType, + FeatureStore<SimpleFeatureType, SimpleFeature> store, SimpleFeatureType schema) throws IOException + { + SimpleFeature feature = SimpleFeatureBuilder.template(schema, SimpleFeatureBuilder.createDefaultFeatureId()); + feature.setAttribute(featureType.idColumn, id); + feature.setAttribute(featureType.descColumn, desc); + feature.setDefaultGeometry(geometry); + + FeatureCollection<SimpleFeatureType, SimpleFeature> collection = FeatureCollections.newCollection(); + collection.add(feature); + store.addFeatures(collection); + } + + private String listModifiable(WFS wfs) + { + List<String> name = new ArrayList<String>(); + for( FeatureType type:wfs.getModifiableTypes()){ + name.add(type.typename); + } + return name.toString(); + } + +} Added: sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/ExtentHelper.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/ExtentHelper.java (rev 0) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/ExtentHelper.java 2009-01-15 13:17:26 UTC (rev 1967) @@ -0,0 +1,27 @@ +package org.fao.geonet.services.extent; + +import org.jdom.Element; + +public class ExtentHelper +{ + + public static final String DESC = "desc"; + public static final String ID = "id"; + public static final String FEATURE = "feature"; + public static final String WFS = "wfs"; + public static final String DESC_COLUMN = "descColumn"; + public static final String ID_COLUMN = "idColumn"; + public static final String TYPENAME = "typename"; + public static final String FEATURE_TYPE = "featureType"; + public static final String RECORDS = "records"; + + public static final String DEFAULT_WFS_ID = "default"; + public static final String DEFAULT_ID_COLUMN = "id"; + public static final String MODIFIABLE_FEATURE_TYPE = "modifiable"; + public static Element error(String msg) + { + Element error = new Element("error"); + error.addContent(msg); + return error; + } +} Added: sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/ExtentManager.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/ExtentManager.java (rev 0) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/ExtentManager.java 2009-01-15 13:17:26 UTC (rev 1967) @@ -0,0 +1,94 @@ +package org.fao.geonet.services.extent; + +import static org.fao.geonet.services.extent.ExtentHelper.DEFAULT_WFS_ID; +import static org.fao.geonet.services.extent.ExtentHelper.DESC_COLUMN; +import static org.fao.geonet.services.extent.ExtentHelper.ID; +import static org.fao.geonet.services.extent.ExtentHelper.ID_COLUMN; +import static org.fao.geonet.services.extent.ExtentHelper.MODIFIABLE_FEATURE_TYPE; +import static org.fao.geonet.services.extent.ExtentHelper.TYPENAME; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; + +import org.geotools.data.DataStore; +import org.geotools.data.wfs.WFSDataStoreFactory; +import org.jdom.Element; + +/** + * The configuration object for Extents. It allows access to the Datastore(s) + * for obtaining the extents + * + * @author jeichar + */ +public class ExtentManager +{ + + private Map<String, WFS> wfss = new HashMap<String, WFS>(); + + public ExtentManager(Iterator<Element> extentConfig) throws Exception + { + while (extentConfig.hasNext()) { + Element wfsElem = extentConfig.next(); + String url = wfsElem.getAttributeValue("url"); + String id = wfsElem.getAttributeValue(ID); + if( url==null ){ + throw new Exception("the url attribute for extent wfs configuration id="+id+"is missing"); + } + if (id == null) { + id = DEFAULT_WFS_ID; + } + + WFS wfs = new WFS(); + + wfs.wfsDataStoreParams.put(WFSDataStoreFactory.URL.key, url); + wfss.put(id, wfs); + + for (Object obj : wfsElem.getChildren(TYPENAME)) { + Element elem = (Element) obj; + String typename = elem.getAttributeValue(TYPENAME); + String idColumn = elem.getAttributeValue(ID_COLUMN); + if( idColumn==null ){ + throw new Exception("the idColumn attribute for extent wfs configuration "+id+":"+url+"is missing"); + } + String descColumn = elem.getAttributeValue(DESC_COLUMN); + String modifiable = elem.getAttributeValue(MODIFIABLE_FEATURE_TYPE); + + wfs.addFeatureType(typename, idColumn, descColumn, "true".equalsIgnoreCase(modifiable)); + } + + } + + } + + public DataStore getDataStore() throws IOException + { + return wfss.get(DEFAULT_WFS_ID).getDataStore(); + } + + public DataStore getDataStore(String id) throws IOException + { + String concId = id == null ? DEFAULT_WFS_ID : id; + return wfss.get(concId).getDataStore(); + } + + public Map<String, WFS> getWFSs() + { + return wfss; + } + + public WFS getWFS(String wfs) + { + if (wfs == null) { + return wfss.get(DEFAULT_WFS_ID); + } + return wfss.get(wfs); + } + + public WFS getWFS() + { + return wfss.get(DEFAULT_WFS_ID); + } + +} Added: sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/Get.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/Get.java (rev 0) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/Get.java 2009-01-15 13:17:26 UTC (rev 1967) @@ -0,0 +1,192 @@ +//============================================================================= +//=== Copyright (C) 2001-2007 Food and Agriculture Organization of the +//=== United Nations (FAO-UN), United Nations World Food Programme (WFP) +//=== and United Nations Environment Programme (UNEP) +//=== +//=== This program is free software; you can redistribute it and/or modify +//=== it under the terms of the GNU General Public License as published by +//=== the Free Software Foundation; either version 2 of the License, or (at +//=== your option) any later version. +//=== +//=== This program is distributed in the hope that it will be useful, but +//=== WITHOUT ANY WARRANTY; without even the implied warranty of +//=== MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +//=== General Public License for more details. +//=== +//=== You should have received a copy of the GNU General Public License +//=== along with this program; if not, write to the Free Software +//=== Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA +//=== +//=== Contact: Jeroen Ticheler - FAO - Viale delle Terme di Caracalla 2, +//=== Rome - Italy. email: geo...@os... +//============================================================================== +package org.fao.geonet.services.extent; + +import static org.fao.geonet.services.extent.ExtentHelper.*; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import java.util.Arrays; +import java.util.List; + +import jeeves.interfaces.Service; +import jeeves.server.ServiceConfig; +import jeeves.server.context.ServiceContext; +import jeeves.utils.Log; +import jeeves.utils.Xml; + +import org.fao.geonet.GeonetContext; +import org.fao.geonet.constants.Geonet; +import org.fao.geonet.services.extent.WFS.FeatureType; +import org.geotools.data.DefaultQuery; +import org.geotools.data.FeatureSource; +import org.geotools.data.Query; +import org.geotools.factory.CommonFactoryFinder; +import org.geotools.factory.GeoTools; +import org.geotools.feature.FeatureIterator; +import org.geotools.gml3.GMLConfiguration; +import org.geotools.xml.Encoder; +import org.jdom.Element; +import org.jdom.JDOMException; +import org.jdom.Namespace; +import org.opengis.feature.simple.SimpleFeature; +import org.opengis.feature.simple.SimpleFeatureType; +import org.opengis.feature.type.AttributeDescriptor; +import org.opengis.filter.Filter; +import org.opengis.filter.FilterFactory2; + +/** + * Obtains the geometry and description from the wfs (configured in config.xml) + * and returns them as a gmd:extent xml fragment + * + * @author jeichar + */ +public class Get implements Service +{ + + private final GMLConfiguration gmlConfiguration = new GMLConfiguration(); + private String geomDescStyleSheet; + + public Element exec(Element params, ServiceContext context) throws Exception + { + GeonetContext gc = (GeonetContext) context.getHandlerContext(Geonet.CONTEXT_NAME); + ExtentManager extentMan = gc.getExtentManager(); + + String id = params.getChildTextTrim(ID); + String wfsId = params.getChildTextTrim(WFS); + String typename = params.getChildTextTrim(TYPENAME); + + if (id == null) { + ExtentHelper.error("id parameter is required"); + } + if (typename == null) { + ExtentHelper.error("typename parameter is required"); + } + WFS wfs = extentMan.getWFS(wfsId); + FeatureType featureType = wfs.getFeatureType(typename); + FeatureSource<SimpleFeatureType, SimpleFeature> featureSource = featureType + .getFeatureSource(); + if (featureSource == null) { + return errorTypename(extentMan, typename); + } + + String[] properties; + if (featureType.descColumn != null) { + properties = new String[3]; + properties[2] = featureType.descColumn; + } else { + properties = new String[2]; + } + + properties[0] = featureType.idColumn; + properties[1] = featureSource.getSchema().getGeometryDescriptor().getLocalName(); + + FilterFactory2 filterFactory2 = CommonFactoryFinder.getFilterFactory2(GeoTools.getDefaultHints()); + Filter filter = filterFactory2.equals(filterFactory2.property(featureType.idColumn), filterFactory2 + .literal(id)); + Query q = new DefaultQuery(typename, filter, properties); + + Element xml = resolve(id, featureSource, q); + return xml; + } + + private Element resolve(String id, FeatureSource<SimpleFeatureType, SimpleFeature> featureSource, Query q) + throws IOException, JDOMException + { + FeatureIterator<SimpleFeature> features = featureSource.getFeatures(q).features(); + try { + if (features.hasNext()) { + SimpleFeature feature = features.next(); + return loadXMLAttribute(feature); + } else { + return ExtentHelper.error("no features founds with ID=" + id); + } + } finally { + features.close(); + } + } + + private Element loadXMLAttribute(SimpleFeature feature) throws IOException, JDOMException + { + + Namespace ns = Namespace.getNamespace("gmd", "http://www.isotc211.org/2005/gmd"); + Element extent = new Element("extent", ns); + Element exExtent = new Element("EX_Extent", ns); + Element geographicElement = new Element("geographicElement", ns); + Element boundingPoly = new Element("EX_BoundingPolygon", ns); + Element polyon = new Element("polygon", ns); + Element geom = (Element) encodeAsGML(feature).getContent(0); + geom.detach(); + + extent.addContent(exExtent); + exExtent.addContent(geographicElement); + geographicElement.addContent(boundingPoly); + boundingPoly.addContent(polyon); + polyon.addContent(geom); + + if (feature.getFeatureType().getAttributeCount() == 3) { + try { + String attribute = (String) feature.getAttribute(2); + if (attribute.length() > 0) { + exExtent.addContent(0, toGeomDescElem(attribute)); + } + } catch (Exception e) { + ByteArrayOutputStream out = new ByteArrayOutputStream(); + e.printStackTrace(new PrintStream(out)); + Log.error("org.fao.geonet.services.xlink.Extent", "Error parsing XML from feature:\n" + out); + } + } + + return extent; + } + + private Element toGeomDescElem(String basicValue) throws Exception + { + String xml = "<description>" + basicValue + "</description>"; + Element desc = Xml.loadString(xml, false); + return Xml.transform(desc, geomDescStyleSheet); + } + + private Element encodeAsGML(SimpleFeature feature) throws IOException, JDOMException + { + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + Encoder encoder = new Encoder(gmlConfiguration); + encoder.setIndenting(false); + encoder.encode(feature.getDefaultGeometry(), org.geotools.gml3.GML.geometryMember, outputStream); + return Xml.loadString(outputStream.toString(), false); + } + + private Element errorTypename(ExtentManager extentMan, String typename) throws IOException + { + String options = Arrays.toString(extentMan.getDataStore().getTypeNames()); + String msg = "Typename: " + typename + " does not exist. Available options are: " + options; + return ExtentHelper.error(msg); + } + + public void init(String appPath, ServiceConfig params) throws Exception + { + this.geomDescStyleSheet = appPath + "xsl/xlink/geometry_description.xsl"; + } + +} Added: sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/List.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/List.java (rev 0) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/List.java 2009-01-15 13:17:26 UTC (rev 1967) @@ -0,0 +1,177 @@ +//============================================================================== +//=== Copyright (C) 2001-2008 Food and Agriculture Organization of the +//=== United Nations (FAO-UN), United Nations World Food Programme (WFP) +//=== and United Nations Environment Programme (UNEP) +//=== +//=== This program is free software; you can redistribute it and/or modify +//=== it under the terms of the GNU General Public License as published by +//=== the Free Software Foundation; either version 2 of the License, or (at +//=== your option) any later version. +//=== +//=== This program is distributed in the hope that it will be useful, but +//=== WITHOUT ANY WARRANTY; without even the implied warranty of +//=== MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +//=== General Public License for more details. +//=== +//=== You should have received a copy of the GNU General Public License +//=== along with this program; if not, write to the Free Software +//=== Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA +//=== +//=== Contact: Jeroen Ticheler - FAO - Viale delle Terme di Caracalla 2, +//=== Rome - Italy. email: geo...@os... +//============================================================================== + +package org.fao.geonet.services.extent; + +import static org.fao.geonet.services.extent.ExtentHelper.DESC; +import static org.fao.geonet.services.extent.ExtentHelper.DESC_COLUMN; +import static org.fao.geonet.services.extent.ExtentHelper.FEATURE; +import static org.fao.geonet.services.extent.ExtentHelper.FEATURE_TYPE; +import static org.fao.geonet.services.extent.ExtentHelper.ID; +import static org.fao.geonet.services.extent.ExtentHelper.ID_COLUMN; +import static org.fao.geonet.services.extent.ExtentHelper.MODIFIABLE_FEATURE_TYPE; +import static org.fao.geonet.services.extent.ExtentHelper.RECORDS; +import static org.fao.geonet.services.extent.ExtentHelper.TYPENAME; +import static org.fao.geonet.services.extent.ExtentHelper.WFS; + +import java.io.IOException; +import java.util.AbstractCollection; +import java.util.Arrays; +import java.util.Collection; +import java.util.Iterator; +import java.util.Map; + +import jeeves.interfaces.Service; +import jeeves.server.ServiceConfig; +import jeeves.server.context.ServiceContext; +import jeeves.utils.Xml; + +import org.fao.geonet.GeonetContext; +import org.fao.geonet.constants.Geonet; +import org.fao.geonet.services.extent.WFS.FeatureType; +import org.geotools.data.DataStore; +import org.geotools.data.DefaultQuery; +import org.geotools.data.FeatureSource; +import org.geotools.feature.FeatureIterator; +import org.jdom.Element; +import org.jdom.JDOMException; +import org.opengis.feature.simple.SimpleFeature; +import org.opengis.feature.simple.SimpleFeatureType; +import org.opengis.feature.type.AttributeDescriptor; +import org.opengis.filter.Filter; + +/** + * List all the available extents + * + * @author jeichar + */ +public class List implements Service +{ + + private static final Collection<String> CONTAINS_ALL_COLLECTION = new AbstractCollection<String>() + { + + @Override + public boolean contains(Object o) + { + return true; + } + + @Override + public Iterator<String> iterator() + { + return null; + } + + @Override + public int size() + { + return 0; + } + + }; + + public void init(String appPath, ServiceConfig params) throws Exception + { + } + + public Element exec(Element params, ServiceContext context) throws Exception + { + GeonetContext gc = (GeonetContext) context.getHandlerContext(Geonet.CONTEXT_NAME); + ExtentManager extentMan = gc.getExtentManager(); + + String wfsParam = params.getChildTextTrim(WFS); + String typenameParam = params.getChildTextTrim(TYPENAME); + + Collection<String> wfssToShow = extentMan.getWFSs().keySet(); + if (wfsParam != null) { + wfssToShow = Arrays.asList(wfsParam.split(",")); + } + Collection<String> typesToShow = CONTAINS_ALL_COLLECTION; + if (typenameParam != null) { + typesToShow = Arrays.asList(typenameParam.split(",")); + } + Element result = new Element(RECORDS); + + Map<String, WFS> wfss = extentMan.getWFSs(); + for (String wfsId : wfssToShow) { + WFS wfs = wfss.get(wfsId); + Element wfsElem = new Element(WFS); + wfsElem.setAttribute(ID, wfsId); + result.addContent(wfsElem); + + DataStore ds = wfs.getDataStore(); + for (FeatureType featureType : wfs.getFeatureTypes()) { + Element typeElem = new Element(FEATURE_TYPE); + if (typesToShow.contains(featureType.typename)) { + listFeatureType(wfs, wfsElem, ds, featureType, typeElem); + } + } + } + return result; + } + + private void listFeatureType(WFS wfs, Element wfsElem, DataStore ds, + FeatureType featureType, Element typeElem) throws IOException, + JDOMException + { + final FeatureSource<SimpleFeatureType, SimpleFeature> featureSource = featureType.getFeatureSource(); + final String idColumn = featureType.idColumn; + final String descColumn = featureType.descColumn; + final String modifiable = String.valueOf(featureType.isModifiable()); + + typeElem.setAttribute(TYPENAME, featureType.typename); + typeElem.setAttribute(ID_COLUMN, idColumn); + typeElem.setAttribute(MODIFIABLE_FEATURE_TYPE, modifiable); + if (descColumn != null) { + typeElem.setAttribute(DESC_COLUMN, descColumn); + } + wfsElem.addContent(typeElem); + + String[] properties; + if (descColumn == null) { + properties = new String[] { idColumn }; + } else { + properties = new String[] { idColumn, descColumn }; + } + final FeatureIterator<SimpleFeature> features = featureSource.getFeatures( + new DefaultQuery(featureType.typename, Filter.INCLUDE, properties)).features(); + try { + while (features.hasNext()) { + final SimpleFeature next = features.next(); + final Element featureElem = new Element(FEATURE); + featureElem.setAttribute(ID, next.getAttribute(idColumn).toString()); + if (descColumn != null) { + final Element desc = Xml.loadString("<" + DESC + ">" + next.getAttribute(descColumn) + "</" + DESC + + ">", false); + featureElem.addContent(desc); + } + typeElem.addContent(featureElem); + } + } finally { + features.close(); + } + } + + +} Added: sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/WFS.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/WFS.java (rev 0) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/WFS.java 2009-01-15 13:17:26 UTC (rev 1967) @@ -0,0 +1,131 @@ +//============================================================================== +//=== Copyright (C) 2001-2008 Food and Agriculture Organization of the +//=== United Nations (FAO-UN), United Nations World Food Programme (WFP) +//=== and United Nations Environment Programme (UNEP) +//=== +//=== This program is free software; you can redistribute it and/or modify +//=== it under the terms of the GNU General Public License as published by +//=== the Free Software Foundation; either version 2 of the License, or (at +//=== your option) any later version. +//=== +//=== This program is distributed in the hope that it will be useful, but +//=== WITHOUT ANY WARRANTY; without even the implied warranty of +//=== MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +//=== General Public License for more details. +//=== +//=== You should have received a copy of the GNU General Public License +//=== along with this program; if not, write to the Free Software +//=== Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA +//=== +//=== Contact: Jeroen Ticheler - FAO - Viale delle Terme di Caracalla 2, +//=== Rome - Italy. email: geo...@os... +//============================================================================== + +package org.fao.geonet.services.extent; + +import java.io.IOException; +import java.io.Serializable; +import java.util.Arrays; +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +import org.geotools.data.DataStore; +import org.geotools.data.FeatureSource; +import org.geotools.data.wfs.WFSDataStore; +import org.geotools.data.wfs.WFSDataStoreFactory; +import org.opengis.feature.simple.SimpleFeature; +import org.opengis.feature.simple.SimpleFeatureType; + +public class WFS +{ + final Map<String, Serializable> wfsDataStoreParams = new HashMap<String, Serializable>(); + final Set<FeatureType> modifiable = new HashSet<FeatureType>(); + final Map<String, FeatureType> types = new HashMap<String, FeatureType>(); + private WFSDataStore datastore; + + public synchronized DataStore getDataStore() throws IOException + { + if (datastore == null) { + WFSDataStoreFactory factory = new WFSDataStoreFactory(); + this.datastore = factory.createDataStore(wfsDataStoreParams); + } + return datastore; + } + + FeatureType addFeatureType(String typename, String idColumn, String descColumn, boolean modifiable) + { + FeatureType type = new FeatureType(typename, idColumn, descColumn); + types.put(typename, type); + if (modifiable) { + this.modifiable.add(type); + } + + return type; + } + + @Override + public String toString() + { + return wfsDataStoreParams.get(WFSDataStoreFactory.URL.key).toString(); + } + + public class FeatureType + { + + public final String typename; + public final String idColumn; + public final String descColumn; + + public FeatureType(final String typename, final String idColumn, final String descColumn) + { + this.typename = typename; + this.idColumn = idColumn; + this.descColumn = descColumn; + } + + public FeatureSource<SimpleFeatureType, SimpleFeature> getFeatureSource() throws IOException + { + DataStore datastore = getDataStore(); + if (Arrays.asList(datastore.getTypeNames()).contains(typename)) { + return datastore.getFeatureSource(typename); + } else { + return null; + } + } + + public boolean isModifiable() + { + return modifiable.contains(this); + } + + @Override + public String toString() + { + + String string = WFS.this.toString() + ": typename (" + idColumn + "," + descColumn + ")"; + if (isModifiable()) { + string += "modifiable"; + } + return string; + } + } + + public FeatureType getFeatureType(String typename) + { + return types.get(typename); + } + + public Collection<FeatureType> getFeatureTypes() + { + return types.values(); + } + + public Collection<FeatureType> getModifiableTypes() + { + return modifiable; + } + +} \ No newline at end of file Deleted: sandbox/geocat.ch/trunk/src/org/fao/geonet/services/xlink/Extent.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/services/xlink/Extent.java 2009-01-15 13:02:17 UTC (rev 1966) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/services/xlink/Extent.java 2009-01-15 13:17:26 UTC (rev 1967) @@ -1,252 +0,0 @@ -package org.fao.geonet.services.xlink; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.PrintStream; -import java.io.Serializable; -import java.io.UnsupportedEncodingException; -import java.net.URLDecoder; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; - -import jeeves.interfaces.Service; -import jeeves.server.ServiceConfig; -import jeeves.server.context.ServiceContext; -import jeeves.utils.Log; -import jeeves.utils.Xml; - -import org.geotools.data.DataStore; -import org.geotools.data.DefaultQuery; -import org.geotools.data.FeatureSource; -import org.geotools.data.Query; -import org.geotools.data.wfs.WFSDataStoreFactory; -import org.geotools.factory.CommonFactoryFinder; -import org.geotools.factory.GeoTools; -import org.geotools.feature.FeatureIterator; -import org.geotools.gml3.GMLConfiguration; -import org.geotools.xml.Encoder; -import org.jdom.Element; -import org.jdom.JDOMException; -import org.jdom.Namespace; -import org.opengis.feature.simple.SimpleFeature; -import org.opengis.feature.simple.SimpleFeatureType; -import org.opengis.feature.type.AttributeDescriptor; -import org.opengis.filter.Filter; -import org.opengis.filter.FilterFactory2; - -public class Extent implements Service -{ - private enum ServiceParams - { - typename, wfsurl; - - public String getValue(ServiceConfig params) - { - try { - return URLDecoder.decode(params.getValue(name()), "UTF-8"); - } catch (UnsupportedEncodingException e) { - throw new Error(e); - } - } - - } - - private final GMLConfiguration gmlConfiguration = new GMLConfiguration(); - private HashMap<String, Serializable> dsParams; - private DataStore datastore; - private String geomDescStyleSheet; - - public Element exec(Element params, ServiceContext context) throws Exception - { - String id = params.getChildTextTrim("id"); - String idColumn = params.getChildTextTrim("column"); - String typename = params.getChildTextTrim("typename"); - String descColumn = params.getChildTextTrim("descColumn"); - if (id == null) { - error("id parameter is required"); - } - if (typename == null) { - error("typename parameter is required"); - } - FeatureSource<SimpleFeatureType, SimpleFeature> featureSource = getFeatureStore(typename); - if (featureSource == null) { - return errorTypename(typename); - } - - AttributeDescriptor idColumnDesc = getIdColumn(idColumn, featureSource); - if (idColumnDesc == null) { - String options = toString(featureSource.getSchema().getAttributeDescriptors()); - return error("The column: " + idColumn + " does not exist. Options are: " + options); - } - - AttributeDescriptor descColumnDesc; - descColumnDesc = findColumn(descColumn, featureSource.getSchema()); - if( descColumnDesc==null) - descColumnDesc = findColumn("desc", featureSource.getSchema()); - - String[] properties; - if( descColumnDesc!=null ){ - properties = new String[3]; - properties[2] = descColumnDesc.getLocalName(); - } else { - properties = new String[2]; - } - - properties[0] = idColumnDesc.getLocalName(); - properties[1] = featureSource.getSchema().getGeometryDescriptor().getLocalName(); - - FilterFactory2 filterFactory2 = CommonFactoryFinder.getFilterFactory2(GeoTools.getDefaultHints()); - Filter filter = filterFactory2.equals(filterFactory2.property(idColumnDesc.getLocalName()), filterFactory2 - .literal(id)); - Query q = new DefaultQuery(typename, filter, properties); - - Element xml = resolve(id, featureSource, q); - return xml; - } - - private Element resolve(String id, FeatureSource<SimpleFeatureType, SimpleFeature> featureSource, Query q) - throws IOException, JDOMException - { - FeatureIterator<SimpleFeature> features = featureSource.getFeatures(q).features(); - try { - if (features.hasNext()) { - SimpleFeature feature = features.next(); - return loadXMLAttribute(feature); - } else { - return error("no features founds with ID=" + id); - } - } finally { - features.close(); - } - } - - private Element loadXMLAttribute(SimpleFeature feature) throws IOException, JDOMException - { - - Namespace ns = Namespace.getNamespace("gmd", "http://www.isotc211.org/2005/gmd"); - Element extent = new Element("extent", ns); - Element exExtent = new Element("EX_Extent", ns); - Element geographicElement = new Element("geographicElement", ns); - Element boundingPoly = new Element("EX_BoundingPolygon", ns); - Element polyon = new Element("polygon", ns); - Element geom = (Element) encodeAsGML(feature).getContent(0); - geom.detach(); - - extent.addContent(exExtent); - exExtent.addContent(geographicElement); - geographicElement.addContent(boundingPoly); - boundingPoly.addContent(polyon); - polyon.addContent(geom); - - if (feature.getFeatureType().getAttributeCount() == 3) { - try { - String attribute = (String) feature.getAttribute(2); - if (attribute.length() > 0) { - exExtent.addContent(0, toGeomDescElem(attribute)); - } - } catch (Exception e) { - ByteArrayOutputStream out = new ByteArrayOutputStream(); - e.printStackTrace(new PrintStream(out)); - Log.error("org.fao.geonet.services.xlink.Extent", "Error parsing XML from feature:\n"+out); - } - } - - return extent; - } - - private Element toGeomDescElem(String basicValue) throws Exception - { - String xml = "<description>"+basicValue+"</description>"; - Element desc = Xml.loadString(xml, false); - return Xml.transform(desc, geomDescStyleSheet); - } - - private Element encodeAsGML(SimpleFeature feature) throws IOException, JDOMException - { - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - Encoder encoder = new Encoder(gmlConfiguration); - encoder.setIndenting(false); - encoder.encode(feature.getDefaultGeometry(), org.geotools.gml3.GML.geometryMember, outputStream); - return Xml.loadString(outputStream.toString(), false); - } - - private String toString(List<AttributeDescriptor> attributeDescriptors) - { - StringBuilder builder = new StringBuilder(); - - for (AttributeDescriptor desc : attributeDescriptors) { - if (builder.length() > 0) { - builder.append(", "); - } - builder.append(desc.getName().toString()); - } - return "[" + builder.toString() + "]"; - } - - private AttributeDescriptor getIdColumn(String idColumn, - FeatureSource<SimpleFeatureType, SimpleFeature> featureSource) - { - - SimpleFeatureType schema = featureSource.getSchema(); - AttributeDescriptor column = findColumn(idColumn, schema); - if (column != null) { - return column; - } - - return findColumn("id", schema); - } - - private AttributeDescriptor findColumn(String idColumn, SimpleFeatureType featureType) - { - for (AttributeDescriptor desc : featureType.getAttributeDescriptors()) { - if (desc.getLocalName().equalsIgnoreCase(idColumn)) { - return desc; - } - } - return null; - } - - private Element errorTypename(String typename) throws IOException - { - String options = Arrays.toString(getDataStore().getTypeNames()); - String msg = "Typename: " + typename + " does not exist. Available options are: " + options; - return error(msg); - } - - private Element error(String msg) - { - Element error = new Element("error"); - error.addContent(msg); - return error; - } - - private synchronized FeatureSource<SimpleFeatureType, SimpleFeature> getFeatureStore(String typename) - throws IOException - { - DataStore datastore = getDataStore(); - if (Arrays.asList(datastore.getTypeNames()).contains(typename)) { - return datastore.getFeatureSource(typename); - } else { - return null; - } - } - - private synchronized DataStore getDataStore() throws IOException - { - if (datastore == null) { - WFSDataStoreFactory factory = new WFSDataStoreFactory(); - this.datastore = factory.createDataStore(dsParams); - } - return datastore; - } - - public void init(String appPath, ServiceConfig params) throws Exception - { - String url = ServiceParams.wfsurl.getValue(params); - dsParams = new HashMap<String, Serializable>(); - dsParams.put(WFSDataStoreFactory.URL.key, url); - this.geomDescStyleSheet=appPath+"xsl/xlink/geometry_description.xsl"; - } - -} Modified: sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config.xml =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config.xml 2009-01-15 13:02:17 UTC (rev 1966) +++ sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/config.xml 2009-01-15 13:17:26 UTC (rev 1967) @@ -126,6 +126,22 @@ <param name="codeListDir" value="xml/codelist" /> <param name="summaryConfig" value="WEB-INF/summaryConfig.xml" /> <param name="kantoneShpFiles" value="../geoserver/data/SwissTopo" /> + <param name="extent" > + <!-- If there is no id then the server is the default server and can be accessed with ExtentManager.DEFAULT_WFS_ID id --> + <!-- columns are case sensitive --> + <wfs url="http://localhost:8080/geoserver/wfs?service=WFS&request=GetCapabilities"> + <typename typename="gn:countries" idColumn="KANTONSNR" descColumn="DESC"/> + <typename typename="gn:gemeindenBB" idColumn="OBJECTVAL" descColumn="GEMNAME"/> + <typename typename="gn:kantoneBB" idColumn="KANTONSNR" descColumn="AK"/> + <typename typename="gn:xlinks" idColumn="ID" descColumn="DESC" modifiable="true" /> + </wfs> + <!-- If there is an id then the server is not the default "local" server + <wfs id="remote" url="http://xxx?service=WFS&request=GetCapabilities"> + <typename typename="gn:countries" idColumn="kantonsnr" descColumn="DESC"/> + <typename typename="gn:gemeindenBB" idColumn="objectval" descColumn="GEMNAME"/> + </wfs> + --> + </param> </appHandler> <!-- ====================================================================== --> @@ -154,11 +170,29 @@ </service> <service name="xml.extent.get"> - <class name=".services.xlink.Extent"> - <param name="wfsurl" value="http://localhost:8080/geoserver/wfs?service=WFS&request=GetCapabilities" /> - </class> + <class name=".services.extent.Get"/> </service> + + <service name="xml.extent.add"> + <class name=".services.extent.Add"/> + </service> + + <service name="xml.extent.delete"> + <class name=".services.extent.Delete"/> + </service> + + <service name="xml.extent.update"> + <class name=".services.extent.Update"/> + </service> + <service name="extent.admin"> + <class name=".services.extent.Admin"/> + </service> + + <service name="xml.extent.list"> + <class name=".services.extent.List"/> + </service> + <service name="home"> <output sheet="home.xsl" /> </service> Modified: sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/lib/gt-wfs-2.5.1.jar =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/lib/gt-wfs-2.5.1.jar 2009-01-15 13:02:17 UTC (rev 1966) +++ sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/lib/gt-wfs-2.5.1.jar 2009-01-15 13:17:26 UTC (rev 1967) @@ -1,1808 +1,3154 @@ PK - |
From: <jes...@us...> - 2009-01-15 13:40:00
|
Revision: 1968 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1968&view=rev Author: jesseeichar Date: 2009-01-15 13:39:54 +0000 (Thu, 15 Jan 2009) Log Message: ----------- added delete service Modified Paths: -------------- sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/Add.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/WFS.java Added Paths: ----------- sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/Delete.java sandbox/geocat.ch/trunk/test/extentTestQueries Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/Add.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/Add.java 2009-01-15 13:17:26 UTC (rev 1967) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/Add.java 2009-01-15 13:39:54 UTC (rev 1968) @@ -131,8 +131,6 @@ public Element exec(Element params, ServiceContext context) throws Exception { - Logger.getLogger("org.geotools.data.wfs").setLevel(Level.ALL); - Logger.getLogger("org.geotools.xml").setLevel(Level.ALL); GeonetContext gc = (GeonetContext) context.getHandlerContext(Geonet.CONTEXT_NAME); ExtentManager extentMan = gc.getExtentManager(); @@ -149,7 +147,7 @@ WFS wfs = extentMan.getWFS(wfsParam); FeatureType featureType = wfs.getFeatureType(typename); if( !featureType.isModifiable() ){ - return ExtentHelper.error(typename+" is not a modifiable type, modifiable types are: "+listModifiable(wfs)); + return ExtentHelper.error(typename+" is not a modifiable type, modifiable types are: "+wfs.listModifiable()); } FeatureStore<SimpleFeatureType, SimpleFeature> store = (FeatureStore<SimpleFeatureType, SimpleFeature>) featureType.getFeatureSource(); SimpleFeatureType schema = store.getSchema(); @@ -168,12 +166,7 @@ private boolean idExists(FeatureStore<SimpleFeatureType, SimpleFeature> store, String id, FeatureType featureType) throws IOException { - FilterFactory2 factory = CommonFactoryFinder.getFilterFactory2(GeoTools.getDefaultHints()); - Literal literal = factory.literal(id); - PropertyName property = factory.property(featureType.idColumn); - Filter filter = factory.equals(property, literal); - DefaultQuery query = new DefaultQuery(featureType.typename, filter, new String[]{featureType.idColumn}); - return !store.getFeatures(query).isEmpty(); + return !store.getFeatures(featureType.createQuery(id,new String[]{featureType.idColumn})).isEmpty(); } private void addFeature(String id, String desc, Geometry geometry, FeatureType featureType, @@ -189,13 +182,4 @@ store.addFeatures(collection); } - private String listModifiable(WFS wfs) - { - List<String> name = new ArrayList<String>(); - for( FeatureType type:wfs.getModifiableTypes()){ - name.add(type.typename); - } - return name.toString(); - } - } Added: sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/Delete.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/Delete.java (rev 0) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/Delete.java 2009-01-15 13:39:54 UTC (rev 1968) @@ -0,0 +1,74 @@ +//============================================================================== +//=== Copyright (C) 2001-2008 Food and Agriculture Organization of the +//=== United Nations (FAO-UN), United Nations World Food Programme (WFP) +//=== and United Nations Environment Programme (UNEP) +//=== +//=== This program is free software; you can redistribute it and/or modify +//=== it under the terms of the GNU General Public License as published by +//=== the Free Software Foundation; either version 2 of the License, or (at +//=== your option) any later version. +//=== +//=== This program is distributed in the hope that it will be useful, but +//=== WITHOUT ANY WARRANTY; without even the implied warranty of +//=== MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +//=== General Public License for more details. +//=== +//=== You should have received a copy of the GNU General Public License +//=== along with this program; if not, write to the Free Software +//=== Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA +//=== +//=== Contact: Jeroen Ticheler - FAO - Viale delle Terme di Caracalla 2, +//=== Rome - Italy. email: geo...@os... +//============================================================================== + +package org.fao.geonet.services.extent; + +import static org.fao.geonet.services.extent.ExtentHelper.ID; +import static org.fao.geonet.services.extent.ExtentHelper.TYPENAME; +import static org.fao.geonet.services.extent.ExtentHelper.WFS; + +import org.fao.geonet.GeonetContext; +import org.fao.geonet.constants.Geonet; +import org.fao.geonet.services.extent.WFS.FeatureType; +import org.geotools.data.FeatureStore; +import org.jdom.Element; +import org.opengis.feature.simple.SimpleFeature; +import org.opengis.feature.simple.SimpleFeatureType; + +import jeeves.interfaces.Service; +import jeeves.server.ServiceConfig; +import jeeves.server.context.ServiceContext; + +/** + * @author jeichar + * + */ +public class Delete implements Service +{ + + public void init(String appPath, ServiceConfig params) throws Exception {} + public Element exec(Element params, ServiceContext context) throws Exception + { + GeonetContext gc = (GeonetContext) context.getHandlerContext(Geonet.CONTEXT_NAME); + ExtentManager extentMan = gc.getExtentManager(); + + String id = params.getChildTextTrim(ID); + String wfsParam = params.getChildTextTrim(WFS); + String typename = params.getChildTextTrim(TYPENAME); + + WFS wfs = extentMan.getWFS(wfsParam); + FeatureType featureType = wfs.getFeatureType(typename); + if( !featureType.isModifiable() ){ + return ExtentHelper.error(typename+" is not a modifiable type, modifiable types are: "+wfs.listModifiable()); + } + FeatureStore<SimpleFeatureType, SimpleFeature> store = (FeatureStore<SimpleFeatureType, SimpleFeature>) featureType.getFeatureSource(); + + store.removeFeatures(featureType.createFilter(id)); + + Element responseElem = new Element("success"); + responseElem.setText("Removed features with id= "+id); + return responseElem; + } + + +} Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/WFS.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/WFS.java 2009-01-15 13:17:26 UTC (rev 1967) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/WFS.java 2009-01-15 13:39:54 UTC (rev 1968) @@ -25,19 +25,29 @@ import java.io.IOException; import java.io.Serializable; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.HashSet; +import java.util.List; import java.util.Map; import java.util.Set; import org.geotools.data.DataStore; +import org.geotools.data.DefaultQuery; import org.geotools.data.FeatureSource; +import org.geotools.data.Query; import org.geotools.data.wfs.WFSDataStore; import org.geotools.data.wfs.WFSDataStoreFactory; +import org.geotools.factory.CommonFactoryFinder; +import org.geotools.factory.GeoTools; import org.opengis.feature.simple.SimpleFeature; import org.opengis.feature.simple.SimpleFeatureType; +import org.opengis.filter.Filter; +import org.opengis.filter.FilterFactory2; +import org.opengis.filter.expression.Literal; +import org.opengis.filter.expression.PropertyName; public class WFS { @@ -111,6 +121,22 @@ } return string; } + + public Query createQuery(String id, String[] properties) + { + Filter filter = createFilter(id); + DefaultQuery query = new DefaultQuery(typename, filter, properties); + return query; + } + + public Filter createFilter(String id) + { + FilterFactory2 factory = CommonFactoryFinder.getFilterFactory2(GeoTools.getDefaultHints()); + Literal literal = factory.literal(id); + PropertyName property = factory.property(idColumn); + Filter filter = factory.equals(property, literal); + return filter; + } } public FeatureType getFeatureType(String typename) @@ -128,4 +154,12 @@ return modifiable; } + public String listModifiable() + { + List<String> name = new ArrayList<String>(); + for( FeatureType type:getModifiableTypes()){ + name.add(type.typename); + } + return name.toString(); + } } \ No newline at end of file Added: sandbox/geocat.ch/trunk/test/extentTestQueries =================================================================== --- sandbox/geocat.ch/trunk/test/extentTestQueries (rev 0) +++ sandbox/geocat.ch/trunk/test/extentTestQueries 2009-01-15 13:39:54 UTC (rev 1968) @@ -0,0 +1,15 @@ +http://localhost:8080/geonetwork/srv/eng/xml.extent.add?typename=gn:xlinks&id=0&desc=testdesc&geom=MULTIPOLYGON%20(((9.626899505236718%2047.23491350529245,%209.73707315031715%2047.24631077892146,%209.82065315692989%2047.22731532287311,%209.82825133934923%2047.15893168109905,%209.74467133273649%2047.13233804263136,%209.668689508543089%2047.12853895142169,%209.626899505236718%2047.23491350529245)))&format=WKT + +http://localhost:8080/geonetwork/srv/eng/xml.extent.add?typename=gn:countries&id=0&desc=testdesc&geom=MULTIPOLYGON%20(((9.626899505236718%2047.23491350529245,%209.73707315031715%2047.24631077892146,%209.82065315692989%2047.22731532287311,%209.82825133934923%2047.15893168109905,%209.74467133273649%2047.13233804263136,%209.668689508543089%2047.12853895142169,%209.626899505236718%2047.23491350529245)))&format=WKT + +http://localhost:8080/geonetwork/srv/eng/xml.extent.list + +http://localhost:8080/geonetwork/srv/eng/xml.extent.list?wfs=default + +http://localhost:8080/geonetwork/srv/eng/xml.extent.list?wfs=default&typename=gn:xlinks + +http://localhost:8080/geonetwork/srv/eng/xml.extent.get?wfs=default&typename=gn:countries&id=0 + +http://localhost:8080/geonetwork/srv/eng/xml.extent.delete?wfs=default&typename=gn:countries&id=0 + +http://localhost:8080/geonetwork/srv/eng/xml.extent.delete?wfs=default&typename=gn:xlinks&id=100 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jes...@us...> - 2009-01-15 14:20:37
|
Revision: 1969 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1969&view=rev Author: jesseeichar Date: 2009-01-15 14:20:30 +0000 (Thu, 15 Jan 2009) Log Message: ----------- added update service Modified Paths: -------------- sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/Add.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/Delete.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/ExtentHelper.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/Get.java sandbox/geocat.ch/trunk/test/extentTestQueries sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/lib/gt-wfs-2.5.1.jar Added Paths: ----------- sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/Update.java Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/Add.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/Add.java 2009-01-15 13:39:54 UTC (rev 1968) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/Add.java 2009-01-15 14:20:30 UTC (rev 1969) @@ -24,29 +24,24 @@ package org.fao.geonet.services.extent; import static org.fao.geonet.services.extent.ExtentHelper.DESC; +import static org.fao.geonet.services.extent.ExtentHelper.FORMAT; +import static org.fao.geonet.services.extent.ExtentHelper.GEOM; import static org.fao.geonet.services.extent.ExtentHelper.ID; import static org.fao.geonet.services.extent.ExtentHelper.TYPENAME; import static org.fao.geonet.services.extent.ExtentHelper.WFS; import java.io.IOException; import java.io.StringReader; -import java.util.ArrayList; import java.util.Arrays; -import java.util.List; import jeeves.interfaces.Service; import jeeves.server.ServiceConfig; import jeeves.server.context.ServiceContext; -import org.apache.log4j.Level; -import org.apache.log4j.Logger; import org.fao.geonet.GeonetContext; import org.fao.geonet.constants.Geonet; import org.fao.geonet.services.extent.WFS.FeatureType; -import org.geotools.data.DefaultQuery; import org.geotools.data.FeatureStore; -import org.geotools.factory.CommonFactoryFinder; -import org.geotools.factory.GeoTools; import org.geotools.feature.FeatureCollection; import org.geotools.feature.FeatureCollections; import org.geotools.feature.simple.SimpleFeatureBuilder; @@ -55,10 +50,6 @@ import org.jdom.Element; import org.opengis.feature.simple.SimpleFeature; import org.opengis.feature.simple.SimpleFeatureType; -import org.opengis.filter.Filter; -import org.opengis.filter.FilterFactory2; -import org.opengis.filter.expression.Literal; -import org.opengis.filter.expression.PropertyName; import com.vividsolutions.jts.geom.Geometry; import com.vividsolutions.jts.io.ParseException; @@ -137,15 +128,17 @@ String id = params.getChildTextTrim(ID); String wfsParam = params.getChildTextTrim(WFS); String typename = params.getChildTextTrim(TYPENAME); - String geomParam = params.getChildTextTrim("geom"); + String geomParam = params.getChildTextTrim(GEOM); String desc = params.getChildTextTrim(DESC); - Format format = Format.lookup(params.getChildTextTrim("format")); + Format format = Format.lookup(params.getChildTextTrim(FORMAT)); - Geometry geometry = format.parse(geomParam); - geometry.setSRID(4326); - WFS wfs = extentMan.getWFS(wfsParam); FeatureType featureType = wfs.getFeatureType(typename); + + if( featureType==null ){ + return ExtentHelper.error(typename+" does not exist, acceptable types are: "+wfs.listModifiable()); + } + if( !featureType.isModifiable() ){ return ExtentHelper.error(typename+" is not a modifiable type, modifiable types are: "+wfs.listModifiable()); } @@ -155,6 +148,9 @@ if( idExists(store, id, featureType) ){ return ExtentHelper.error("The id "+id+" already exists!"); } + + Geometry geometry = format.parse(geomParam); + geometry.setSRID(4326); addFeature(id, desc, geometry, featureType, store, schema); @@ -163,7 +159,7 @@ return responseElem; } - private boolean idExists(FeatureStore<SimpleFeatureType, SimpleFeature> store, String id, FeatureType featureType) + static boolean idExists(FeatureStore<SimpleFeatureType, SimpleFeature> store, String id, FeatureType featureType) throws IOException { return !store.getFeatures(featureType.createQuery(id,new String[]{featureType.idColumn})).isEmpty(); Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/Delete.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/Delete.java 2009-01-15 13:39:54 UTC (rev 1968) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/Delete.java 2009-01-15 14:20:30 UTC (rev 1969) @@ -40,8 +40,9 @@ import jeeves.server.context.ServiceContext; /** + * Service for deleting extent objects from the WMS + * * @author jeichar - * */ public class Delete implements Service { @@ -58,6 +59,9 @@ WFS wfs = extentMan.getWFS(wfsParam); FeatureType featureType = wfs.getFeatureType(typename); + if( featureType==null ){ + return ExtentHelper.error(typename+" does not exist, acceptable types are: "+wfs.listModifiable()); + } if( !featureType.isModifiable() ){ return ExtentHelper.error(typename+" is not a modifiable type, modifiable types are: "+wfs.listModifiable()); } Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/ExtentHelper.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/ExtentHelper.java 2009-01-15 13:39:54 UTC (rev 1968) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/ExtentHelper.java 2009-01-15 14:20:30 UTC (rev 1969) @@ -24,4 +24,6 @@ error.addContent(msg); return error; } + public static final String GEOM = "geom"; + public static final String FORMAT = "format"; } Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/Get.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/Get.java 2009-01-15 13:39:54 UTC (rev 1968) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/Get.java 2009-01-15 14:20:30 UTC (rev 1969) @@ -85,12 +85,13 @@ } WFS wfs = extentMan.getWFS(wfsId); FeatureType featureType = wfs.getFeatureType(typename); - FeatureSource<SimpleFeatureType, SimpleFeature> featureSource = featureType - .getFeatureSource(); - if (featureSource == null) { + if( featureType==null ){ return errorTypename(extentMan, typename); } + FeatureSource<SimpleFeatureType, SimpleFeature> featureSource = featureType + .getFeatureSource(); + String[] properties; if (featureType.descColumn != null) { properties = new String[3]; Added: sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/Update.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/Update.java (rev 0) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/services/extent/Update.java 2009-01-15 14:20:30 UTC (rev 1969) @@ -0,0 +1,128 @@ +//============================================================================== +//=== Copyright (C) 2001-2008 Food and Agriculture Organization of the +//=== United Nations (FAO-UN), United Nations World Food Programme (WFP) +//=== and United Nations Environment Programme (UNEP) +//=== +//=== This program is free software; you can redistribute it and/or modify +//=== it under the terms of the GNU General Public License as published by +//=== the Free Software Foundation; either version 2 of the License, or (at +//=== your option) any later version. +//=== +//=== This program is distributed in the hope that it will be useful, but +//=== WITHOUT ANY WARRANTY; without even the implied warranty of +//=== MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +//=== General Public License for more details. +//=== +//=== You should have received a copy of the GNU General Public License +//=== along with this program; if not, write to the Free Software +//=== Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA +//=== +//=== Contact: Jeroen Ticheler - FAO - Viale delle Terme di Caracalla 2, +//=== Rome - Italy. email: geo...@os... +//============================================================================== + +package org.fao.geonet.services.extent; + +import static org.fao.geonet.services.extent.ExtentHelper.DESC; +import static org.fao.geonet.services.extent.ExtentHelper.FORMAT; +import static org.fao.geonet.services.extent.ExtentHelper.GEOM; +import static org.fao.geonet.services.extent.ExtentHelper.DESC; +import static org.fao.geonet.services.extent.ExtentHelper.ID; +import static org.fao.geonet.services.extent.ExtentHelper.TYPENAME; +import static org.fao.geonet.services.extent.ExtentHelper.WFS; + +import java.util.ArrayList; + +import org.fao.geonet.GeonetContext; +import org.fao.geonet.constants.Geonet; +import org.fao.geonet.services.extent.Add.Format; +import org.fao.geonet.services.extent.WFS.FeatureType; +import org.geotools.data.FeatureStore; +import org.jdom.Element; +import org.opengis.feature.simple.SimpleFeature; +import org.opengis.feature.simple.SimpleFeatureType; +import org.opengis.feature.type.AttributeDescriptor; +import org.opengis.feature.type.GeometryDescriptor; + +import com.vividsolutions.jts.geom.Geometry; + +import jeeves.interfaces.Service; +import jeeves.server.ServiceConfig; +import jeeves.server.context.ServiceContext; + +/** + * Service for updating extent information + * + * @author jeichar + */ +public class Update implements Service +{ + + public void init(String appPath, ServiceConfig params) throws Exception { } + + public Element exec(Element params, ServiceContext context) throws Exception + { + + GeonetContext gc = (GeonetContext) context.getHandlerContext(Geonet.CONTEXT_NAME); + ExtentManager extentMan = gc.getExtentManager(); + + String id = params.getChildTextTrim(ID); + String wfsParam = params.getChildTextTrim(WFS); + String typename = params.getChildTextTrim(TYPENAME); + String geomParam = params.getChildTextTrim(GEOM); + String desc = params.getChildTextTrim(DESC); + + WFS wfs = extentMan.getWFS(wfsParam); + FeatureType featureType = wfs.getFeatureType(typename); + if( featureType==null ){ + return ExtentHelper.error(typename+" does not exist, acceptable types are: "+wfs.listModifiable()); + } + if( !featureType.isModifiable() ){ + return ExtentHelper.error(typename+" is not a modifiable type, modifiable types are: "+wfs.listModifiable()); + } + FeatureStore<SimpleFeatureType, SimpleFeature> store = (FeatureStore<SimpleFeatureType, SimpleFeature>) featureType.getFeatureSource(); + + if( !Add.idExists(store, id, featureType) ){ + return ExtentHelper.error("The id "+id+" does not exist, perhaps you want to use the add service"); + } + + java.util.List<Object> newValues = new ArrayList<Object>(); + java.util.List<AttributeDescriptor> attributes = new ArrayList<AttributeDescriptor>(); + java.util.List<Element> changes=new ArrayList<Element>(); + + Geometry geometry=null; + if( geomParam!=null ){ + Format format = Format.lookup(params.getChildTextTrim(FORMAT)); + geometry = format.parse(geomParam); + geometry.setSRID(4326); + newValues.add(geometry); + GeometryDescriptor descriptor = store.getSchema().getGeometryDescriptor(); + attributes.add(descriptor); + Element change = new Element("change"); + change.setText("Attribute "+descriptor.getLocalName()+" updated to "+geomParam); + changes.add(change); + } + + if( desc!=null ){ + newValues.add(desc); + AttributeDescriptor descriptor = store.getSchema().getDescriptor(featureType.descColumn); + attributes.add(descriptor); + Element change = new Element("change"); + change.setText("Attribute "+descriptor.getLocalName()+" updated to "+desc); + changes.add(change); + } + + if( attributes.isEmpty() ){ + return ExtentHelper.error("No updates were requested. One or both of geom and "+DESC+" must be defined for an update"); + } + + store.modifyFeatures(attributes.toArray(new AttributeDescriptor[attributes.size()]), newValues.toArray(), featureType.createFilter(id)); + + Element responseElem = new Element("success"); + responseElem.setText("Updated features with id= "+id); + responseElem.addContent(changes); + return responseElem; + } + + +} Modified: sandbox/geocat.ch/trunk/test/extentTestQueries =================================================================== --- sandbox/geocat.ch/trunk/test/extentTestQueries 2009-01-15 13:39:54 UTC (rev 1968) +++ sandbox/geocat.ch/trunk/test/extentTestQueries 2009-01-15 14:20:30 UTC (rev 1969) @@ -13,3 +13,8 @@ http://localhost:8080/geonetwork/srv/eng/xml.extent.delete?wfs=default&typename=gn:countries&id=0 http://localhost:8080/geonetwork/srv/eng/xml.extent.delete?wfs=default&typename=gn:xlinks&id=100 + +http://localhost:8080/geonetwork/srv/eng/xml.extent.update?wfs=default&typename=gn:xlinks&id=101&desc="newDesc" + +http://localhost:8080/geonetwork/srv/eng/xml.extent.update?typename=gn:countries&id=0&desc=testdesc&geom=MULTIPOLYGON%20(((9.626899505236718%2047.23491350529245,%209.73707315031715%2047.24631077892146,%209.82065315692989%2047.22731532287311,%209.82825133934923%2047.15893168109905,%209.74467133273649%2047.13233804263136,%209.668689508543089%2047.12853895142169,%209.626899505236718%2047.23491350529245)))&format=WKT + Modified: sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/lib/gt-wfs-2.5.1.jar =================================================================== --- sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/lib/gt-wfs-2.5.1.jar 2009-01-15 13:39:54 UTC (rev 1968) +++ sandbox/geocat.ch/trunk/web/geonetwork/WEB-INF/lib/gt-wfs-2.5.1.jar 2009-01-15 14:20:30 UTC (rev 1969) @@ -1,105 +1,105 @@ PK - |