[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: Mon, 8 Jun 2009 11:09:44 +0100
If the content model for the <p> element is different depending on the
context where it appears, then you should be using a local element
declaration for <p>. xs:redefine does something quite different: it creates
a customized version of a schema. The effect of xs:redefine is global - if
you redefine type T, it affects everywhere in your schema that T is used.
Regards,
Michael Kay
http://www.saxonica.com/
http://twitter.com/michaelhkay
> -----Original Message-----
> From: DUNN, Mark [mailto:mark.dunn@oup.com]
> Sent: 08 June 2009 10:52
> To: xml-dev@lists.xml.org
> Subject: RE: [xml-dev] XML schema - multiple import of module
>
> Thanks Michael,
>
> Thanks also to George, with essentially the same solution,
> and to Lech for suggesting NVDL.
>
> Having two schemas that import each other still seems kind of
> circular, but better than my rickety chain of imports, and
> XMLSpy allows it.
>
> The reason for using xs:redefine was that I want a <p> in a 'main.xsd'
> document to be allowed to contain certain other elements
> defined only in main.xsd itself.
>
> The bigger picture is that we have a 'core' set of structural
> elements (paragraphs, titles, typographic elements, etc.)
> included in various other DTDs (for legal documents,
> chapter-based books, A-Z reference, etc.). I need the model
> of <p> (from the core set) to be slightly different in each
> of the including DTDs, and am looking for a way of expressing
> this in XML Schema.
>
> I chose the xs:redefine element because it corresponded to
> the way the old DTD was defined.
>
> Maybe I need to have a separate <p> element in the including
> schemas, in a separate namespace from the core <p> element,
> and extending its model.
>
> Thanks again for all the suggestions!
>
> Regards,
>
> Mark
>
>
>
> -----Original Message-----
> From: Michael Kay [mailto:mike@saxonica.com]
> Sent: 04 June 2009 18:32
> To: DUNN, Mark; xml-dev@lists.xml.org
> Subject: RE: [xml-dev] XML schema - multiple import of module
>
> 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
> >
>
> 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]