[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Use xsd to specify multiple instances of existing element

  • From: "Pete Cordell" <petexmldev@c...>
  • To: <xml-dev@l...>
  • Date: Mon, 22 Sep 2008 14:10:07 +0100

Re:  Use xsd to specify multiple instances of existing element
I think what Andrew is suggesting is something like:

<xs:element name='category' type='categoryType' />

<xs:complexType name='categoryType' abstract='true'>
    ...

<xs:complexType name='privacy'>
    <xs:complexContent>
        <xs:extension base='categoryType'>
            ...

<xs:complexType name='fishingType'>
    <xs:complexContent>
        <xs:extension base='categoryType'>
            ...

This obviously has the problem of requiring the use of xsi:type.  It does
point to XSD1.1's xs:alternative construct being a useful way to go though.
Based on the example in the latest draft just before section 3.3.3, you'd
have something like:

<xs:element name="category" type="categoryType">
  <xs:alternative test="@scheme='http://dig.com/privacy'"
type="categoryPrivacyType"/>
  <xs:alternative test="@scheme='http://dig.com/fishingType'"
type="categoryFishingType"/>
</xs:element>

Hopefully someone will correct me if I'm wrong.

XSD 1.1 is not even new stuff yet(!), so I guess that is of little help!

HTH,

Pete Cordell
Codalogic Ltd
Interface XML to C++ the easy way using XML C++
data binding to convert XSD schemas to C++ classes.
Visit http://www.codalogic.com/lmx/ for more info

----- Original Message ----- 
From: "Rick Jelliffe" <rjelliffe@a...>
To: <xml-dev@l...>
Sent: Monday, September 22, 2008 11:40 AM
Subject: Re:  Use xsd to specify multiple instances of existing 
element


>
> Andrew Welch wrote:
>>> So in order to get your constraint you have three choices:
>>>
>>> 1) Adopt  RELAX NG instead of XSD.
>>> 2) Adopt Schematron as well as (or instead of XSD)
>>> 3) Adopt XSD 1.1 (if you can find an implementation) and use their
>>> assertions.
>>>
>>
>> there's a 4th I think:
>>
>> 4) annotate the category elements with an xsi:type:
>>
>> <category xsi:type="privacy" scheme='http://dig.com/privacy' 
>> term='private'/>
>> <category xsi:type="fishingType" scheme='http://dig.com/fishingType'
>> term='coarse'/>
>>
>> ...then just define the types "privacy" and "fishingType" in your
>> schema.
> I suspect that will not work, but it certainly may be worth a try.
>
> To make this work, don't you have to define the <entry> element to use 
> wildcards? For example (loosely)
>
> <element name="entry" >
>      <sequence>
>          <element name="category"> <!-- open category -->
>
>     <xs:any namespace="##targetNamespace"/>
>
> And if you wanted to make the first optional, alarm bells go off that many 
> XSD processors are likely to disallow it (due to quasi UPA implementation, 
> regardless of the standard).
> So you lose the ability to say "the second element must be a category" 
> while gaining the ability to override the schema in the instance.  The 
> trouble with this use of xsi:type is that it really doesn't give you 
> anything in terms of stricter validation or information
> modeling: it lets you get a validation result in spite of the modeling!
> Cheers
> Rick Jelliffe
>
>
>
>
>
> _______________________________________________________________________
>
> 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]


PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
 

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.


Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.