Re: [jats-list] XSD and @noNamespaceSchemaLocation

Subject: Re: [jats-list] XSD and @noNamespaceSchemaLocation
From: "Debbie Lapeyre dalapeyre@xxxxxxxxxxxxxxxx" <jats-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 25 Sep 2015 19:07:29 -0000
On Sep 23, 2015, at 4:18 PM, Maloney, Christopher (NIH/NLM/NCBI) [C]
maloneyc@xxxxxxxxxxxxxxxx <jats-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:

> I think this may have come up before, but I just noticed that a document
that attempts to use the @noNamespaceSchemaLocation attribute to identify its
XSD schema is not valid according to the DTD. For example:
>
> ```
> <!DOCTYPE article
>  PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.0
20120330//EN"
>  "http://jats.nlm.nih.gov/publishing/1.0/JATS-journalpublishing1.dtd";>
>
> <article dtd-version="1.0"
>  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>  xsi:noNamespaceSchemaLocation=
>
"http://jats.nlm.nih.gov/publishing/1.0/xsd/JATS-journalpublishing1.xsd>
> ```
>
> I would think that this should work, but if you validate it against the DTD,
it complains, because @xsi:noNamespaceSchemaLocation is not declared.
>
> I was about to attach a comment to the JATS document on the NISO site,
suggesting adding xsi:noNamespaceSchemaLocation as a "CDATA #IMPLIED"
attribute on <article>. This fits into the DTD, considering:
>
> 1) @xmlns:xsi is already defined on <article> as "CDATA #FIXED
'http://www.w3.org/2001/XMLSchema-instance'"

> 2) @xsi:schemaLocation is defined on mml:math as "CDATA #IMPLIED  so the
addition of @xsi:noNamespaceSchemaLocation to <article> would be similar to
this.

Hi Chris--

First: To answer your second rationale (2 above) first, the JATS Standing
Committee is not responsible for MathML or its attributes, so that
reasoning from anything attached to the <mml:math> element does not
really apply.

Then, to answer your question: Could we add @xsi:schemaLocation as
an attribute on the <article> element in the DTD. Yes we could, and
if you wish, you may suggest this to the JATS Standing Committee.
It would be easy to add the attribute to the DTD (with an #IMPLIED
default value).

The reason we have not already done this also has little to do with
JATS, per se. The last time this was proposed, we discussed it with
one of the editors of the W3C XSD specification. He, like many
(but clearly not all) XSD users, feels that a document
should NEVER name its schema.

They argue (I believe) that it is much better to specify the schema
to be used for validation from OUTSIDE the document to be validated.
Otherwise (and I quote here) "you are one of those 'land of the liars'
puzzles.  One reason to validate a document might be that you don't
trust it.  So why would you ask the untrusted document where its
schema is?)".

As an old SGMLer, I do not object to the DOCTYPE idea of a) here is my
document and b) here is the name and location of my schema. Many of the
XSD folks were very against it, so the matter dropped. They may well
still be against it, I do not know.

I do know that the use of @xsi:schemaLocation has been very controversial
and the JATS Standing Committee avoided the controversy.

Hope this helps.

--Debbie

================================================================
Deborah A Lapeyre              mailto:dalapeyre@xxxxxxxxxxxxxxxx
Mulberry Technologies, Inc.      http://www.mulberrytech.com
17 West Jefferson Street         Phone: 301-315-9631 (USA)
Suite 207                        Fax:   301-315-8385
Rockville, MD 20850
----------------------------------------------------------------
Mulberry Technologies: Consultancy for XML, XSLT, and Schematron
================================================================

Current Thread