[Home] [By Thread] [By Date] [Recent Entries]

  • From: "Michael Kay" <mike@s...>
  • To: "'DUNN, Mark'" <mark.dunn@o...>,<xml-dev@l...>
  • 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@o...] 
> Sent: 04 June 2009 17:35
> To: xml-dev@l...
> Subject:  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@l...
> subscribe: xml-dev-subscribe@l... 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]


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member