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.