TBX Namespaces
As of the current ISO 30042 Draft, TBX files adhering to DCT style (Data Category as Tag) will make use of namespaces to import data categories from TBX dialects. While the exact technical details of how this feature will work in TBX are still being worked out, this page will provide examples of how these namespace-integrated TBX files may look and how they can be validated. The downloadable package includes a TBX file and accompanying NVDL and RNG files.

The "TBX-Core" namespace is the default namespace of a TBX file. It represents the Core structure as defined in the standard, minus the meta-data elements which do not appear in DCT style TBX. The following elements are included in the core namespace for the moment:
- tbx, tbxHeader (and all possible children)*, text, body, conceptEntry, langSec, termSec, term, note, termCompGrp, termCompSec, termComp, and back (and all possible children)**.
- *this includes elements such as p, ept, bpt, hi, foregin, etc.
- **this includes elements such as refObjectSec, refObject, item, etc.
Although TBX files can use only the core, the amount of data categories available for describing terminology is severely limited to only "term" and "note". It is not recommended practice that a TBX file rely solely on the core namespace. Instead, it is best to include a dialect namespace or combination of dialect namespaces.
Namespace URN:
urn:iso:std:iso:30042:ed-3
Simple Example:
<tbx type="TBX-Core" style="DCT" xmlns="urn:iso:std:iso:30042:ed-3">
<tbxHeader>[...]</tbxHeader>
<text>
<body>
<conceptEntry id="c01">
<langSec xml:lang="en">
<termSec>
<term>keyboard</term>
<note>This is a note about "keyboard"</note>
</termSec>
</langSec>
</conceptEntry>
</body>
</text>
</tbx>
Validating this Namespace
This demonstration gives only an RNG file, however XSD will be supported soon.
<?xml version="1.0" encoding="utf-8"?> <grammar xmlns="http://relaxng.org/ns/structure/1.0" xmlns:xlink="http://www.w3.org/1999/xlink" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://www.iso.org/ns/TBX"> <!-- Schema generated from ODD source 2017-06-01T10:25:14Z. . TEI Edition: Version 2.8.0. Last updated on 6th April 2015, revision 13197 TEI Edition Location: http://www.tei-c.org/Vault/P5/Version 2.8.0/ --> <!----> <sch:ns xmlns:sch="http://purl.oclc.org/dsdl/schematron" prefix="tei" uri="http://www.tei-c.org/ns/1.0"/> <define name="entity.basicText"> <zeroOrMore> <choice> <text/> <ref name="hi"/> </choice> </zeroOrMore> </define> <define name="entity.noteText"> <zeroOrMore> <choice> <text/> <ref name="hi"/> <ref name="foreign"/> <ref name="bpt"/> <ref name="ept"/> <ref name="ph"/> </choice> </zeroOrMore> </define> <define name="entity.auxInfo"> <zeroOrMore> <ref name="note"/> </zeroOrMore> <ref name="foreign-node"/> </define> <define name="entity.noteLinkInfo"> <zeroOrMore> <choice> <ref name="note"/> </choice> </zeroOrMore> </define> <define name="idlang.attributes"> <ref name="id.attributes"/> <ref name="lang.attributes"/> </define> <define name="idtype.attributes"> <ref name="id.attributes"/> <ref name="idtype.attribute.type"/> </define> <define name="idtype.attribute.type"> <optional> <attribute name="type"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the type of the meta data-category.</a:documentation> <text/> </attribute> </optional> </define> <define name="id.attributes"> <ref name="id.attribute.id"/> </define> <define name="id.attribute.id"> <optional> <attribute name="id"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> </attribute> </optional> </define> <define name="target-IDREF.attributes"> <ref name="target-IDREF.attribute.target"/> </define> <define name="target-IDREF.attribute.target"> <optional> <attribute name="target"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> </attribute> </optional> </define> <define name="lang.attributes"> <ref name="lang.attribute.xmllang"/> </define> <define name="lang.attribute.xmllang"> <optional> <attribute name="xml:lang"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the language of the element content. The allowed values are found in IETF RFC 4646 or its successor. This attribute is optional for elements that use this attribute class. For a description, see the information at the tbx element.</a:documentation> <text/> </attribute> </optional> </define> <define name="hi"> <element name="hi"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Highlights a segment of text and optionally points to another element.</a:documentation> <text/> <ref name="target-IDREF.attributes"/> <ref name="lang.attributes"/> <optional> <attribute name="type"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <choice> <value>entailedTerm</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" >(entailedTerm) A term, found in the content of a text element such as , that is defined in another terminological entry in the same terminological collection.</a:documentation> <value>hotkey</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" >(hotkey) A key or a combination of keys on a computer keyboard that, when pressed at one time, performs a task (such as starting an application) as an alternative to using a mouse or other input device. Hotkeys are supported by many operating systems and applications (the hotkey is indicated by an ampersand in the term and by an underscore in the visual display). This type of hi element allows a hotkey to be identified as such in a text field such as a context sentence. To identify a hotkey for the head term of an entry, use the lionHotkey value of the type attribute on a termNote.</a:documentation> <value>italics</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" >(italics) Indicates that the content enclosed in the hi element must be rendered in italics.</a:documentation> <value>bold</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" >(bold) Indicates that the content enclosed in the hi element must be rendered in boldface.</a:documentation> <value>superscript</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" >(superscript) Indicates that the content enclosed in the hi element must be rendered in superscript.</a:documentation> <value>subscript</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" >(subscript) Indicates that the content enclosed in the hi element must be rendered in subscript.</a:documentation> <value>math</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" >(math) Indicates that the content enclosed in the hi element is mathematical in nature.</a:documentation> </choice> </attribute> </optional> <empty/> </element> </define> <define name="foreign"> <element name="foreign"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Used to mark a segment of text that is in a different language from the surrounding text.</a:documentation> <ref name="entity.noteText"/> <ref name="idlang.attributes"/> <empty/> </element> </define> <define name="bpt"> <element name="bpt"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The bpt tag encloses the beginning tag of a tag pair.</a:documentation> <text/> <optional> <attribute name="i"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <text/> </attribute> </optional> <optional> <attribute name="type"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <text/> </attribute> </optional> <empty/> </element> </define> <define name="ept"> <element name="ept"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The ept tag encloses the beginning tag of a tag pair.</a:documentation> <text/> <optional> <attribute name="i"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <text/> </attribute> </optional> <empty/> </element> </define> <define name="ph"> <element name="ph"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Placeholder - Used to encapsulate markup codes that do not occur in logical pairs with other codes. Examples include the XHTML and tags. This element should not be used to encapsulate codes that occur in pairs (such as the XHTML and tags), which should instead be encapuslated with bpt and ept.</a:documentation> <text/> <optional> <attribute name="type"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <text/> </attribute> </optional> <empty/> </element> </define> <define name="conceptEntry"> <element name="conceptEntry"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The root element of a terminological entry. It shall contain at least one language section.</a:documentation> <ref name="entity.auxInfo"/> <oneOrMore> <ref name="langSec"/> </oneOrMore> <ref name="id.attributes"/> <empty/> </element> </define> <define name="date"> <element name="date"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A date in ISO format. Permissible date values comply with ISO 8601 and shall use the format yyyy-mm-dd. The date element is used with terminology management data-categories in a transacGrp element.</a:documentation> <ref name="date"/> <ref name="id.attributes"/> <empty/> </element> </define> <define name="langSec"> <element name="langSec"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A nesting element that contains all the information in a terminological entry pertaining to one language, including all the termSec elements (terms and associated information) for that language.</a:documentation> <ref name="entity.auxInfo"/> <oneOrMore> <ref name="termSec"/> </oneOrMore> <attribute name="xml:lang"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the language of the language section. This attribute is required for the langSec element. See also the description on the tbx element.</a:documentation> <text/> </attribute> <empty/> </element> </define> <define name="note"> <element name="note"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Any kind of note. </a:documentation> <ref name="entity.noteText"/> <ref name="idlang.attributes"/> <empty/> </element> </define> <define name="term"> <element name="term"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The term that is being described in a termSec. This element, as well as other term-like elements such as those mentioned in the table Types of terms, relations to terms in section 9, can contain a hi element to allow a limited amount of inline markup. This is intended to handle markup requirements in special cases such as may be required for terms that represent scientific concepts. However, it is strongly recommended to use inline markup only when necessary to represent the term in its base form. Do not use the hi element for presentational styles chosen for esthetic purposes.</a:documentation> <ref name="entity.basicText"/> <ref name="id.attributes"/> <empty/> </element> </define> <define name="termComp"> <element name="termComp"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A term component. It includes the text of a part of a word (such as a morpheme or a syllable) or one of the words making up a multi-word term. The type of term component will depend on the value of the type attribute of the termCompSec element.</a:documentation> <text/> <ref name="idlang.attributes"/> <empty/> </element> </define> <define name="termCompGrp"> <element name="termCompGrp"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A grouping element that includes one termComp plus additional elements describing the term component, such as notes, administrative information, and cross references.</a:documentation> <ref name="termComp"/> <zeroOrMore> <empty/> </zeroOrMore> <ref name="entity.noteLinkInfo"/> <ref name="id.attributes"/> <empty/> </element> </define> <define name="termCompSec"> <element name="termCompSec"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A grouping element that contains at least one termComp element (usually more) or at least one termCompGrp element plus optionally some additional information about the term components. This element is designed to contain the components of a term. The value of the type attribute indicates what type of term components it contains.</a:documentation> <ref name="entity.auxInfo"/> <oneOrMore> <choice> <ref name="termComp"/> <ref name="termCompGrp"/> </choice> </oneOrMore> <ref name="id.attributes"/> <attribute name="type"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the type of the termCompSec, such as hyphenation. The value indicates on what basis the term components were identified, such as by hyphenation parts or by syllables.</a:documentation> <choice> <value>hyphenation</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" >(Hyphenation) The termComp elements contain the parts of a term as it would be hyphenated, such as at the end of a line, according to a given set of rules.</a:documentation> <value>lemma</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" >(Lemma) The termComp elements contain the base form of the term or of the individual words that it comprises. A base form of a word or term, sometimes called a lemma, is the form that is used as the formal dictionary entry for the term. For nouns, the base form is frequently the nominative singular form (in languages that show variation by case). For adjectives it is the positive form of the adjective, as opposed to the comparative, and in some languages it is uninflected, whereas in others it is the masculine singular. For verbs, it is generally the infinitive.</a:documentation> <value>morphologicalElement</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" >(Morphological element) The termComp elements contain the individual morphemes that comprise the term. .</a:documentation> <value>syllabification</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" >(Syllabification) The termComp elements contain the individual syllables that comprise the term.</a:documentation> <value>termElement</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(Term element) The termComp elements contain any other logically significant portion of the term.</a:documentation> </choice> </attribute> <empty/> </element> </define> <define name="termSec"> <element name="termSec"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A term information group. A grouping element that contains child elements describing a term. It is often referred to as the term section.</a:documentation> <ref name="term"/> <ref name="entity.auxInfo"/> <zeroOrMore> <ref name="termCompSec"/> </zeroOrMore> <ref name="id.attributes"/> <empty/> </element> </define> <define name="foreign-attributes"> <zeroOrMore> <attribute> <anyName> <except> <nsName ns=""/> <nsName ns="http://www.w3.org/XML/1998/namespace"/> </except> </anyName> </attribute> </zeroOrMore> </define> <define name="foreign-elements"> <zeroOrMore> <element> <anyName> <except> <nsName ns=""/> <nsName ns="http://www.iso.org/ns/TBX"/> </except> </anyName> <ref name="anything"/> </element> </zeroOrMore> </define> <define name="anything"> <zeroOrMore> <choice> <element> <anyName/> <ref name="anything"/> </element> <attribute> <anyName/> </attribute> <text/> </choice> </zeroOrMore> </define> <define name="foreign-node"> <zeroOrMore> <choice> <ref name="foreign-elements"/> <ref name="foreign-attributes"/> </choice> </zeroOrMore> </define> <define name="tbx"> <element name="tbx"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The root element of a TBX document instance.</a:documentation> <ref name="tbxHeader"/> <ref name="text"/> <attribute name="type"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the type of tbx document. If the type attribute value TBX is used, then the TBX document instance shall adhere to the default XCS file. If the TBX document instance adheres to another XCS file, then the type attribute value can consist of TBX- plus another word associated with the XCS file, such as 'TBX-Basic'.</a:documentation> <text/> </attribute> <attribute name="style"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the style of tbx document, whether it is Data Category as Tag (DCT) or Data Category as Attribute (DCA). The allowed values are either 'dca' or 'dct'.</a:documentation> <choice> <value>dca</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Data Category as Attribute</a:documentation> <value>dct</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Data Category as Tag</a:documentation> </choice> </attribute> <attribute name="xml:lang"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the default language of the entire tbx element content. The allowed values of the xml:lang attribute are found in IETF RFC 4646 or its successor, as indicated in IETF BCP 47. This attribute is required for the tbx element.</a:documentation> <text/> </attribute> <empty/> </element> </define> <define name="tbxHeader"> <element name="tbxHeader"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A grouping element that contains child elements which describe the TBX document instance.</a:documentation> <ref name="fileDesc"/> <optional> <ref name="encodingDesc"/> </optional> <optional> <ref name="revisionDesc"/> </optional> <ref name="id.attributes"/> <empty/> </element> </define> <define name="p"> <element name="p"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Paragraph text that is contained by the tbxHeader. By using a type attribute, it can also contain essential information about the content or location of the XCS file.</a:documentation> <ref name="entity.noteText"/> <ref name="idlang.attributes"/> <optional> <attribute name="type"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <choice> <value>DCSName</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The name of the XCS file that constrains the content of the TBX document instance.</a:documentation> <value>XCSURI</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The URI of the XCS file that constrains the content of the TBX document instance.</a:documentation> <value>XCSContent</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The content of an XCS file, embedded directly in the TBX document instance. Note that this content cannot be validated by the TBX DTD and therefore should be removed from the TBX document instance, or commented out, prior to such validation. </a:documentation> </choice> </attribute> </optional> <empty/> </element> </define> <define name="fileDesc"> <element name="fileDesc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A nesting element containing child elements that describe the TBX document instance.</a:documentation> <optional> <ref name="titleStmt"/> </optional> <optional> <ref name="publicationStmt"/> </optional> <oneOrMore> <ref name="sourceDesc"/> </oneOrMore> <ref name="id.attributes"/> <empty/> </element> </define> <define name="titleStmt"> <element name="titleStmt"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A nesting element containing the title and any notes about the TBX document instance.</a:documentation> <ref name="title"/> <zeroOrMore> <ref name="note"/> </zeroOrMore> <ref name="idlang.attributes"/> <empty/> </element> </define> <define name="title"> <element name="title"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The title of the TBX document instance.</a:documentation> <text/> <ref name="idlang.attributes"/> <empty/> </element> </define> <define name="publicationStmt"> <element name="publicationStmt"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Any information pertaining to the publication of the TBX document instance.</a:documentation> <oneOrMore> <ref name="p"/> </oneOrMore> <ref name="id.attributes"/> <empty/> </element> </define> <define name="sourceDesc"> <element name="sourceDesc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Any information about the source of the TBX document instance.</a:documentation> <oneOrMore> <ref name="p"/> </oneOrMore> <ref name="idlang.attributes"/> <empty/> </element> </define> <define name="encodingDesc"> <element name="encodingDesc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Includes a p element that itself contains a pointer to the XCS file and, if the TBX file is not in unicode, any information about the encoding.</a:documentation> <oneOrMore> <ref name="p"/> </oneOrMore> <ref name="id.attributes"/> <empty/> </element> </define> <define name="revisionDesc"> <element name="revisionDesc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Information about any revisions that have been carried out on the content of the TBX document instance or on the source database from which it is derived.</a:documentation> <oneOrMore> <ref name="change"/> </oneOrMore> <ref name="idlang.attributes"/> <empty/> </element> </define> <define name="change"> <element name="change"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Information about one particular change event in the revision history of a TBX document instance.</a:documentation> <oneOrMore> <ref name="p"/> </oneOrMore> <ref name="idlang.attributes"/> <empty/> </element> </define> <define name="text"> <element name="text"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The element of a TBX document instance that occurs after the tbx element. This element is provided to maintain compatibility with the TEI.</a:documentation> <ref name="body"/> <optional> <ref name="back"/> </optional> <ref name="id.attributes"/> <empty/> </element> </define> <define name="body"> <element name="body"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A nesting element that contains terminological entries (conceptEntry).</a:documentation> <oneOrMore> <ref name="conceptEntry"/> </oneOrMore> <ref name="id.attributes"/> <empty/> </element> </define> <define name="back"> <element name="back"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The root element of the back matter of a TBX document instance.</a:documentation> <zeroOrMore> <ref name="refObjectSec"/> </zeroOrMore> <ref name="id.attributes"/> <empty/> </element> </define> <define name="refObjectSec"> <element name="refObjectSec"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A list of objects that are referenced in the back matter of a TBX document instance.</a:documentation> <oneOrMore> <ref name="refObject"/> </oneOrMore> <ref name="id.attributes"/> <attribute name="type"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <text/> </attribute> <empty/> </element> </define> <define name="refObject"> <element name="refObject"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">An element in the back matter of a TBX document instance that contains a series of items that describe one referenced object.</a:documentation> <oneOrMore> <choice> <ref name="itemGrp"/> <ref name="item"/> </choice> </oneOrMore> <ref name="id.attributes"/> <empty/> </element> </define> <define name="item"> <element name="item"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">One descriptor of an object in the back matter of a TBX document instance.</a:documentation> <ref name="entity.noteText"/> <ref name="idtype.attributes"/> <empty/> </element> </define> <define name="itemGrp"> <element name="itemGrp"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains one item element as well as additional child elements for associated administrative information.</a:documentation> <ref name="item"/> <ref name="entity.noteLinkInfo"/> <ref name="id.attributes"/> <empty/> </element> </define> <start> <choice> <ref name="tbx"/> </choice> </start> </grammar>
The TBX-Basic namespace allows the use of the data categories which are included in TBX-Basic. Such data categories include (but are not limited to): "subjectField", "partOfSpeech", "grammaticalGender", "transactionType", etc. Note that since DCT does not use the meta-data elements ("descrip", "transac", "termNote", etc.), these are not available in the TBX-Basic namespace.
Namespace URI:
(Note that the TBX-Basic namespace is a URI)
http://www.tbxinfo.net/ns/dcs/basic
Simple Example
<tbx type="TBX-Basic" style="DCT" xmlns="urn:iso:std:iso:30042:ed-3" xmlns:basic="http://www.tbxinfo.net/ns/dct/basic">
<tbxHeader>[...]</tbxHeader>
<text>
<body>
<conceptEntry id="c01">
<basic:subjectField>technology</basic:subjectField>
<transacGrp>
<basic:transactionType>origination</basic:transactionType>
<basic:responsibility>John Doe</basic:responsibility>
</transacGrp>
<langSec xml:lang="en">
<termSec>
<term>keyboard</term>
<basic:partOfSpeech>noun</basic:partOfSpeech>
<note>This is a note about "keyboard"</note>
</termSec>
</langSec>
</conceptEntry>
</body>
</text>
</tbx>
Validating this Namespace
Currently there is an RNG to demonstrate this. However, XSD will be supported soon.
<?xml version="1.0" encoding="utf-8"?> <grammar xmlns="http://relaxng.org/ns/structure/1.0" xmlns:xlink="http://www.w3.org/1999/xlink" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://www.tbxinfo.net/ns/dct/basic"> <!-- Schema generated from ODD source 2017-06-21T11:36:21Z. . TEI Edition: Version 2.8.0. Last updated on 6th April 2015, revision 13197 TEI Edition Location: http://www.tei-c.org/Vault/P5/Version 2.8.0/ --> <!----> <sch:ns xmlns:sch="http://purl.oclc.org/dsdl/schematron" prefix="tei" uri="http://www.tei-c.org/ns/1.0"/> <define name="admin"> <choice> <ref name="customerSubset"/> <ref name="projectSubset"/> <ref name="source"/> </choice> </define> <define name="descrip"> <choice> <ref name="context"/> <ref name="definition"/> <ref name="subjectField"/> </choice> </define> <define name="ref"> <ref name="crossReference"/> </define> <define name="termNote"> <choice> <ref name="administrativeStatus"/> <ref name="geographicalUsage"/> <ref name="grammaticalGender"/> <ref name="partOfSpeech"/> <ref name="termLocation"/> <ref name="termType"/> </choice> </define> <define name="transac"> <ref name="transactionType"/> </define> <define name="transacNote"> <ref name="responsibility"/> </define> <define name="xref"> <choice> <ref name="xGraphic"/> </choice> </define> <define name="entity.noteText"> <zeroOrMore> <choice> <text/> </choice> </zeroOrMore> </define> <define name="entity.noteLinkInfo"> <zeroOrMore> <choice> <ref name="admin"/> <ref name="adminGrp"/> <ref name="transacGrp"/> <ref name="ref"/> <ref name="xref"/> </choice> </zeroOrMore> </define> <define name="customerSubset"> <element name="customerSubset"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" >(customerSubset) An identifier that indicates that the parent element to which it applies is associated with a specific customer. The content shall be in plainText.</a:documentation> <ref name="entity.noteText"/> <ref name="IDLangTgtDtyp.attributes"/> </element> </define> <define name="projectSubset"> <element name="projectSubset"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" >(projectSubset) An identifier assigned to a term, record, or entry to indicate that it is related to or used in a project. The content shall be in plainText, and preferably one of a predefined set of picklist values.</a:documentation> <ref name="entity.noteText"/> <sch:pattern xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://www.ascc.net/xml/schematron" name="projectSubset"> <sch:rule context="projectSubset"> <sch:assert test=".=not(*)">The project subset must be expressed in plainText.</sch:assert> </sch:rule> </sch:pattern> <ref name="IDLangTgtDtyp.attributes"/> </element> </define> <define name="source"> <element name="source"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(source) A complete citation of the source of the information in the parent element.</a:documentation> <ref name="entity.noteText"/> <ref name="IDLangTgtDtyp.attributes"/> </element> </define> <define name="adminGrp"> <element name="adminGrp"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">An element that contains a group of elements that contain administrative information.</a:documentation> <ref name="admin"/> <zeroOrMore> <choice> <ref name="ref"/> <ref name="xref"/> </choice> </zeroOrMore> <ref name="id.attributes"/> </element> </define> <define name="context"> <element name="context"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(context) Contexts must be authentic, that is, they must be obtained from an existing source, and not created by the terminologist. Contexts are documented very frequently in terminology collections. Contexts can provide information for determining term usage and collocations. In TBX, the context is a term-related data-category. A context can be further categorized according to context type.</a:documentation> <ref name="entity.noteText"/> <pattern xmlns="http://www.ascc.net/xml/schematron" name="TBX-Basic-context-context-constraint-3"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://www.ascc.net/xml/schematron" context="context"> <sch:assert test="parent::termSec or parent::descripGrp/parent::termSec">A context sentence can only occur at the term (termSec) level.</sch:assert> </sch:rule> </pattern> <ref name="IDLangTgtDtyp.attributes"/> </element> </define> <define name="definition"> <element name="definition"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(definition) A representation of a concept by a descriptive statement which serves to differentiate that concept from related concepts.</a:documentation> <ref name="entity.noteText"/> <sch:pattern xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://www.ascc.net/xml/schematron" name="definition"> <sch:rule context="definition"> <sch:assert test="parent::conceptEntry or parent::langSec or parent::termSec or parent::descripGrp/parent::conceptEntry or parent::descripGrp/parent::langSec or parent::descripGrp/parent::termSec" > A definition must occur at the conceptEntry level, the langSec level, or the term (termSec) level.</sch:assert> </sch:rule> </sch:pattern> <ref name="IDLangTgtDtyp.attributes"/> </element> </define> <define name="subjectField"> <element name="subjectField"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" >(subjectField) A field of special knowledge. Subject fields can be expressed in multiple levels, for example: Subject field (level 1): disease, Subject field (level 2): cancer, Subject field (level 3): non-Hodgkin's lymphoma. Subject fields shall be expressed in plainText, and preferably be selected from a defined set of picklist values. Subject fields shall be specified at the concept (conceptEntry) level.</a:documentation> <ref name="entity.noteText"/> <sch:pattern xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://www.ascc.net/xml/schematron" name="subjectField"> <sch:rule context="subjectField"> <sch:assert test="(.=not(*)) and (parent::conceptEntry or parent::descripGrp/parent::conceptEntry)" > A subject field must be a plainText value. Subject fields usually occur at the conceptEntry level.</sch:assert> </sch:rule> </sch:pattern> <ref name="IDLangTgtDtyp.attributes"/> </element> </define> <define name="descripGrp"> <element name="descripGrp"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains one descrip element as well as additional child elements for associated administrative information.</a:documentation> <ref name="descrip"/> <zeroOrMore> <choice> <ref name="admin"/> <ref name="adminGrp"/> <ref name="transacGrp"/> <ref name="ref"/> <ref name="xref"/> </choice> </zeroOrMore> <ref name="id.attributes"/> </element> </define> <define name="crossReference"> <element name="crossReference"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" >(crossReference) A pointer to another related location, such as another entry or another term. The ref element with a type attribute value of cross-reference shall also have a target attribute to point to the identifier of the entry or term.</a:documentation> <text/> <ref name="IDLangTgtDtyp.attributes"/> </element> </define> <define name="administrativeStatus"> <element name="administrativeStatus"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" >(administrativeStatus) The status of a term within a certain working environment. The data-category administrativeStatus should be linked, through a target attribute, to a refObject in the back matter that identifies the administrative organization that determined the status. The element termNote when its type attribute has the value administrativeStatus shall contain one of the following values: * admittedTerm-admn-sts * deprecatedTerm-admn-sts * legalTerm-admn-sts * preferredTerm-admn-sts * regulatedTerm-admn-sts * standardizedTerm-admn-sts * supersededTerm-admn-sts The status of terms with respect to a standardization process is covered by normativeAuthorization.</a:documentation> <ref name="IDLangTgtDtyp.attributes"/> <choice> <value>admittedTerm-admn-sts</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" >(admittedTerm-admn-sts) </a:documentation> <value>deprecatedTerm-admn-sts</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" >(deprecatedTerm-admn-sts) </a:documentation> <value>legalTerm-admn-sts</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" >(legalTerm-admn-sts) </a:documentation> <value>preferredTerm-admn-sts</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" >(preferredTerm-admn-sts) </a:documentation> <value>regulatedTerm-admn-sts</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" >(regulatedTerm-admn-sts) </a:documentation> <value>standardizedTerm-admn-sts</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" >(standardizedTerm-admn-sts) </a:documentation> <value>supersededTerm-admn-sts</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" >(supersededTerm-admn-sts) </a:documentation> </choice> </element> </define> <define name="geographicalUsage"> <element name="geographicalUsage"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" >(geographicalUsage) A code identifying any specific geographical area where the term is used, for instance, to differentiate between UK English and US English. Preferred values are language codes combined with geographical codes, from IETF RFC 4646 or its successor, as identified in IETF BCP 47. For example: en-US for American English. The element content shall be expressed in plainText. </a:documentation> <ref name="entity.noteText"/> <sch:pattern xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://www.ascc.net/xml/schematron" name="geographicalUsage"> <sch:rule context="geographicalUsage"> <sch:assert test=".=not(*)">The geographical usage must be expressed in plainText. </sch:assert> </sch:rule> </sch:pattern> <ref name="IDLangTgtDtyp.attributes"/> </element> </define> <define name="grammaticalGender"> <element name="grammaticalGender"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" >(grammaticalGender) The gender of the word. The value of the termNote element when it has a type attribute value of grammaticalGender shall be one of: masculine, feminine, neuter, or otherGender.</a:documentation> <choice> <value>masculine</value> <value>feminine</value> <value>neuter</value> <value>otherGender</value> </choice> <ref name="IDLangTgtDtyp.attributes"/> </element> </define> <define name="partOfSpeech"> <element name="partOfSpeech"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" >(partOfSpeech) A category assigned to a word based on its grammatical and semantic properties. For example: noun, verb, or adjective. The element content shall be expressed in plainText, and preferably be limited to a set of picklist values. Only one value shall be permitted for each term in a given entry. For example, the following values are permitted in the TBX-Basic TML: * noun * verb * adjective * adverb * properNoun * other</a:documentation> <ref name="IDLangTgtDtyp.attributes"/> <choice> <value>noun</value> <value>verb</value> <value>adjective</value> <value>adverb</value> <value>properNoun</value> <value>other</value> </choice> </element> </define> <define name="termLocation"> <element name="termLocation"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" >(termLocation) A location in a document, computer file, or other information medium, where the term frequently occurs, such as a user interface object (in software), a packaging element, a component in an industrial process, and so forth. The element content shall be expressed in plainText, and preferably be restricted to a set of picklist values. The following picklist values are recommended for software user interface locations in a Windows environment. * checkBox * comboBox * comboBoxElement * dialogBox * groupBox * informativeMessage * interactiveMessage * menuItem * progressBar * pushButton * radioButton * slider * spinBox * tab * tableText * textBox * toolTip * user-definedType</a:documentation> <choice> <ref name="entity.noteText"/> <choice> <value>checkBox</value> <value>comboBox</value> <value>comboBoxElement</value> <value>dialogBox</value> <value>groupBox</value> <value>informativeMessage</value> <value>interactiveMessage</value> <value>menuvalue</value> <value>progressBar</value> <value>pushButton</value> <value>radioButton</value> <value>slider</value> <value>spinBox</value> <value>tab</value> <value>tableText</value> <value>textBox</value> <value>toolTip</value> <value>user-definedType</value> </choice> </choice> <ref name="IDLangTgtDtyp.attributes"/> </element> </define> <define name="termType"> <element name="termType"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(termType) A categorization of a term with respect to formal representations of terms or where or how they are used, for example, acronym. The content of the termNote element when it has a type attribute value of termType shall be one of the following: * abbreviation * acronym * clippedTerm * commonName * entryTerm * equation * formula * fullForm * initialism * internationalism * internationalScientificTerm * logicalExpression * partNumber * phraseologicalUnit * transcribedForm * transliteratedForm * shortForm * shortcut * sku * standardText * string * symbol * synonym * synonymousPhrase * variantRefer to ISO 12620 for definitions of the above term types. The value shortcut refers to a string that acts as a keyboard shortcut on computers, for example, Ctrl + V is a term that represents a keyboard shortcut for the concept of paste.</a:documentation> <choice> <value>abbreviation</value> <value>acronym</value> <value>clippedTerm</value> <value>commonName</value> <value>entryTerm</value> <value>equation</value> <value>formula</value> <value>fullForm</value> <value>initialism</value> <value>internationalism</value> <value>internationalScientificTerm</value> <value>logicalExpression</value> <value>partNumber</value> <value>phraseologicalUnit</value> <value>transcribedForm</value> <value>transliteratedForm</value> <value>shortForm</value> <value>shortcut</value> <value>sku</value> <value>standardText</value> <value>string</value> <value>symbol</value> <value>synonym</value> <value>synonymousPhrase</value> <value>variant</value> </choice> <ref name="IDLangTgtDtyp.attributes"/> </element> </define> <define name="termNoteGrp"> <element name="termNoteGrp"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A grouping element that contains one termNote element, and auxiliary information such as administrative information, transaction information, notes and cross references. It does not allow any descrip elements. It can only appear at the term (termSec) level and below.</a:documentation> <ref name="termNote"/> <ref name="entity.noteLinkInfo"/> <ref name="id.attributes"/> </element> </define> <define name="transactionType"> <element name="transactionType"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" >(transactionType) A record that indicates the stage of the entry within the overall process of creation, approval, and use of a terminology entry.</a:documentation> <choice> <value>origination</value> <value>input</value> <value>modification</value> <value>check</value> <value>approval</value> <value>withdrawl</value> <value>standardization</value> <value>exportation</value> <value>importation</value> <value>proposal</value> <value>userAccess</value> </choice> <ref name="IDLangTgtDtyp.attributes"/> </element> </define> <define name="transacGrp"> <element name="transacGrp"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">An element that includes child elements that provide information about a transaction. </a:documentation> <ref name="transac"/> <zeroOrMore> <choice> <ref name="transacNote"/> <ref name="ref"/> <ref name="xref"/> </choice> </zeroOrMore> <ref name="id.attributes"/> </element> </define> <define name="responsibility"> <element name="responsibility"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" >(responsibility) The name of a person or entity associated with a terminology management transaction. The transacNote element with a type attribute value of responsibility can also have a target attribute to point to the identifier of a bibliographic entry in a refObject that contains information about the person or entity.</a:documentation> <text/> <ref name="IDLangTgtDtyp.attributes"/> </element> </define> <define name="xGraphic"> <element name="xGraphic"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(xGraphic) External graphic file.</a:documentation> <text/> <ref name="id.attributes"/> <attribute name="target"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The URI of the external object.</a:documentation> <text/> </attribute> </element> </define> <define name="id.attributes"> <ref name="id.attribute.id"/> </define> <define name="id.attribute.id"> <optional> <attribute name="id"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> </attribute> </optional> </define> <define name="target-IDREF.attributes"> <ref name="target-IDREF.attribute.target"/> </define> <define name="target-IDREF.attribute.target"> <optional> <attribute name="target"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> </attribute> </optional> </define> <define name="lang.attributes"> <ref name="lang.attribute.xmllang"/> </define> <define name="lang.attribute.xmllang"> <optional> <attribute name="xml:lang"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the language of the element content. The allowed values are found in IETF RFC 4646 or its successor. This attribute is optional for elements that use this attribute class. For a description, see the information at the tbx element.</a:documentation> <text/> </attribute> </optional> </define> <define name="IDLangTgtDtyp.attributes"> <ref name="lang.attributes"/> <ref name="id.attributes"/> <ref name="target-IDREF.attributes"/> <ref name="IDLangTgtDtyp.attribute.datatype"/> </define> <define name="IDLangTgtDtyp.attribute.datatype"> <optional> <attribute name="datatype"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The data type of plainText, or what is known as PCDATA.</a:documentation> <text/> </attribute> </optional> </define> <start> <choice> <ref name="adminGrp"/> <ref name="descripGrp"/> <ref name="transacGrp"/> <ref name="termNoteGrp"/> <ref name="admin"/> <ref name="descrip"/> <ref name="termNote"/> <ref name="ref"/> <ref name="transacNote"/> <ref name="xref"/> </choice> </start> </grammar>
The DCT TBX Namespace file can be validated using a Namespace-based Validation Dispatching Language (NVDL) file. NVDL allows elements from different namespaces to be validated. The following NVDL uses the RNG files above:
<?xml version="1.0" encoding="UTF-8"?>
<rules startMode="root" xmlns="http://purl.oclc.org/dsdl/nvdl/ns/structure/1.0"
xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">
<mode name="root">
<namespace ns="http://www.iso.org/ns/TBX">
<validate
schema="TBX_ISO30042-Core.rng">
<mode>
<namespace ns="http://www.tbxinfo.net/ns/dct/basic">
<validate
schema="out/TBX_ISO30042-Basic%20-%20DCT.rng"/>
</namespace>
</mode>
</validate>
</namespace>
<anyNamespace>
<reject/>
</anyNamespace>
</mode>
</rules>