W3C home > Mailing lists > Public > xmlschema-dev@w3.org > November 2004

Re: Modelling composite Schemata

From: Kasimier Buchcik <kbuchcik@4commerce.de>
Date: Thu, 18 Nov 2004 18:28:02 +0100
Message-ID: <419CDBA2.4080803@4commerce.de>
To: Frans Englich <frans.englich@telia.com>
CC: xmlschema-dev@w3.org

Hi,

Frans Englich wrote:
> 
> Hello,
> 
> In an XML format of mine I need embedded XHTML, information for human reading, 
> documenting the "object" the document instance describes. I have hesitations 
> on how to do that in the best way.
> 
> Currently I do like this:
> 
>        <xsd:import namespace="http://www.w3.org/1999/xhtml"
>                 schemaLocation="http://www.w3.org/2002/08/xhtml/xhtml1-strict.xsd"/>
> 
>         <xsd:element name="test" type="xhtml:Block"/>
> 
> 
> However, from what I can tell, the content of the <test> element isn't XHTML 
> any longer, but just a brick of the document I built, labeled as what the 
> targetNamespace says. I see namespaces as "identifiers" for XML applications, 
> and any 3rd party, such as a a XSLT sheet, no longer sees XHTML, but must 
> learn my particular format.
> 
> That was what I _first_ thought, but then I realized that:
> 
> <test>
>         <div></div>
> </test>
> 
> didn't validate without <div> being in the XHTML namespace. Apparently, it 
> "is" still XHTML. 
> 
> So I'm confused. What if I /didn't/ want it to be XHTML but be my format, and 
> only borrow the XHTML complexType as a building block? (perhaps it's a weird 
> unrealistic question)
> 
> I interpret it as that WXS:targetNamespace doesn't matter(not that I mind in 
> this case :) ); from whatever namespace a building block emerges from, is 
> what they'll have.
> 
> I used libxml2 2.6.16 for validation.

The mechanism you describe matches the machanism for 'included'
schemata. If you want to 'borrow' the components for XHTML, you need
create a totally different XSD: copy the XSD for XHTML, remove the
specified targetNamespace or better set it to the targetNamespace of
your main schema + hope that wildcards, if existing, will still make
sense. Or just copy & paste the needed pieces into your main schema.
The targetNamespace has its purpose; changing it, creates components
which are totally different; just their names and structures are equal,
which could theoretically happen with any XSD by _accident_.

Greetings,

Kasimier
Received on Thursday, 18 November 2004 17:28:41 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 5 February 2014 23:40:23 UTC