[
Lists Home |
Date Index |
Thread Index
]
- From: "Bullard, Claude L (Len)" <clbullar@ingr.com>
- To: Steve Boyce <SteveB@hbs.com>, "'xml-dev@xml.org'" <xml-dev@xml.org>
- Date: Tue, 18 Jul 2000 08:40:39 -0500
Not asking would be a harsher problem. No, the
schemas are not secretly presupposed. They may
exist and are useful, but they do not of necessity exist.
The existence of schemata and the usefulness of
declaring links are related.
There are more mathematically precise explanations
than what follows (invariance under transforms).
The importance of invariance under transforms is to determine if
information lost by transform invalidates declared relationships.
(Ie, did we snap the links?). There is a lot of
fun stuff in the bits on manifolds... but...
I think I can confuse you without all of that. :-)
1. XLink isn't an instance of XSLT. XLink
is a declaration of a relationship, not a transform
or stylesheet application. There is some cognitive
overlap in that one way to make a link functional
is to apply a transform.
2. Unlike SGML, XML does not automatically
presuppose the existence of a declaration (eg,
DTD or schema). In common practice, these
probably exist because they are useful in
several operational contexts. There are issues in which
one declares a link which depends on the target
being in a particular position of the tree.
In that case, a validation is useful. One
can more safely create persistent links given
a schema, but again, it is left up to the
designer to determine what safety is. The
issue is how much information is declared
versus how much is derived in the operational
context of resolving a link or transform.
3. For a transform, one certainly does have
a target in mind, but again, the existence of
the schema is not predetermined since the target
is an instance. When thinking
about transforms, it is useful to keep the
Champagne/Urbana concepts of down and uptranslation
in mind. For example, a transform from an XML
document to an HTML document is typically a
downtranslation, meaning, information is lost
in going to the target format. Translating in
the other direction is typically an up translation,
meaning information must be added.
The reason to think about this is the namespace.
If semantics are inferred by the namespace, that
is, the namespace is a processing context, then
ensuring the right names are used to create the
correct context is at issue. In this case, the
existence of the schema can determine the context
and from it, one can get the information needed for
the target context.
1. A schema declares an environment (a context).
2. An environment can be thought of as a space
of potential objects (any legal context).
3. The schema declares the members for all of the
possible operations that can be applied within that space.
4. Operations which change that space can
add or subtract members from the environment
or instance. If the environment is changed,
the result is a loss or addition of potential
members.
5. XLinks declare relationships that do
not add or subtract objects from the space
but can declare legal operations (constraints) over the
objects within that space OR among different
spaces by declaring what must exist in a given
context for the link to be operationally valid.
6. Operations may be reversible (non-lossy)
or may not be (lossy). (variant or invariant
under transform).
7. XSLT declares a transform operation which
may use environmental constraints. One use as
stated is to determine by querying the declaration if
the transform is valid in terms of the namespace
context or by detemining if the transform operationally
invalidates a link relationship.
The math majors can now proceed to chew me out for
mistakes here. :-)
Len Bullard
Intergraph Public Safety
clbullar@ingr.com
http://fly.hiwaay.net/~cbullard/lensongs.ram
Ekam sat.h, Vipraah bahudhaa vadanti.
Daamyata. Datta. Dayadhvam.h
From: Steve Boyce [mailto:SteveB@hbs.com]
This is: How is XLink anything other that a particular instance of XSLT?
|