<xs:attributeGroup name="formalname">
<xs:annotation>
<xs:documentation>
================================= formalname ===================================
FormalName
==========
A string of characters whose meaning is determined by a controlled vocabulary.
Vocabulary
==========
The Vocabulary attribute, if present, provides a pointer to a TopicSet which is
the controlled vocabulary that can be used to resolve the meaning of the
FormalName. The value of the Vocabulary attribute is an http URL or a NewsML
URN, or the # character followed by the value of the Duid attribute of the a
TopicSet in the current document.
If there is no Vocabulary attribute, then the controlled vocabulary to be used
is located by the following algorithm:
- Proceed to the parent of the current element.
- If it has a Catalog element as its immediate child, see whether that Catalog
contains a Resource element whose DefaultVocabularyFor child contains an XPath
pattern that is matched by the current element. If so, then the controlled
vocabulary is the resource identified by that Resource element.
- If the parent does not meet the above condition, proceed to its parent and
check the same condition.
- Continue until a vocabulary is found, or no further parent elements are
available because the root element has been reached and it too fails to meet
the condition.
If there is no Vocabulary attribute and the above algorithm fails to identify
a resource that serves as the controlled vocabulary, there is an error, which
the NewsML system may signal to the user.
The NewsML system may also signal an error if a vocabulary is successfully
identified, but it contains no item that matches the value of the FormalName
whose meaning is sought.
Scheme
======
The Scheme attribute, if present, serves to distinguish which of possibly
multiple naming schemes in the controlled vocabulary is the one that governs
this FormalName. For a match to be obtained within the controlled vocabulary,
the rule is that the FormalName and the Scheme must both match. If there is a
Scheme attribute on the current element, then both the FormalName and the
Scheme in the controlled vocabulary must match.
The controlled vocabulary will be located either through the Vocabulary attribute
(if present) or through the appropriate Catalog entry where the Context matches
the current element.
If a Vocabulary attribute is present that points to a TopicSet then the
FormalName may be resolved using this TopicSet. This overrides any relevant
Catalog entry.
If there is no Scheme attribute on the current element and no Vocabulary
attribute then a Scheme may be assigned through as follows:
If the Catalog, within the instance or externally referenced from the instance,
contains a Resource element with a DefaultVocabularyFor child element with a
Context attribute that matches the current element and a Scheme attribute with a
value declared, then this Scheme may be applied when resolving the current
element FormalName. If the DefaultVocabularyFor has no Scheme value then
a match will be to an item in the vocabulary that has the current FormalName and
no Scheme.
================================================================================
</xs:documentation>
</xs:annotation>
<xs:attribute name="FormalName" type="xs:string" use="required" />
<xs:attribute name="Vocabulary" type="xs:string" />
<xs:attribute name="Scheme" type="xs:string" />
</xs:attributeGroup>
|