You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sis.apache.org by "Martin Desruisseaux (JIRA)" <ji...@apache.org> on 2013/10/01 11:57:26 UTC
[jira] [Commented] (SIS-137) locale
shall be a URI
[ https://issues.apache.org/jira/browse/SIS-137?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13782775#comment-13782775 ]
Martin Desruisseaux commented on SIS-137:
-----------------------------------------
This task may potentially depends on SIS-110 since we would need to ensure that {{Metadata.locale}} contains the locale we are referencing to.
> <gmd:LocalisedCharacterString> locale shall be a URI
> ----------------------------------------------------
>
> Key: SIS-137
> URL: https://issues.apache.org/jira/browse/SIS-137
> Project: Spatial Information Systems
> Issue Type: Bug
> Components: Metadata, Utilities
> Affects Versions: 0.3
> Reporter: Martin Desruisseaux
> Assignee: Martin Desruisseaux
>
> The {{locale}} attribute in the {{<gmd:LocalisedCharacterString>}} element is defined by the XML schema as a value of kind {{xs:anyURI}}. However SIS 0.3 handles it as a plain string containing directly the language code, except for the "{{#locale-}}" prefix (if present) which is ignored. This is incomplete, and may be wrong under some circumstances.
> ISO 19139:2007 at pages 105 and 106 defines the management of multilingual metadata. A character string is localized as the example below:
> {code:xml}
> <PT_FreeText>
> <textGroup>
> <LocalisedCharacterString locale="#locale-fr">Résumé succinct du contenu de la ressource</LocalisedCharacterString>
> </textGroup>
> </PT_FreeText>
> {code}
> The {{locale="#locale-fr"}} attribute references a locale definition provided elsewhere, typically as an element of the root metadata:
> {code:xml}
> <MD_Metadata>
> <locale>
> <PT_Locale id="locale-fr">
> <languageCode>
> <LanguageCode codeList="resources/Codelist/gmxcodelists.xml#LanguageCode" codeListValue="fra"> French </LanguageCode>
> </languageCode>
> </PT_Locale>
> </locale>
> </MD_Metadata>
> {code}
> Since the {{locale}} attribute is a URI referencing an other element, that attribute value typically begins with {{#}} character, while the {{id}} attribute in {{<PT_Locale>}} does not. However there is nothing in the specification telling that the locale ID shall be prefixed by "{{locale-}}", neither that the text after that prefix shall be the language code. It just happen to be the convention followed in the examples given by the ISO specification.
> A search on internet shows that this attribute is used in various ways:
> h3. French mapping agency (IGN)
> Extract from [ML_gmxCrs.xml|http://eden.ign.fr/xsd/isotc211/isofull/20090316/resources/crs/ML_gmxCrs.xml/view]:
> {code:xml}
> <gmd:PT_FreeText>
> <gmd:textGroup>
> <gmd:LocalisedCharacterString locale="#xpointer(//*[@id='fra'])">Catalogue des paramètres géodésiques pour la description de jeux de métadonnées conformes aux schémas gmx</gmd:LocalisedCharacterString>
> </gmd:textGroup>
> </gmd:PT_FreeText>
> {code}
> {code:xml}
> <locale>
> <gmd:PT_Locale id="fra">
> <gmd:languageCode>
> <gmd:LanguageCode codeList="../codelist/ML_gmxCodelists.xml#LanguageCode" codeListValue="french">French</gmd:LanguageCode>
> </gmd:languageCode>
> </gmd:PT_Locale>
> </locale>
> {code}
> Observations:
> * The {{locale}} attribute value is given by a XPath.
> * The {{codeListValue}} attribute value in {{LanguageCode}} is "French" instead than an ISO language code.
> h3. NOAA
> Extract from [Cruise2ISO on geo-ide|https://geo-ide.noaa.gov/wiki/images/f/fc/Cruise2ISOSample-20100618-xml.pdf]:
> {code:xml}
> <gmd:LocalisedCharacterString id="PERSON_NAME_ID" locale="http://www.rvdata.us/person#6708">PERSON/NAME<gmd:LocalisedCharacterString>
> {code}
> Observations:
> * The {{locale}} attribute is a URL to a distant resource. However in this particular case attempts to fetch that resource give an error 404. Consequently there is no obvious way to find the locale for that example.
> h3. INSPIRE
> Extract from [Google code|http://inspire-foss.googlecode.com/svn-history/r215/trunk/etl/NL.Kadaster/GeographicalNames/test/gn-example-finland.xml]:
> {code:xml}
> <gmd:LocalisedCharacterString locale="en-GB">House</gmd:LocalisedCharacterString>
> {code}
> Observations:
> * The {{locale}} attribute contains directly a parseable ISO language code. The absence of leading {{#}} suggest that there is no need to search for a definition elsewhere. This is the easiest case and is supported by current Apache SIS.
> h3. Other
> Extract from [a mailing list|http://www.mail-archive.com/jibx-users@lists.sourceforge.net/msg02889.html]:
> {code:xml}
> <gmd:LocalisedCharacterString locale="#frFR">Montréal</gmd:LocalisedCharacterString>
> {code}
> Observations:
> * This is not really a parseable ISO code because of the missing {{-}} character. We would expect a definition to be provided elsewhere because of the {{#}} prefix, while the extract from the mail archive does not show it.
> h2. Work needed in SIS
> The fact that the {{<PT_Locale>}} elements providing locale definitions may appear after the localized string complicates the handling. One possible approach would be to create an internal object that keep a reference to a {{DefaultInternationalString}}, a {{String}} and a locale ID, then invoke the {{DefaultInternationalString.add(Locale, String)}} method at some later time when the {{Locale}} become known.
--
This message was sent by Atlassian JIRA
(v6.1#6144)