-
Notifications
You must be signed in to change notification settings - Fork 26
Namespace Updates 2018 03 06
This page reviews the workflow used to update namespace directories for standards.iso.org after all of the schema files are in place. The steps are:
- Update namespace information file
- Update namespace summary table (html)
- Update namespace index files (namespace/version/index.html)
- Update sample xml files
- Update codelist files
- Update zip files
The file standards.iso.org/iso/19115/resources/namespaceInformationAndTools/ISONamespaceInformation.xml is an XML file that contains information for all of the namespaces. It is used to drive the creation of the namespace summary and the namespace home pages (index.html). Update this file to start the namespace process.
201803 - Five base namespaces have been updated to new versions: ./19115/-3/msr/2.0, ./19115/-3/mrc/2.0, ./19115/-3/mrl/2.0, ./19115/-3/mac/2.0, ./19115/-3/cit/2.0.
201803 - There are several namespaces that serve as wrappers for groups of namespaces that are used together. These need to be updated to import Version 2 of the appropriate namespaces.
- Metadata Base (mdb) imports cit.
- Metadata for Data and Services (mds) imports mac, mrc, mrl, msr, mdb. In this case metadataDataServices.xsd only imports mds.xsd so no changes required there.
- Metadata for Data and Services with Geospatial Common Extensions (md1) imports cit, mds.
- Metadata with Extended Services (md2) imports cit, md1.
- MetaData Application (mda) imports md2, mdb.
- Metadata for Data Transfer (mdt) imports mda.
The namespace summary is an html file (standards.iso.org/iso/19115/-3/resources/namespaceSummary.html). It contains information from the standards.iso.org/iso/19115/-3/resources/namespaceInformationAndTools/ISONamespaceInformation.xml file converted to html using standards.iso.org/iso/19115/-3/resources/namespaceInformationAndTools/makdNamespaceTable.xsl. This xsl has several input parameters:
Parameter schemaRootDirectory:
This is the root of the schema directories.
Example: /Users/tedhabermann/GitRepositories/ISOTC211-XML/XML/standards.iso.org/iso
Parameter standard:
This is a space delimited list of the schemaStandardNumbers to be included in the output.
Namespaces whose schemaStandardNumber is in this list will be included in the output.
Example: 19115-3 19157-2 19110 19111 19135
Parameter workingVersionDate:
This is the date associated with a working version of the schema. It is in the format /YYYY-MM-DD. this date can be used to identify working versions of the schemas created on a particular date. This practice has been depricated to some extent with the use of branches in the git repository.
NOTE THE SLASH INCLUDED BEFORE THE DATE
Example: /2014-12-25
The output of this transform is written into standards.iso.org/iso/19115/-3/resources//namespaceSummary.html which is the summary of all namespaces.
Update makeNamespaceTable.xsl The xsl that produces the HTML table of namespace information was updated to include the version numbers in the imported namespaces. They were all 1.0 previously and now some are 2.0.
This xsl that writes this table includes two variables that are used to write the transform name and version onto the bottom of the namespace summary table:
<xsl:variable name="TransformName" select="'makeNamespaceTable'"/>
<xsl:variable name="TransformVersion" select="'2018-03-10'"/>
Codelist information is in two locations: 1) the directory standards.iso.org/iso/19115/resources/Codelists/cat includes an xml and html version of the codeslists for all namespaces. The xml file standards.iso.org/iso/19115/resources/Codelists/cat/codelists.xml can be used as a @codelist attribute in all namespaces. 2) Each namespace directory contains codelists.xml and codelists.html files that contain the codelists defined in the namespace. These files are there so that people that include just particular namespaces have access to the appropriate namespaces. These namespace codelist.xml files are created manually.
The transform ISOTC211-XML/XML/standards.iso.org/iso/19115/resources/transforms/CT_CodelistCatalougue2HTML.xsl is used to create html versions of the codelist.xml files both locations. This should be done before the index.html files are created so that links to the codelist.xml and codelist.html files will be included in the index files.
Sample XML files are created for each namespace in order to illustrate new capabilities and correct namespaces and schema locations. Typically these samples are extracted from files that are being used to test the schema updates. These files are validated as part of the schema update process. The samples should be created before the index.html files are created so that links to the sample files will be included in the index files.
Each namespace directory includes an index.html file that serves as a homepage for the namespace with information about the namespace. These files are created by transforming ISONamespaceInformation.xml with ISOTC211-XML/XML/standards.iso.org/iso/19115/resources/namespaceInformationAndTools/writeHTMLFiles.xsl. This xsl has several input parameters:
Parameter schemaRootDirectory:
This is the root of the schema directories.
Example: /Users/tedhabermann/GitRepositories/ISOTC211-XML/XML/standards.iso.org/iso
Parameter standard:
This is a space delimited list of the schemaStandardNumbers to be included in the output.
Namespaces whose schemaStandardNumber is in this list will be included in the output.
Example: 19115-3 19157-2 19110 19111 19135
Parameter workingVersionDate:
This is the date associated with a working version of the schema. It is in the format /YYYY-MM-DD. This practice has been depricated to some extent with the use of branches in the git repository.
NOTE THE SLASH INCLUDED BEFORE THE DATE
Example: /2014-12-25
This transform writes output (index.html) into all of the namespace directories. The paths of the files that are written are in writeHTMLFilesLog.html.
The script XML/MaintenanceTools/makeAllZipFiles.sh creates all of the zip files in the repository. The names of the files are written into zipFileList.txt. This script should be run last so that all of the zip files are up-to-date.