[public-xml-versioning] <none>

I enclose an updated terminology section and diagram for the TAG finding
on ext/versioning.  Your review is appreciated.


Cheers,


Dave


1.1 Terminology


The terminology for describing languages, namespaces, constraints,
evolvability etc. follows. Let us consider an example. Two systems need
to exchange name information. Names may not be the perfect choice of
example because of internationalization reasons, but it resonates
strongly with a very large audience. The Name language exists to be
exchanged. [Definition: A producer is an agent that creates an instance.
][Definition: A Production is the creation of an instance.]. A producer
produces an instance for the intent of conveying information.
[Definition: A consumer is an agent that consumes an
instance.][Definition: A Consumption is the processing of an instance of
a language.] A consumer is impacted by the instance that it consumes.
That is, it interprets that instance and bases future processing, in
part, on the information that it believes was present in that instance.
An instance can be consumed many times, by many consumers, and have many
different impacts.

Generally, a language has a vocabulary that may use terms from one or
more XML Namespaces (or none), each of which has a namespace name.
Formally, [Definition: a language is an identifiable set of vocabulary
terms with defined syntactic and semantic constraints. ] A vocabulary
may or may not be related to an XML Namespace. By language, we just mean
the set of elements and attributes, or components, used by a particular
application. [Definition: A vocabulary is a set of terms]. The Name
language consists of 3 terms: name, first, last. In order to identify
the terms in the Name language, a namespace is assigned to the terms. We
use the prefix "namens" to refer to that namespace. Other examples
include the elements and attributes of XHTML 1.0 or the names of
built-in functions in XPath 2.0. The Name language could consist of
terms from other vocabularies, such as Dublin Core or UBL. These terms
each have their own namespaces, illustrating that a language can
comprise vocabularies from multiple namespaces. 

The name language takes the 3 terms and specifies the constraints: that
a name consists of a first and a last. [Definition: A language has a set
of constraints that apply to the vocabulary terms in the language. ]
These constraints can be defined in machine processable syntactic
constraint languages such as XML Schema, human readable textual
descriptions such as HTML descriptions, or are embodied in software.
Languages may or may not be defined by a schema in any particular schema
language. The constraints on a language will govern the membership of
instances in the language, which may be considered the set of strings
that are in the language.

In general, the intended meaning of a vocabulary term is scoped by the
language in which the term is found. However, there is some expectation
that terms drawn from an XML Namespace have a consistent meaning across
all languages in which they are used. The namens terms might be used in
other languages, but it is generally expected that they will still be
"the same" in some meaningful sense.

[Definition: An instance is a specific, discrete sequence of terms].
Given that there are constraints on a language, an instance may or may
not have membership in a language. Indeed, an instance may be a member
of many languages, and there may be many instances that are members of a
given language. The instances of the language are the units of exchange.
Documents are instances of a language. They must have a root element in
XML. A name document might be a name element as the root element.
Alternatively, the name vocabulary may be used by a language such as
purchase orders. The purchase order documents may contain name elements.
Thus instances of a language are always part of a document and may be
the entire document. XML instances (and all other instances of markup
languages) consist of markup and content. In the name example, the first
and last elements including the end markers are the markup. The values
between the start and end markers are the content. An instance has an
information model. There are a variety of data models within and without
the W3C, and the one standardized by the W3C is the XML infoset.

A stylesheet processor is a consumer of the XML document that it is
processing (the producer isn't mentioned); in the Web services context
the roles of producer and consumer alternate as messages are passed back
and forth.Note that most Web service specifications provide definitions
of inputs and outputs. By our definitions, a Web service that updates
its output schema is considered a new producer. A service that updates
its input schema is a new consumer. 

 

Received on Monday, 13 February 2006 19:13:32 UTC