[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
RE: [xml-dev] XML schema - multiple import of module
- From: "Michael Kay" <mike@saxonica.com>
- To: "'DUNN, Mark'" <mark.dunn@oup.com>,<xml-dev@lists.xml.org>
- Date: Thu, 4 Jun 2009 18:32:14 +0100
Unfortunately the topic of schema composition is one where the spec isn't
all that prescriptive, and where in consequence there are differences
between implementations.
Having said that, I can't see why you have three schema documents or why you
are trying to use xs:redefine.
You should have two schema documents, one for each namespace, and each
should reference the other using an xsl:import. If your chosen tool doesn't
allow that, I can only suggest you try a different tool.
Regards,
Michael Kay
http://www.saxonica.com/
http://twitter.com/michaelhkay
> -----Original Message-----
> From: DUNN, Mark [mailto:mark.dunn@oup.com]
> Sent: 04 June 2009 17:35
> To: xml-dev@lists.xml.org
> Subject: [xml-dev] XML schema - multiple import of module
>
> Hello,
>
> I'm new to XML Schemas, and investigating conversion of a DTD
> to an XML Schema. I have a problem describing the Schema
> version of the following
> structure:
>
> <doc>
> <div>
> <title>Section 1</title>
> <p>Some text...</p>
> <p>
> <law:extraxt>
> <title>Title of Regulation</title>
> <p>Text of regulation</p>
> </law:extract>
> </p>
> </div>
> </doc>
>
>
> The problem is in the non-namespaced <title> and <p> elements
> occurring within the namespaced <law:extract> element. They
> are the same as the ones occurring outside this element, so
> I'd like to define them only once.
>
> My attempt at expressing this structure uses three .xsd files:
>
> main.xsd:
>
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
> xmlns="http://xsd.oup.com/ac-xsd/"
> xmlns:law="http://xsd.oup.com/ac-law/"
> targetNamespace="http://xsd.oup.com/ac-xsd/"
> elementFormDefault="qualified">
> <xs:redefine schemaLocation="struct.xsd">
> <xs:group name="paragraph-content">
> <xs:choice>
> <xs:group ref="paragraph-content"/>
> <xs:element ref="law:extract"/>
> </xs:choice>
> </xs:group>
> </xs:redefine>
> <xs:import namespace="http://xsd.oup.com/ac-law/"
> schemaLocation="law.xsd"></xs:import>
> ...
> </xs:schema>
>
> law.xsd:
>
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
> elementFormDefault="qualified"
> targetNamespace="http://xsd.oup.com/ac-law/"
> xmlns:law="http://xsd.oup.com/ac-law/"
> xmlns:struct="http://xsd.oup.com/ac-xsd/">
> <xs:import schemaLocation="struct.xsd"
> namespace="http://xsd.oup.com/ac-xsd/"></xs:import>
> <xs:element name="extract">
> <xs:complexType>
> <xs:sequence>
> <xs:element ref="struct:title"
> minOccurs="0"/>
> <xs:element ref="struct:p"
> minOccurs="1"/>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
> ...
> </xs:schema>
>
>
> struct.xsd:
>
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
> elementFormDefault="qualified" attributeFormDefault="unqualified"
> targetNamespace="http://xsd.oup.com/ac-xsd/"
> xmlns="http://xsd.oup.com/ac-xsd/">
> <xs:group name="general-inline">
> <xs:choice>
> <xs:element ref="b"/>
> <xs:element ref="i"/>
> </xs:choice>
> </xs:group>
> <xs:group name="paragraph-content">
> <xs:choice>
> <xs:group ref="general-inline"></xs:group>
> <!-- ... [plus others] ... --->
> </xs:choice>
> </xs:group>
> <xs:element name="p">
> <xs:complexType mixed="true">
> <xs:choice minOccurs="0" maxOccurs="unbounded">
> <xs:group ref="paragraph-content"/>
> </xs:choice>
> </xs:complexType>
> </xs:element>
> ...
> </xs:schema>
>
>
> When I try saving the schema files in XMLSpy 2009, I get an
> error saying that <title> is already declared, presumably
> because the file struct.xsd has ben imported twice.
>
> The W3C spec says that importing twice is legitimate, but
> vendors are encouraged to raise it as an error. Fair enough -
> I don't like the circularity in my description.
>
> But the structure itself seems reasonable, I just can't see a
> way of expressing it in XML Schema.
>
> Can anyone help?
>
>
> Kind regards,
>
> Mark Dunn
> XML Data Engineer
> Oxford University Press
>
> Oxford University Press (UK) Disclaimer
>
> This message is confidential. You should not copy it or
> disclose its contents to anyone. You may use and apply the
> information for the intended purpose only. OUP does not
> accept legal responsibility for the contents of this message.
> Any views or opinions presented are those of the author only
> and not of OUP. If this email has come to you in error,
> please delete it, along with any attachments. Please note
> that OUP may intercept incoming and outgoing email communications.
>
> ______________________________________________________________
> _________
>
> XML-DEV is a publicly archived, unmoderated list hosted by
> OASIS to support XML implementation and development. To
> minimize spam in the archives, you must subscribe before posting.
>
> [Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
> Or unsubscribe: xml-dev-unsubscribe@lists.xml.org
> subscribe: xml-dev-subscribe@lists.xml.org List archive:
> http://lists.xml.org/archives/xml-dev/
> List Guidelines: http://www.oasis-open.org/maillists/guidelines.php
>
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]