[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: XML schema - multiple import of module
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 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 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 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] |
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|