ISO/IEC 13250-3:2013
(Main)Information technology — Topic Maps — Part 3: XML syntax
Information technology — Topic Maps — Part 3: XML syntax
ISO/IEC 13250-3:2013 defines an XML-based interchange syntax for Topic Maps, which can be used to interchange instances of the data model defined in ISO/IEC 13250-2. It also defines a mapping from the interchange syntax to the data model. The syntax is defined with a RELAX-NG schema, and more precision is provided through the mapping to the data model, which effectively also defines the interpretation of the syntax.
Technologies de l'information — Plans relatifs à des sujets — Partie 3: Syntaxe XML
General Information
Relations
Standards Content (Sample)
INTERNATIONAL ISO/IEC
STANDARD 13250-3
Second edition
2013-11-01
Information technology — Topic Maps —
Part 3:
XML syntax
Technologies de l'information — Plans relatifs à des sujets —
Partie 3: Syntaxe XML
Reference number
©
ISO/IEC 2013
© ISO/IEC 2013
All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized otherwise in any form or by any
means, electronic or mechanical, including photocopying, or posting on the internet or an intranet, without prior written permission.
Permission can be requested from either ISO at the address below or ISO’s member body in the country of the requester.
ISO copyright office
Case postale 56 CH-1211 Geneva 20
Tel. + 41 22 749 01 11
Fax + 41 22 749 09 47
E-mail copyright@iso.org
Web www.iso.org
Published in Switzerland
ii © ISO/IEC 2013 – All rights reserved
Page
Contents
Foreword. iv
Introduction. v
1 Scope. 1
2 Normative references. 1
3 Terms and definitions. 1
4 Syntax definition. 2
4.1 About the syntax. 2
4.2 Deserialization. 2
4.3 Common syntactical constructs. 2
4.3.1 Common declarations. 2
4.3.2 The reifier attribute. 3
reifier
4.3.3 The element. 3
4.3.4 The href attribute. 3
4.3.5 Creating IRIs from strings. 3
topicMap
4.4 The element. 4
topic
4.5 The element. 4
itemIdentity
4.6 The element. 4
subjectLocator
4.7 The element. 4
subjectIdentifier
4.8 The element. 5
instanceOf
4.9 The element. 5
name
4.10 The element. 5
value
4.11 The element. 6
variant
4.12 The element. 6
scope
4.13 The element. 6
type
4.14 The element. 6
occurrence
4.15 The element. 6
resourceData
4.16 The element. 7
4.16.1 General. 7
4.16.2 Deserialization. 7
4.16.3 Canonicalizing embedded XML. 7
resourceRef
4.17 The element. 7
association
4.18 The element. 8
role
4.19 The element. 8
topicRef
4.20 The element. 8
subjectIdentifierRef
4.21 The element. 8
subjectLocatorRef
4.22 The element. 9
mergeMap
4.23 The element. 9
5 Conformance. 9
Annex A (normative) A RELAX-NG schema for XTM 2.1. 10
Annex B (informative) The XTM 2.1 DTD. 12
Annex C (informative) A W3C XML Schema schema for XTM 2.1. 16
Annex D (informative) Differences from XTM 2.0 to XTM 1.0. 21
Annex E (informative) Differences from XTM 2.1 to XTM 2.0. 22
Annex F (informative) Subject identifiers for defined terms. 23
Bibliography. 24
© ISO/IEC 2013 – All rights reserved
iii
Foreword
ISO (the International Organization for Standardization) and IEC (the International Electrotechnical
Commission) form the specialized system for worldwide standardization. National bodies that are members of
ISO or IEC participate in the development of International Standards through technical committees
established by the respective organization to deal with particular fields of technical activity. ISO and IEC
technical committees collaborate in fields of mutual interest. Other international organizations, governmental
and non-governmental, in liaison with ISO and IEC, also take part in the work. In the field of information
technology, ISO and IEC have established a joint technical committee, ISO/IEC JTC 1.
International Standards are drafted in accordance with the rules given in the ISO/IEC Directives, Part 2.
The main task of the joint technical committee is to prepare International Standards. Draft International
Standards adopted by the joint technical committee are circulated to national bodies for voting. Publication as
an International Standard requires approval by at least 75 % of the national bodies casting a vote.
Attention is drawn to the possibility that some of the elements of this document may be the subject of patent
rights. ISO and IEC shall not be held responsible for identifying any or all such patent rights.
ISO/IEC 13250-3 was prepared by Joint Technical Committee ISO/IEC JTC 1, Information technology,
Subcommittee SC 34, Document description and processing languages.
This second edition cancels and replaces the first edition (ISO/IEC 13250-3:2007), which has been technically
revised. ISO/IEC 13250-3 is part of a multi-part standard. The complete series will cancel and replace
ISO/IEC 13250:2003.
ISO/IEC 13250 consists of the following parts, under the general title Information technology — Topic Maps:
— Part 2: Data model
— Part 3: XML syntax
— Part 4: Canonicalization
— Part 5: Reference model
— Part 6: Compact syntax
iv © ISO/IEC 2013 – All rights reserved
Introduction
XTM (XML Topic Maps) 2.1 is a syntax for the interchange of Topic Maps. The syntax is not designed to be extended
or modified. Ease of human authoring was not prioritized during the design of XTM, and consequently it is not
recommended to edit the syntax directly.
This part of ISO/IEC 13250 should be read in conjunction with [ISO/IEC 13250-2] since the interpretation of the XTM
syntax is defined through a mapping from the syntax to the data model there defined.
XTM 2.1 is a revision of the XTM 2.0 syntax defined in [ISO/IEC 13250-3:2007]. A description of the differences
between the two versions can be found in Annex E.
© ISO/IEC 2013 – All rights reserved
v
© ISO/IEC 2013 – All rights reserved
vi
INTERNATIONAL STANDARD ISO/IEC 13250-3:2013(E)
Information technology — Topic Maps —
Part 3:
XML syntax
1 Scope
This part of ISO/IEC 13250 defines an XML-based interchange syntax for Topic Maps, which can be used to
interchange instances of the data model defined in [ISO/IEC 13250-2]. It also defines a mapping from the interchange
syntax to the data model. The syntax is defined with a RELAX-NG schema, and more precision is provided through
the mapping to the data model, which effectively also defines the interpretation of the syntax.
2 Normative references
The following referenced documents are indispensable for the application of this document. For dated references,
only the edition cited applies. For undated references, the latest edition of the referenced document (including any
amendments) applies.
NOTE Each of the following documents has a unique identifier that is used to cite the document in the text. The unique
identifier consists of the part of the reference up to the first comma.
ISO/IEC 13250-2, Information technology — Topic Maps — Data Model
W3C XML, Extensible Markup Language (XML) 1.1 (Second Edition), W3C Recommendation, 29 September 2006,
available at
W3C XML-Names, Namespaces in XML, W3C Recommendation, 14 January 1999, available at
W3C XML-Infoset, XML Information Set (Second Edition), W3C Recommendation, 4 February 2004, available at
W3C Canonical XML, Canonical XML Version 1.0, W3C Recommendation, 15 March 2001, available at
ISO/IEC 19757-2, Information technology — Document Schema Definition Languages (DSDL) — Part 2: Grammar-
based validation — RELAX NG
IETF RFC 3986, Uniform Resource Identifiers (URI): Generic Syntax, Internet Standards Track Specification, January
2005, available at
IETF RFC 3987, Internationalized Resource Identifiers (IRIs), Internet Standards Track Specification, January 2005,
available at
3 Terms and definitions
For the purposes of this part of ISO/IEC 13250, the following terms and definitions apply.
3.1
XTM
the syntax defined in this part of ISO/IEC 13250
© ISO/IEC 2013 – All rights reserved
4 Syntax definition
4.1 About the syntax
The acronym XTM is often used to refer to the syntax defined in this part of ISO/IEC 13250. Its full name is XML Topic
http://www.topicmaps.org/xtm/
Maps. The namespace for the XTM syntax is .
An XTM document is an XML document that conforms to the XTM syntax. This clause defines the syntax of XTM
documents using a RELAX-NG schema in compact syntax [ISO/IEC 19757-2], and their semantics using prose
describing the mapping from XTM documents to [ISO/IEC 13250-2]. The full schema can be found in Annex A, a
DTD in Annex B, and a W3C XML Schema in Annex C.
4.2 Deserialization
The process of exporting Topic Maps from an implementation's internal representation of the data model to an
instance of a Topic Maps syntax is known as serialization. The opposite process, deserialization, is the process of
building an instance of an implementation's internal representation of the data model from an instance of a Topic
Maps syntax.
This clause defines how instances of the XTM syntax are deserialized into instances of the data model defined in
[ISO/IEC 13250-2]. Serialization is only implicitly defined, but implementations should guarantee that for any data
model instance the XTM serialization produced by the implementation should when deserialized to a new data model
instance produce one that has the same canonicalization as the original data model instance, according to [ISO/IEC
13250-4:2009].
The input to the deserialization process is:
— A document item as defined by [W3C XML-Infoset], representing an XTM document. (Information item
properties from [W3C XML-Infoset] are referred to using [[property name]], in order to distinguish them from
properties from [ISO/IEC 13250-2].)
— An absolute IRI. This is the IRI from which the XTM document was retrieved, known as the document IRI.
This IRI shall always be provided, as it is necessary in order to assign the item identifiers of the topic items
created during deserialization. If the XTM document was not read from any particular IRI the application is
responsible for providing an IRI considered suitable.
Deserialization is done by processing each element item in the document item in document order. For each element
item encountered the operations specified in the clause for that element type are performed. An input element item
"http://www.topicmaps.org/
matches a clause in this document when the [[namespace uri]] property is set to
xtm/"
, and the [[local name]] matches the element type name given in the title of that clause.
Whenever a new information item is created, those of its properties which have set values are initialized to the empty
set; all other properties are initialized to null.
NOTE This part of ISO/IEC 13250 requires an instance of the XML Information Set as input to the deserialization process,
but in most cases the actual input will be an XML document. This part of ISO/IEC 13250 does not constrain how XML Information
Set instances are built from XML documents, but assumes that in most cases this will be done by simply using an XML processor.
XML processors conformant to the XML Recommendation may produce different results given the same XML document,
depending on whether they are validating or non-validating, and depending on which optional features they support. Reliance on
any particular behaviour in the XML processors used by recipients is strongly discouraged.
4.3 Common syntactical constructs
4.3.1 Common declarations
The following declarations are used throughout the schema for brevity.
default namespace = "http://www.topicmaps.org/xtm/"
namespace xtm = "http://www.topicmaps.org/xtm/"
© ISO/IEC 2013 – All rights reserved
datatypes xsd = "http://www.w3.org/2001/XMLSchema-datatypes"
start = topicMap2 | topicMap21
href = attribute href { xsd:anyURI }
any-markup = (text |
element * - xtm:* { attribute * { text }*, any-markup* })*
reifiable21 = (attribute reifier { xsd:anyURI } | reifier)?,
itemIdentity*
tref = topicRef | subjectIdentifierRef | subjectLocatorRef
NOTE The schema used in this part of ISO/IEC 13250 merges the XTM 2.0 and 2.1 syntaxes into a single schema. Patterns
specific to XTM 2.1 have names ending in 21, whereas those specific to 2.0 have names ending in 2. Only the XTM 2.1 patterns
are given here, but the complete schema can be found in Annex A.
4.3.2 The reifier attribute
The reifier attribute is used to refer from the topic map construct on which it appears to the topic reifying that construct.
The reference is an IRI matching one of the topic's item identifiers.
During deserialization the value in the [[normalized value]] property of the attribute node representing the reifier
attribute is resolved into an absolute IRI following the procedure in 4.3.5. If there is a topic item with that IRI in its
[item identifiers] property, that topic item is set as the value of the [reifier] property of the topic map construct being
processed. If no such topic item exists, a new topic item is created, the IRI added to its [item identifiers] property, and
that topic item is set as the value of the [reifier] property of the topic map construct being processed.
reifier
NOTE This attribute duplicates the function of the element (see 4.3.3) in a less general form. It is a legacy from
XTM 2.0 retained only in order to preserve backwards compatibility.
reifier
4.3.3 The element
reifier
The element is used to assign a reifying topic to the topic map construct represented by its parent element.
reifier
The reference is a child element referencing the topic. The element is declared as follows:
reifier = element reifier { tref }
During deserialization the child element produces a topic item following the procedure in the clause defining
deserialization of that element type. The topic item produced is set as the value of the [reifier] property of the
information item produced by the parent element.
4.3.4 The href attribute
The href attribute always references an information resource using a relative or absolute IRI valid according to [IETF
RFC 3986] and [IETF RFC 3987], but the meaning of the reference depends on context.
During deserialization the value in the [[normalized value]] property of the attribute node representing the href attribute
is turned into an IRI following the procedure in 4.3.5.
4.3.5 Creating IRIs from strings
%HH
To create an IRI from a string unescape the string by replacing escape sequences with the characters they
represent, and decode the resulting character sequence from UTF-8 to a sequence of abstract Unicode characters.
The resulting string is turned into an absolute IRI by resolving it against the document IRI.
© ISO/IEC 2013 – All rights reserved
topicMap
4.4 The element
topicMap
The element type is the document element of all XTM documents. It acts as a container for the topic map,
and can be used to reify it, but has no further significance. It is declared as follows:
topicMap21 = element topicMap { reifiable21, version21, mergeMap*,
(topic21 | association21)* }
version21 = attribute version { "2.1" }
The version attribute is used to specify which version of XTM the document conforms to. The version number may
"2.0" "2.1"
be either (provided no XTM 2.1 features are used) or .
"2.0"
NOTE The RELAX-NG schema has been written in such a way that if the version number is only XTM 2.0 features
"2.1"
are allowed by the schema, whereas if it is XTM 2.1 features are also allowed.
topicMap
During deserialization the element causes a topic map item to be created.
topic
4.5 The element
topic
The element type is used to represent topics, and acts as a container and point of reference for topic
topic
information. The child elements of the element provide identification as well as names and occurrences, while
topic
association roles played by the topic are specified outside the element.
topic
The element type is declared as follows:
topic21 = element topic {
(id | itemIdentity | subjectLocator | subjectIdentifier)+,
instanceOf?, (name | occurrence)* }
id = attribute id { xsd:ID }
The id attribute provides a unique identifier within the document for the topic, which is used to refer to it. It is not
topic
required, so long as some identifier for the topic is provided by the child elements of the element.
topic
During deserialization, if the element has an id attribute, it causes a topic item to be created and inserted into
the [topics] property of the topic map item.
"#"
A locator is created by concatenating the document IRI, a character, and the value of the [[normalized value]]
"id"
property of the attribute item in the [[attributes]] property of that element item whose [[local name]] property is .
This locator is added to the [item identifiers] property of the topic item. If this makes the topic item equal to another
topic item the two topic items are merged according to the procedure given in [ISO/IEC 13250-2].
itemIdentity
4.6 The element
itemIdentity
The element is used to assign an item identifier to the topic map construct represented by its parent
element. It is declared as follows:
itemIdentity = element itemIdentity { href }
itemIdentity
During deserialization the element causes a locator to be created from its href attribute as specified
in 4.3.4. This locator is added to the [item identifiers] property of the information item created by the parent element.
topic
If the parent element is a element and this makes the topic item equal to another topic item the two topics are
merged according to the procedure given in [ISO/IEC 13250-2].
subjectLocator
4.7 The element
subjectLocator topic
The element is used to assign a subject locator to the topic that is represented by its parent
element. It is declared as follows:
© ISO/IEC 2013 – All rights reserved
subjectLocator = element subjectLocator { href }
subjectLocator
During deserialization the element causes a locator to be created from its href attribute as specified
topic
in 4.3.4 and added to the [subject locators] property of the topic item created by the parent element. If this
makes the topic item equal to another topic item the two topic items are merged according to the procedure given
in [ISO/IEC 13250-2].
subjectIdentifier
4.8 The element
subjectIdentifier
The element is used to assign a subject identifier to the topic that is represented by its parent
topic
element.
subjectIdentifier
The element is declared as follows:
subjectIdentifier = element subjectIdentifier { href }
subjectIdentifier
During deserialization the element causes a locator to be created from its href attribute as
specified in 4.3.4. This locator is added to the [subject identifiers] property of the topic item created by the parent
topic
element. If this makes the topic item equal to another topic item the two topic items are merged according
to the procedure given in [ISO/IEC 13250-2].
instanceOf
4.9 The element
instanceOf
The element type is used to assign one or more types to the topic represented by its parent element.
instanceOf instanceOf
The types are always topics, indicated by the element's child elements. The element
type is declared as follows:
instanceOf21 = element instanceOf { tref+ }
instanceOf
For each child element of the element a topic item is produced following the procedure in the clause
defining deserialization of that element type. For each topic item the following steps are then taken:
— A new association item is created, with two association role items in its [roles] property, and a topic item
representing the type-instance association type (described in [ISO/IEC 13250-2], 7.2) in its [type] property. If
no such topic item exists already, one is created, and the subject identifier added to its [subject identifiers]
property.
type
— The first association role item has its [type] property set to the topic item representing the role in the
same association (see the section referenced above), while the [player] property is set to the topic produced
by the child element.
instance
— The second association role item has its [type] property set to the topic item representing the role
in the same association (see the section referenced above), while the [player] property is set to the topic
produced by the parent element (that is, the current topic).
name
4.10 The element
name topic
The element type is used to add topic names to the topic represented by the parent element. The child
name
elements of the element provide the property values of the topic name item.
name
The element type is declared as follows:
name = element name { reifiable21, type21?, scope21?, value, variant* }
name
During deserialization the element causes a topic name item to be created, and added to the [topic names]
topic
property of the topic item created by the parent element.
name type
If the element has a child element it is processed according to the procedure in 4.14. Otherwise the
http://
[type] property of the topic name item is set to the topic item whose [subject identifiers] property contains "
psi.topicmaps.org/iso13250/model/topic-name
"; if no such topic item exists, one is created.
© ISO/IEC 2013 – All rights reserved
value
4.11 The element
value
The element type is used to provide the value of the topic name. It is declared as follows:
value = element value { text }
value
During deserialization the information items in the [[children]] property of the element are traversed, and for
each character information item the Unicode character specified by the [[character code]] property is appended to
name
the [value] property of the topic name item created by the parent element.
variant
4.12 The element
variant
The element type is used to add a variant name to a topic name. It is declared as follows:
variant = element variant { reifiable21, scope21, (resourceRef | resourceData) }
variant
During deserialization the element causes a variant item to be created and added to the [variants] property
name scope
of the topic name item created by the parent element. After the child element has been processed, the
name
topics in the [scope] property of the topic name item created by the parent element are added to the [scope]
property of the variant name item.
scope
4.13 The element
scope
The element type is used to assign a scope to the statement represented by the parent element. It is declared
as follows:
scope21 = element scope { tref+ }
scope
During deserialization the element has no direct effect on the information set being produced, but changes the
interpretation of its child elements. Each child element is processed according to the procedure in the clause defining
deserialization of that element type to produce a topic item. These topic items are gathered into a set that is assigned
as the value of the [scope] property of the information item produced by the parent element.
type
4.14 The element
type
The element type is used to assign a type to the topic map construct represented by its parent element. The
type
type is always a topic, indicated by the element's child element.
type
The element type is declared as follows:
type21 = element type { tref }
During deserialization the child element produces a topic item following the procedure in the clause defining
deserialization of that element type. The topic item produced is set as the value of the [type] property of the information
item produced by the parent element.
occurrence
4.15 The element
occurrence
The element type is used to assign an occurrence to the topic defined by the parent element. It is
declared as follows:
occurrence = element occurrence { reifiable21,
type21, scope21?, ( resourceRef | resourceData ) }
occurrence
During deserialization the element causes an occurrence item to be created and added to the
topic
[occurrences] property of the topic item created by the parent element.
© ISO/IEC 2013 – All rights reserved
resourceData
4.16 The element
4.16.1 General
resourceData
The element type represents an information resource in the form of content contained within the
XTM document. This information resource may be either a variant name or an occurrence, and it can have a datatype.
resourceData
The element type is declared as follows:
datatype = attribute datatype { xsd:anyURI }
resourceData = element resourceData { datatype?, any-markup }
The datatype attribute contains an absolute IRI identi
...








Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.
Loading comments...