[GeoNetwork-devel] [GeoNetwork-commit] SF.net SVN: geonetwork: [874] trunk

Hi all, I updated my local install … and dc format is not loading anymore. We’re missing dcterms.xsd and dcmitype.xsd in the schema folder. Then the editor doesn’t work with the sample metadata we have. Do you have any ideas or missing files to be commited to the trunk ?

Thanks. Francois

-----Message d’origine-----
De : geonetwork-commit-bounces@lists.sourceforge.net [mailto:geonetwork-commit-bounces@lists.sourceforge.net] De la part de bluenetdevteam@anonymised.com
Envoyé : lundi 24 septembre 2007 08:57
À : geonetwork-commit@lists.sourceforge.net
Objet : [GeoNetwork-commit] SF.net SVN: geonetwork: [874] trunk

Revision: 874

http://geonetwork.svn.sourceforge.net/geonetwork/?rev=874&view=rev

Author: bluenetdevteam

Date: 2007-09-24 08:57:19 -0700 (Mon, 24 Sep 2007)

Log Message:


Fixes for dublin-core problems in 2.1 - flow on from dct: schema introduction

Modified Paths:


trunk/src/org/fao/geonet/kernel/schema/MetadataSchema.java

trunk/src/org/fao/geonet/kernel/schema/SchemaLoader.java

trunk/web/geonetwork/xml/schemas/dublin-core/dc.xsd

trunk/web/geonetwork/xml/schemas/dublin-core/loc/en/labels.xml

trunk/web/geonetwork/xml/schemas/dublin-core/set-uuid.xsl

trunk/web/geonetwork/xml/schemas/dublin-core/update-fixed-info.xsl

Modified: trunk/src/org/fao/geonet/kernel/schema/MetadataSchema.java

===================================================================

— trunk/src/org/fao/geonet/kernel/schema/MetadataSchema.java 2007-09-21 14:15:02 UTC (rev 873)

+++ trunk/src/org/fao/geonet/kernel/schema/MetadataSchema.java 2007-09-24 15:57:19 UTC (rev 874)

@@ -73,18 +73,10 @@

List childType = hmElements.get(elem);

if (childType == null) {

// Check and see whether we can substitute another element from the

  • // list of substitution links - just process the arrayList until

  • // we find one that matches

  • ArrayList alSubsLink = (ArrayList) hmSubsLink.get(elem);

  • Logger.log("metadataSchema: checking subs for element “+elem+” parent "+parent);

  • if (alSubsLink != null) {

  • for (int i = 0;i< alSubsLink.size();i++) {

  • elem = (String) alSubsLink.get(i);

  • Logger.log(" – substitute "+elem);

  • childType = hmElements.get(elem);

  • if (childType != null) continue;

  • }

  • }

  • // substitution link

  • elem = (String) hmSubsLink.get(elem);

  • Logger.log(" – substitute "+elem);

  • childType = hmElements.get(elem);

if (childType == null)

throw new IllegalArgumentException("Mismatch between schema and xml: No type for ‘element’ : “+elem+” with parent "+parent);

}

@@ -157,13 +149,13 @@

//—

//---------------------------------------------------------------------------

  • void addElement(String name, String type, ArrayList alValues, ArrayList alSubs, ArrayList alSubsLink)
  • void addElement(String name, String type, ArrayList alValues, ArrayList alSubs, String subLink)

{

// first just add the subs - because these are for global elements we

// never have a clash because global elements are all in the same scope

// and are thus unique

if (alSubs != null && alSubs.size() > 0) hmSubs.put(name,alSubs);

  • if (alSubsLink != null && alSubsLink.size() > 0) hmSubsLink.put(name,alSubsLink);
  • if (subLink != null && subLink.length() > 0) hmSubsLink.put(name,subLink);

List exType = hmElements.get(name);

Modified: trunk/src/org/fao/geonet/kernel/schema/SchemaLoader.java

===================================================================

— trunk/src/org/fao/geonet/kernel/schema/SchemaLoader.java 2007-09-21 14:15:02 UTC (rev 873)

+++ trunk/src/org/fao/geonet/kernel/schema/SchemaLoader.java 2007-09-24 15:57:19 UTC (rev 874)

@@ -100,8 +100,11 @@

{

ee.type = (String) hmAbsElems.get(elem);

  • if (ee.type == null)

  • throw new IllegalArgumentException("Type is null for ‘element’ : " + ee.name);

  • if (ee.type == null) {

  • // If we don’t have a type then insert with null and fix

  • // when all elements have been added to hmElements

  • Logger.log("Type is null for ‘element’ : “+ee.name+” which is part of substitution group with head element "+elem);

  • }

}

hmElements.put(ee.name, ee.type);

@@ -117,6 +120,19 @@

String elem = (String) i.next();

String type = (String) hmElements.get(elem);

  • // fix any null types by back tracking through substitution links

  • // until we get a concrete type or die trying :slight_smile:

  • if (type == null) {

  • Logger.log("Searching for type for element "+elem);

  • type = recurseOnSubstitutionLinks(elem);

  • if (type == null) {

  • System.out.println(“WARNING: Cannot find type for " +elem+”: assuming string");

  • type=“xs:string”;

  • } else {

  • Logger.log("-- Recursive search returned “+type+” for element "+elem);

  • }

  • }

ArrayList elemRestr = (ArrayList) hmElemRestr.get(elem);

ArrayList typeRestr = (ArrayList) hmTypeRestr.get(type);

@@ -128,8 +144,8 @@

ArrayList elemSubs = (ArrayList) hmSubsNames.get(elem);

if (elemSubs == null) elemSubs = new ArrayList();

  • ArrayList elemSubsLink = (ArrayList) hmSubsLink.get(elem);

  • if (elemSubsLink == null) elemSubsLink = new ArrayList();

  • String elemSubsLink = (String) hmSubsLink.get(elem);

  • if (elemSubsLink == null) elemSubsLink = “”;

mds.addElement(elem, type, elemRestr, elemSubs, elemSubsLink);

}

@@ -259,7 +275,7 @@

{

type = ee.type == null ? “string” : ee.type;

  • mds.addElement(ee.name, type, new ArrayList(), new ArrayList(), new ArrayList());
  • mds.addElement(ee.name, type, new ArrayList(), new ArrayList(), “”);

// 3. element is a choice element or an error

} else {

@@ -278,7 +294,7 @@

// create an mdt with the chosen name and process any nested choices

createTypeAndResolveNestedChoices(mds,ee.alChoiceElems,

baseChoiceName,baseChoiceNr);

  • mds.addElement(ee.name, type, new ArrayList(), new ArrayList(), new ArrayList());
  • mds.addElement(ee.name, type, new ArrayList(), new ArrayList(), “”);

}

@@ -291,10 +307,10 @@

ArrayList al = (ArrayList) hmSubsGrp.get(ee.ref);

if (al == null)

{

  • al = (ArrayList) hmSubsLink.get(ee.ref);
  • String subLink = (String) hmSubsLink.get(ee.ref);
  • if (al != null) {

  • Logger.log("WARNING: Adding abstract element “+ee.ref+” with substitution group "+al);

  • if (subLink != null) {

  • Logger.log("WARNING: Adding abstract element “+ee.ref+” with substitution group "+subLink);

mdt.addRefElementWithNoType(ee.ref, ee.min, ee.max);

}

}

@@ -311,7 +327,7 @@

Integer elementsAdded = recursivelyDealWithAbstractElements(mdtc,al);

mdtc.setOrType(elementsAdded > 1);

mds.addType(type,mdtc);

  • mds.addElement(ee.ref,type,new ArrayList(),new ArrayList(), new ArrayList());
  • mds.addElement(ee.ref,type,new ArrayList(),new ArrayList(), “”);

mdt.addElementWithType(ee.ref,type,ee.min,ee.max);

}

}

@@ -330,6 +346,21 @@

//---------------------------------------------------------------------------

//—

  • //— Recurse on substitution links until we get a type that we can use

  • //—

  • //---------------------------------------------------------------------------

  • private String recurseOnSubstitutionLinks(String elemName) {

  • String elemLinkName = (String) hmSubsLink.get(elemName);

  • if (elemLinkName != null) {

  • String elemLinkType = (String) hmElements.get(elemLinkName);

  • if (elemLinkType != null) return elemLinkType; // found concrete type!

  • else recurseOnSubstitutionLinks(elemLinkName); // keep trying

  • }

  • return null; // Cannot find a type so return null

  • }

  • //---------------------------------------------------------------------------

  • //—

//— Descend recursively to deal with nested choices (arggh)

//—

//---------------------------------------------------------------------------

@@ -348,11 +379,11 @@

Integer newBaseNr = baseNr+1;

createTypeAndResolveNestedChoices(mds,ee.alChoiceElems,baseName,newBaseNr);

ee.name = ee.type = baseName+newBaseNr;

  • mds.addElement(ee.name,ee.type,new ArrayList(),new ArrayList(), new ArrayList());
  • mds.addElement(ee.name,ee.type,new ArrayList(),new ArrayList(), “”);

mdt.addElementWithType(ee.name, ee.type, ee.min, ee.max);

} else {

if (ee.name != null) {

  • mds.addElement(ee.name,ee.type,new ArrayList(),new ArrayList(), new ArrayList());
  • mds.addElement(ee.name,ee.type,new ArrayList(),new ArrayList(),“”);

mdt.addElementWithType(ee.name, ee.type, ee.min, ee.max);

}

else {

@@ -534,12 +565,11 @@

}

al.add(ee);

  • ArrayList alLink = (ArrayList) hmSubsLink.get(ee.name);

  • if (alLink == null) {

  • alLink = new ArrayList();

  • hmSubsLink.put(ee.name,alLink);

  • if (hmSubsLink.get(ee.name) != null) {

  • throw new IllegalArgumentException("Substitution link collision for : “+ee.name+” link to "+ee.substGroup);

  • } else {

  • hmSubsLink.put(ee.name,ee.substGroup);

}

  • alLink.add(ee.substGroup);

}

if (ee.abstrElem)

{

Modified: trunk/web/geonetwork/xml/schemas/dublin-core/dc.xsd

===================================================================

— trunk/web/geonetwork/xml/schemas/dublin-core/dc.xsd 2007-09-21 14:15:02 UTC (rev 873)

+++ trunk/web/geonetwork/xml/schemas/dublin-core/dc.xsd 2007-09-24 15:57:19 UTC (rev 874)

@@ -1,6 +1,6 @@

<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns:xs=“http://www.w3.org/2001/XMLSchema

targetNamespace=“http://purl.org/dc/elements/1.1/

elementFormDefault=“qualified”

attributeFormDefault=“unqualified”>

@@ -39,9 +39,12 @@

<xs:import namespace=“http://www.w3.org/XML/1998/namespace

  • schemaLocation=“xml.xsd”>

  • </xs:import>

<xs:complexType name=“SimpleLiteral”>

xs:annotation

<xs:documentation xml:lang=“en”>

@@ -75,23 +78,23 @@

</xs:complexType>

  • <xs:element name=“any” type=“SimpleLiteral” abstract=“true”/>
  • <xs:element name=“any” type=“dc:SimpleLiteral” abstract=“true”/>
  • <xs:element name=“title” substitutionGroup=“any”/>

  • <xs:element name=“creator” substitutionGroup=“any”/>

  • <xs:element name=“subject” substitutionGroup=“any”/>

  • <xs:element name=“description” substitutionGroup=“any”/>

  • <xs:element name=“publisher” substitutionGroup=“any”/>

  • <xs:element name=“contributor” substitutionGroup=“any”/>

  • <xs:element name=“date” substitutionGroup=“any”/>

  • <xs:element name=“type” substitutionGroup=“any”/>

  • <xs:element name=“format” substitutionGroup=“any”/>

  • <xs:element name=“identifier” substitutionGroup=“any”/>

  • <xs:element name=“source” substitutionGroup=“any”/>

  • <xs:element name=“language” substitutionGroup=“any”/>

  • <xs:element name=“relation” substitutionGroup=“any”/>

  • <xs:element name=“coverage” substitutionGroup=“any”/>

  • <xs:element name=“rights” substitutionGroup=“any”/>

  • <xs:element name=“title” substitutionGroup=“dc:any”/>

  • <xs:element name=“creator” substitutionGroup=“dc:any”/>

  • <xs:element name=“subject” substitutionGroup=“dc:any”/>

  • <xs:element name=“description” substitutionGroup=“dc:any”/>

  • <xs:element name=“publisher” substitutionGroup=“dc:any”/>

  • <xs:element name=“contributor” substitutionGroup=“dc:any”/>

  • <xs:element name=“date” substitutionGroup=“dc:any”/>

  • <xs:element name=“type” substitutionGroup=“dc:any”/>

  • <xs:element name=“format” substitutionGroup=“dc:any”/>

  • <xs:element name=“identifier” substitutionGroup=“dc:any”/>

  • <xs:element name=“source” substitutionGroup=“dc:any”/>

  • <xs:element name=“language” substitutionGroup=“dc:any”/>

  • <xs:element name=“relation” substitutionGroup=“dc:any”/>

  • <xs:element name=“coverage” substitutionGroup=“dc:any”/>

  • <xs:element name=“rights” substitutionGroup=“dc:any”/>

<xs:group name=“elementsGroup”>

xs:annotation

@@ -104,7 +107,7 @@

xs:sequence

<xs:choice minOccurs=“0” maxOccurs=“unbounded”>

  • <xs:element ref=“any”/>
  • <xs:element ref=“dc:any”/>

</xs:choice>

</xs:sequence>

</xs:group>

@@ -118,7 +121,7 @@

</xs:annotation>

xs:choice

  • <xs:group ref=“elementsGroup”/>
  • <xs:group ref=“dc:elementsGroup”/>

</xs:choice>

</xs:complexType>

Modified: trunk/web/geonetwork/xml/schemas/dublin-core/loc/en/labels.xml

===================================================================

— trunk/web/geonetwork/xml/schemas/dublin-core/loc/en/labels.xml 2007-09-21 14:15:02 UTC (rev 873)

+++ trunk/web/geonetwork/xml/schemas/dublin-core/loc/en/labels.xml 2007-09-24 15:57:19 UTC (rev 874)

@@ -1,6 +1,6 @@

<?xml version="1.0" encoding="UTF-8"?>

-

+

Metadata

@@ -82,4 +82,54 @@

  • Date Modified

  • Data metadata was modified

  • Abstract

  • A summary of the content of the resource.

  • Spatial

  • Spatial characteristics of the intellectual content of the resource.

  • Audience

  • A class of entity for whom the resource is intended or useful.

  • Accrual Method

  • The method by which items are added to a collection.

  • Accrual Periodicity

  • The frequency with which items are added to a collection.

  • Accrual Policy

  • The policy governing the addition of items to a collection.

  • Instructional Method

  • A process, used to engender knowledge, attitudes and skills, that the resource is designed to support.

  • Provenance

  • A statement of any changes in ownership and custody of the resource since its creation that are significant for its authenticity, integrity and interpretation.

  • Rights Holder

  • A person or organization owning or managing rights over the resource.

Modified: trunk/web/geonetwork/xml/schemas/dublin-core/set-uuid.xsl

===================================================================

— trunk/web/geonetwork/xml/schemas/dublin-core/set-uuid.xsl 2007-09-21 14:15:02 UTC (rev 873)

+++ trunk/web/geonetwork/xml/schemas/dublin-core/set-uuid.xsl 2007-09-24 15:57:19 UTC (rev 874)

@@ -36,6 +36,13 @@

<xsl:apply-templates select=“dct:abstract”/>

<xsl:apply-templates select=“dct:modified”/>

<xsl:apply-templates select=“dct:spatial”/>

  • <xsl:apply-templates select=“dct:audience”/>

  • <xsl:apply-templates select=“dct:accrualMethod”/>

  • <xsl:apply-templates select=“dct:accrualPeriodicity”/>

  • <xsl:apply-templates select=“dct:accrualPolicy”/>

  • <xsl:apply-templates select=“dct:instructionalMethod”/>

  • <xsl:apply-templates select=“dct:provenance”/>

  • <xsl:apply-templates select=“dct:rightsHolder”/>

</xsl:copy>

</xsl:template>

Modified: trunk/web/geonetwork/xml/schemas/dublin-core/update-fixed-info.xsl

===================================================================

— trunk/web/geonetwork/xml/schemas/dublin-core/update-fixed-info.xsl 2007-09-21 14:15:02 UTC (rev 873)

+++ trunk/web/geonetwork/xml/schemas/dublin-core/update-fixed-info.xsl 2007-09-24 15:57:19 UTC (rev 874)

@@ -51,6 +51,13 @@

<xsl:apply-templates select=“dct:abstract”/>

dct:modified<xsl:value-of select=“/root/env/changeDate”/></dct:modified>

<xsl:apply-templates select=“dct:spatial”/>

  • <xsl:apply-templates select=“dct:audience”/>

  • <xsl:apply-templates select=“dct:accrualMethod”/>

  • <xsl:apply-templates select=“dct:accrualPeriodicity”/>

  • <xsl:apply-templates select=“dct:accrualPolicy”/>

  • <xsl:apply-templates select=“dct:instructionalMethod”/>

  • <xsl:apply-templates select=“dct:provenance”/>

  • <xsl:apply-templates select=“dct:rightsHolder”/>

</xsl:copy>

</xsl:template>

This was sent by the SourceForge.net collaborative development platform, the world’s largest Open Source development site.


This SF.net email is sponsored by: Microsoft

Defy all challenges. Microsoft(R) Visual Studio 2005.

http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/


GeoNetwork-commit mailing list

GeoNetwork-commit@lists.sourceforge.net

https://lists.sourceforge.net/lists/listinfo/geonetwork-commit