RE: redefine and interoperability problems

I personally think xs:redefine is one of those facilities (xsi:nil is
another) where you're better off pretending it doesn't exist. Implementors
don't have that luxury, but users do.

The specification of xs:redefine leaves a lot of room for interpretation. In
this particular case, the relevant phrase in the spec is:

"The definitions within the <redefine> element itself are restricted to be
redefinitions of components from the <redefine>d schema document"

and there's no statement anywhere about what it means precisely for a
component to be "from" a particular schema document. Saxon's interpretation
is that a model group definition component comes "from" a schema document if
the defining xs:group element is contained in that schema document, and an
xs:group element in an included document therefore does not qualify.
However, one could legitimately argue that the specification of xs:include
states:

"The .XML Schema. corresponding to <schema> contains not only the components
corresponding to its definition and declaration [children], but also all the
components of all the .XML Schemas. corresponding to any <include>d schema
documents."

and that it is this relationship between schema documents and schema
components that matters. Your guess is as good as mine (but when MSXML and
Xerces-J agree, I'm disinclined to differ.)

I wouldn't hold out great hope of these issues suddenly disappearing in 1.1.

Michael Kay
http://www.saxonica.com/

 

> -----Original Message-----
> From: xmlschema-dev-request@w3.org 
> [mailto:xmlschema-dev-request@w3.org] On Behalf Of Jirka Kosek
> Sent: 04 April 2007 23:28
> To: xmlschema-dev@w3.org
> Subject: xs:redefine and interoperability problems
> 
> Hi,
> 
> I'm not sure whether this is the right forum for my question, 
> but here it goes, please forward me somewhere else if this is 
> offtopic.
> 
> Suppose the following schema:
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
>            targetNamespace="http://www.w3.org/1999/xhtml"
>            xmlns="http://www.w3.org/1999/xhtml">
> 
>   <xs:redefine 
> schemaLocation="http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd">
> 
>     <xs:group name="tr.content">
>       <xs:sequence>
>         <xs:choice maxOccurs="unbounded">
>           <!-- Remove th: <xs:element ref="th"/> -->
>           <xs:element ref="td"/>
>         </xs:choice>
>       </xs:sequence>
>     </xs:group>
> 
>   </xs:redefine>
> 
> </xs:schema>
> 
> Xerces-J and .NET validators are complaining about circular 
> group references.
> 
> XSV and libxml are happy with such schema.
> 
> Saxon-SA, MSXML 4.0 and Xerces-J complain about tr.content 
> group not being defined in xs:redefined schema (it is in fact 
> defined in schema which is included into the redefined schema).
> 
> As a dedicated RELAX NG user I could smile under my beard ;-) 
> But anyway, I thought that WXS interoperability is better in 2007.
> 
> Is my schema correct? If no, why? If yes, will be 
> underspecified behaviour (which is probably cause of 
> incompatibilities between
> implementations) improved in WXS 1.1?
> 
> Thanks,
> 
> 				Jirka
> 
> --
> ------------------------------------------------------------------
>   Jirka Kosek      e-mail: jirka@kosek.cz      http://xmlguru.cz
> ------------------------------------------------------------------
>        Professional XML consulting and training services
>   DocBook customization, custom XSLT/XSL-FO document processing
> ------------------------------------------------------------------
>  OASIS DocBook TC member, W3C Invited Expert, ISO/JTC1/SC34 member
> ------------------------------------------------------------------
>  Want to speak at XML Prague 2007 => http://xmlprague.cz/cfp.html
> 
> 

Received on Wednesday, 4 April 2007 23:23:26 UTC