> 1) The elements used in tests that are qualified by the svrl: namespace
> are defined in a DTD. The only reference to the svrl: namespace within
> this DTD is in a xmlns namespace attribute, which is not a standardized
> mechanism for defining namespaces that apply to DTDs and does not
> conform the with the rules proposed for Part 9 of DSDL.
What standardized mechanism do you mean? Please refrain from invoking
imaginary standards, such as Part 9, which are not available.
If you mean "using an xmlns attribute" then that is *not* a standardized
mechanism. My authority on this is the W3C TAG, both in public email by me
to them on the TAG mail list and their published finding:
Namespaces in XML says how to apply namespace URI to local names of
*attributes* and *elements*. It most pointedly does *not* apply to data
and attribute content. Applications that manipulate information using
namespaces have to make up their own application conventions.
If the complaint is that using xmlns declaration in ATTLISTs in DTDs is
not standard, then I note that the Namespaces in XML specification
discusses it. (It even mentions issues concerned with internal and
external subsets and validating parsers, in this regard.) If using ATTLIST
to declare namespaces is non-standard, then Namespaces themselves are
non-standard, because using DTDs is mentioned in the Namespaces REC.
> 2) The namespace is not declared formally as a namespace for the schema:
> it is only declared in a Schematron specific way. Even though the
> namespace is only used within attribute values we feel that it should be
> declared at the top-most level to prevent two definitions of svrl:
> occurring in a rule set and to avoid the possiblity that users may think
> from the example that they must apply namespaces to all elements they
> wish to test.
By "formally declared", do you mean just a paragraph saying "SVRL uses the
following namespace:..." I can add that easily.
> Point 1 could be overcome by replacing the DTD with a RNC definition
> that could have the namespace formally applied to it (a Trang RNC
> version of the DTD is attached as a proposed replacement).
I am happy to use a different schema if it prevents trouble. But, as I
have mentioned, I believe the WGs problem is entirely spurious, incorrect
and consequently their solution is a waste of time, though harmless.
I also note that the WG specifically gave me permission in both Phillie
and Cambridge to use DTDs, and that no country objected. Furthermore,
changing to RNC is not a change that is technically mandated by any of the
national comments on the CD, and so I believe it is an improper change for
a draft at this stage.
> Point 2 could
> be overcome by adding an xmlns:svrl declaration to the sch:schema
> element, even if this declaration will never be used in a testable
> situation.
I am strongly against this. If the intent is to reduce confusion, how will
this be acheived by adding spurious declarations, which would then need a
comment to say that they have no effect, have no technical justification,
are not necessary, and should be ignored by readers? Why stop with
namespace declarations: why not add fixed attributes with the element
names translated into Swahili?
What you are doing is requiring that the svrl: prefix should be reserved,
I think. This goes entirely against the Namespaces in XML specification,
where prefixes do not have special meaning.
Schematron and SVRL were both designed so that they could use DTDs. I
believed this was an important issue in bootstrapping: each new level of
technology needs to be validatable by the previous one, where possible. It
is the use of namespace declarations to provide semantics for data values
and attribute values that causes problems left-right-and-center.
Take SVRL as an example. If we used xmlns:* to provide declarations for
the sematics of data content and attribute values, then we lock our users
out of using a DTD, because they have to regenerate a new DTD with new
declarations each time. My company's tools, for example, are DTD based,
not RNC based.
> Another suggestion made is that the sch:ns attribute should be renamed
> sch:ns-prefix-binding to make it clear that this is not something that
> is applied immediately but only occurs within schematron output.
I don't know what you mean by "schematron output". SVRL is non-normative.
It is inappropriate for the body of the standard to make any comment about
output. In face, please note that SVRL output as I have implemented it is
not namespace-aware: it just reproduces the strings from the Schematron
values. As far as SVRL is concerned, we are dealing with text, not
elements.
The name sch:ns-prefix-binding does make anything clearer. Why would a
person not be confused that somehow it applies to elements? At some
stage, people implementing Schematron have to read the plain text of
5.4.7.
Please, please, please can we avoid renaming elements. Part 3 is a
standardization of an existing, proven technology. In the five years that
Schematron has been around, I have not had a *single* request that ns
should be renamed.
Furthermore, this is not a change that would satisify any comment made by
a national body, so I believe it is an improper change for a draft at this
stage.
Can I also re-introduce an important technical consideration here please:
XSLT implementations vary in their handling of namespaces declaration for
which there are no elements or attributes. Most will simply strip them
out. We had to do several hacks to figure out how to prevent them from
doing it. So I believe it is simply impractical to imagine that it is
convenient or "right" to put namespace declarations for values using
xmlns: it simply does not work reliably.
So please don't think of Schematron's <sch:ns> as being remotely radical:
on the contrary, it is profoundly conservative and based on hard practical
discoveries. I asked the XSLT working group to add text to specify which
namespaces declarations should be stripped, but they refused.
> The
> wording in the last para of 5.4.7 needs to be reviewed to make the
> relationship between the tested/output namespaces and the schema
> rules/input namespaces clearer.
I do not see anything unclear or wrong in the wording of 5.4.7.
Do you have some report of someone reading it and misunderstanding it?
All material on SVRL belongs in the SVRL annex. There is no
such thing as Schematron "output": Schematron is defined as
a function returning a few simple values, everything else is
implementation-dependent.
Bottom line. Is this acceptable?:
* I use the equivalent RNC schema instead, and we press ahead.
Cheers
Rick Jelliffe
-- DSDL members discussion list To unsubscribe, please send a message with the command "unsubscribe" to dsdl-discuss-request@dsdl.org (mailto:dsdl-discuss-request@dsdl.org?Subject=unsubscribe)Received on Sun Nov 14 19:26:18 2004
This archive was generated by hypermail 2.1.8 : Fri Dec 03 2004 - 14:00:28 UTC