wiki:XLinkedFragments

First draft documentation

Simple concept presentation:

Store fragments of metadata as reference using XLink. Remote fragments are not editable in the metadata editor. The source document has to be modified.

Main principle

Metadata stored in DB

<gmd:contact>
<gmd:CI_ResponsibleParty xlink:href= »xml/codelist/CI_ReponsibleParty.xml#xpointer(//gmd:CI_ResponsibleParty[id='XXXX'])xmlns(gml=http://www.isotc211.org/2005/gmd) »/></gmd:contact>
<gmd:contact>

Metadata after XLink resolver operation:

		<gmd:CI_ResponsibleParty xlink:href= »xml/codelist/CI_ReponsibleParty.xml#xpointer(//gmd:CI_ResponsibleParty[id='XXXX'])xmlns(gml=http://www.isotc211.org/2005/gmd) »>
			<gmd:individualName gco:nilReason="missing">
				<gco:CharacterString/>
			</gmd:individualName>
			<gmd:organisationName>
                                    ...
		</gmd:CI_ResponsibleParty>
</gmd:contact>

Configuration

In xml/schemas/iso19139/schema-suggestion.xml, catalogue administrator could define which element should propose a popup to select a remote resource and set the xlink for this elements.

  • To add a new xlink popup on an element add a new field <field name="nsPrefix:elementName" mode="xlink|xlinkOnly"/>
  • Different modes are available:
    • xlink: will allow classic editor AND xlink popup
    • xlinkOnly: will only allow xlink popup
  • If not set default editor is used.

For example :

	<!-- xLink : as defined in XSD, all PropertyType having an
		attribute group set to gco:ObjectReference could be linked
 		using xlink attributes. 
 		
		For each elements allows user to use default editor or 
		defined a remote resource using an xlink.		
	-->
	<field name="gmd:contact" mode="xlink"/>
	<field name="gmd:citedResponsibleParty" mode="xlink"/>
	<field name="gmd:pointOfContact" mode="xlinkOnly"/>
	<field name="gmd:distributionFormat" mode="xlink"/>
	<field name="gmd:descriptiveKeywords" mode="xlink"/>
	<field name="gmd:referenceSystemInfo" mode="xlink"/>

Then if a field is set with mode = xlink, GUI is : TODO is mode = xlinkOnly, GUI is: TODO

Metadata storage and XLink resolution

Metadata view :

  • Get Metadata from DB
  • Resolve XLink
  • View via XSL

Metadata edit :

  • Get Metadata from DB
  • Resolve XLink
  • (optional) XSD validation
  • (optional) schematron validation
  • Metadocument to be processed for editing

The XLink resolver is used before index, export, view, edit operation.

XLink resolver

  • search only XLinked tags
  • handle missing fragement, timeout (not implemented yet)
  • cache XLink fragment (not implemented yet)
  • support xpointer (not implemented yet) - use specific service to search and retrieve remote fragment in iso19139 format.

Questions

  • contact
  • keyword
  • CRS
  • ... ?

Where to store remote fragments ?

  • XML files (in metadata format like iso or not)

Others

  • Allow editing of remote fragments in GeoNetwork ?
Last modified 13 years ago Last modified on Oct 10, 2008, 7:34:38 AM