FIGIS: Time Series Reference Metadata module
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XML Spy v3.5 NT (http://www.xmlspy.com) by Maria Barbuzzi (FAO Headquarters) -->
<!-- ============================================================== -->
<!-- Project: Time Series Universal Import Export -->
<!-- Component: Time Series Reference Metadata module-->
<!-- Original author: Yves Jaques -->
<!-- Organisation: FAO of the UN, FIDI, FIGIS project -->
<!-- Date: 07/09/2001 -->
<!-- Modifications: -->
<!-- Date Author Note -->
<!-- ======= ============ ===================================== -->
<!-- dd/mm/yy who? why? -->
<!-- -->
<!-- dd/10/2001 Yury Shatz ver. 2-->
<!-- ============================================================== -->
<!--This DTD contains the structures that describe the labels, names, codes, attributes and relations of the KEY ID values described in the Time Series Reference Data.-->
<!-- ============================================================== -->
<!--FigisTimeSeriesTagLib entity calls a group of common elements shared by the various DTDs. -->
<!ENTITY % FigisTimeSeriesTagLib PUBLIC
"Figis Time Series Import Export Tag Library 1.0"
"TSTagLib1.0.dtd">
<!ENTITY % TagLibInclude 'INCLUDE'>
%FigisTimeSeriesTagLib;
<!-- ============================================================== -->
<!-- REF_METADATA is a container for object types (metaobjects)
hierarchies for an import data file.-->
<!ELEMENT REF_METADATA (OBJ_TYPE | HIERARCHY)*>
<!ATTLIST REF_METADATA
%REM;
>
<!-- OBJ_TYPE is an object type or class.-->
<!-- HIERARCHY is a top-level object (independent of OBJ_TYPE) that is a set of one or more pairs of type and relationship. -->
<!-- Example: too large to show physical example. A theoretical example would be two metaobjects, COUNTRY and CONTINENT described using two instances of OBJ_TYPE and then their hierarchy described in HIERARCHY. -->
<!-- ============================================================== -->
<!-- OBJ_TYPE is an object type or class.-->
<!ELEMENT OBJ_TYPE (ID_LIST, NAME_LIST, ATT*, REL*, HIER_REF*)>
<!ATTLIST OBJ_TYPE
%REM;
>
<!-- ID_LIST contains the IDs that identify OBJ_TYPE.-->
<!-- NAME_LIST contains the NAME(s) for OBJ_TYPE.-->
<!-- ATT contains the attribute class if any.-->
<!-- REL contains relationships to other OBJ_TYPEs if any.-->
<!-- HIER_REF contains references to the HIERARCHY if any.-->
<!-- Example: too large to show physical example. Theoretical example would be a 'continent' metaobject containing it's various ID's (internal and foreign), names and attributes followed by its related types such as a list of countries, followed at last by references to hierarchies of which the object is a part. -->
<!-- ============================================================== -->
<!-- REL is information about relationship class. It is contained in OBJ_TYPE to which relationship applies. The relationship contains attributes TYPE and MULTiplicity as well as whether the relationship is MANDATORY and/or REVERSible -->
<!ELEMENT REL (ID_LIST, NAME_LIST, RELATED_TYPES, REVERSE_REL?)>
<!ATTLIST REL
TYPE (child | parent | exact_equivalent | partial_equivalent | inexact_equivalent | broader | narrower | associative | unknown) "child"
MULT (one-to-one | one-to-many | many-to-one | many-to-many) #REQUIRED
MANDATORY (yes | no) "no"
REVERSE (yes | no) "no"
%REM;
>
<!-- ID_LIST contains the IDs that identify REL. -->
<!-- NAME_LIST contains the NAME(s) for REL.-->
<!-- RELATED_TYPES contains references to the objects on the other end of the relationship-->
<!-- REVERSE_REL references the reverse of the relationship if it exists.-->
<!-- TYPE describes the relationship type. Default is CHILD.-->
<!-- MULT describes whether the relationship has multiplicity.-->
<!--MANDATORY toggles whether the relationship is mandatory or not. -->
<!--REVERSE toggles whether the relationship is reversible or not-->
<!-- Example:
<REL MULT="many-to-one">
<ID_LIST>
<ID>SpeciesInIsscaapGroup</ID>
<FOREIGN_ID ID_SCHEME="Figis">32001</FOREIGN_ID>
<FOREIGN_ID ID_SCHEME="Fishstat">SpeciesInISSCAAPGroup</FOREIGN_ID>
</ID_LIST>
<NAME_LIST>
<NAME xml:lang="en">ISSCAAP Group</NAME>
</NAME_LIST>
<RELATED_TYPES>
<OBJ_TYPE_REF><ID>ISSCAAPGroup</ID></OBJ_TYPE_REF>
</RELATED_TYPES>
</REL>
-->
<!-- ============================================================== -->
<!-- REVERSE_REL is a reference to the reverse of a relationship. It contains the NAME(s), internal ID(s) and FOREIGN_ID(s) of the reverse relation type.-->
<!ELEMENT REVERSE_REL (REL_REF)+>
<!ATTLIST REVERSE_REL
%REM;
>
<!-- REL_REF contains the NAME(s), internal ID(s) and FOREIGN_ID(s) of the reverse relationship.-->
<!-- Example: (where the metaobject is IsscaapGroup and the related types are single species)
<REVERSE_REL>
<REL_REF>
<ID>SpeciesInIsscaapGroup</ID>
</REL_REF>
</REVERSE_REL>
-->
<!-- ============================================================== -->
<!-- ATT contains metadata information about an attribute. -->
<!ELEMENT ATT (ID_LIST, NAME_LIST, FORMAT*)>
<!ATTLIST ATT
UNIQUE (no | yes) "no"
PRIORITY (0 | 1 | 2 | 3 | 4 | 5) "0"
MANDATORY (yes | no) "no"
MULTILINGUAL (yes | no) "no"
TYPE (string | number | date) "string"
%REM;
>
<!-- ID_LIST contains the IDs that identify ATT. -->
<!-- NAME_LIST contains the NAME(s) for ATT.-->
<!-- PRIORITY is '1' for highest, '5' for lowest and '0' for unspecified.-->
<!-- MANDATORY toggles whether the relationship is mandatory or not. -->
<!-- MULTILINGUAL toggles whether the attribute value is multilingual
(e.g. short name). Such attribute will have multiple ATT_VALs referring to
it -->
<!-- TYPE defines attribute value type. -->
<!-- Example:
Country has a 3-letter ISO code - its unique attribute. It has the highest priority when
identifying a country in the absence of ID.
<ATT UNIQUE="yes" PRIORITY="1">
<ID_LIST>
<ID>ISO3Code</ID>
<FOREIGN_ID ID_SCHEME="Figis">21</FOREIGN_ID>
<FOREIGN_ID ID_SCHEME="Fishstat">Country3Alpha</FOREIGN_ID>
</ID_LIST>
<NAME_LIST>
<NAME xml:lang="en">ISO 3-letter Code</NAME>
</NAME_LIST>
</ATT>
-->
<!-- ============================================================== -->
<!-- HIERARCHY is a top-level object (independent of OBJ_TYPE) that is a set of one or more pairs of type and relationship. -->
<!-- It determines how trees are built. For each type there are 1 or more relationships within HIERARCHY with different priorities.
For each object a parent within a hierarchy is found in the following way:
1) object type is taken
2) all HIER_RELs for this object type are found
3) a relation with priority 1 is taken
4) if object has related objects, they are its parents. Otherwise,
5) next-priority relation is taken, return to step 4
-->
<!ELEMENT HIERARCHY (ID_LIST, NAME_LIST, HIER_REL+)>
<!ATTLIST HIERARCHY
%REM;
>
<!-- ID_LIST contains the IDs that identify the HIERARCHY. -->
<!-- NAME_LIST contains the NAME(s) for the HIERARCHY.-->
<!-- HIER_REL defines relationships within a hierarchy. -->
<!-- Example:
<HIERARCHY>
<ID_LIST>
<ID>CountriesByContinent</ID>
<FOREIGN_ID ID_SCHEME="Figis">10002</FOREIGN_ID>
<FOREIGN_ID ID_SCHEME="Fishstat">CountriesByContinent</FOREIGN_ID>
</ID_LIST>
<NAME_LIST>
<NAME LANG="en">Countries By Continent</NAME>
</NAME_LIST>
<HIER_REL>
<OBJ_TYPE_REF>
<ID>Country</ID>
</OBJ_TYPE_REF>
<REL_REF>
<ID>CountryOnContinent</ID>
</REL_REF>
</HIER_REL>
</HIERARCHY>
-->
<!-- ============================================================== -->
<!-- HIER_REL is a relationship within a hierarchy. It says, "use this relation for this type to build the tree."-->
<!-- If hierarchy contains several relations for the same type, they are used in order of priority.-->
<!-- Relationships with lower priority are used only in the case that an object does not have relations of higher priority. -->
<!-- NOTE: Everywhere 1 is highest ('first') priority and 0 is unspecified. -->
<!ELEMENT HIER_REL (OBJ_TYPE_REF, REL_REF)>
<!ATTLIST HIER_REL
PRIORITY (0 | 1 | 2 | 3 | 4 | 5) "0"
DIRECTION (up | down) "up"
%REM;
>
<!--OBJ_TYPE_REF contains the reference to the object type on the close end of the hierarchy.-->
<!--REL_REF contains the reference to the object type on the far end of the hierarchy.-->
<!--PRIORITY is '1' for highest, '5' for lowest and '0' for unspecified.-->
<!--DIRECTION defines in which direction the related object lies in the hierarchy. -->
<!-- Example:
<HIER_REL>
<OBJ_TYPE_REF>
<ID>Country</ID>
</OBJ_TYPE_REF>
<REL_REF>
<ID>CountryOnContinent</ID>
</REL_REF>
</HIER_REL>
-->
<!-- ============================================================== -->
<!--This is the end of the TimeSeriesRefMetadata DTD. -->
Prepared by Robin Cover for The XML Cover Pages archive.

