XML.orgXML.org
FOCUS AREAS |XML-DEV |XML.org DAILY NEWSLINK |REGISTRY |RESOURCES |ABOUT
OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
Re: [xml-dev] Element as value of another Element

Hi,

Michael Kay a écrit :
> If I understand correctly you want to allow things such as
> 
> 
> <a>asdfgh</a>
> 
> <a><b>oihvcg</b></a>
> 
> In XML Schema 1.1 you can do this by defining the content model as mixed
> content, and then constraining it with an assertion:
> 
> <xs:complexType>
>   <xs:complexContent mixed="true">
>      <xs:sequence>
>        <xs:element name="b" minOccurs="0" maxOccurs="1"/>
>      </xs:sequence>
>   </xs:complexContent>
>   <xs:assert select="exists(text()) ne exists(b)"/>
> </xs:complexType>
> 
> Doing it with conditional type assignment would be nicer in many ways: 

So, we want to define a content model as a choice between a text and 
another element ?

Unfortunately, this can't be expressed in W3C XML Schema

With the Active Schema Language, you would express it as you say it :
<asl:element name="a">
     <asl:choice>
         <asl:text min-occurs="0" ref-type="xs:string"/>
         <asl:element min-occurs="0" ref-elem="b"/>
     </asl:choice>
</asl:element>

We don't need a conditional type assignment for that, we just need more 
expressiveness ; some examples of conditional assignment are shown here :
http://reflex.gforge.inria.fr/tutorial-schemas.html

Just be aware that ASL is experimental and not fully implemented

you
> really want to say that the type is either the simpleType xs:string or a
> complexType that only allows a <b> child - but conditional type assignment
> can only be driven from attribute values, so that's not possible here.
> 
> Michael Kay
> http://www.saxonica.com/
>  
> 
>> -----Original Message-----
>> From: G. Ken Holman [mailto:gkholman@CraneSoftwrights.com] 
>> Sent: 15 January 2008 17:29
>> To: xml-dev@lists.xml.org
>> Subject: Re: [xml-dev] Element as value of another Element
>>
>> At 2008-01-15 07:50 -0800, Shashank Gupta wrote:
>>> I want to define an element of type string such that it's 
>> value can be 
>>> either of :
>>> -any string
>>> -value of another element of type string
>>>
>>> I am using Schema.
>> Using W3C Schema 1.0 you cannot express that as a constraint.
>>
>>> Something like :
>>> <xs:simpleType name="a" value = any string OR another 
>> element b of type 
>>> string>
>> Using the ISO/IEC 19757-3 Schematron assertion-based 
>> constraint language you can express your desired constraint, 
>> but it is run separately from W3C Schema.
>>
>> Off hand I'm not sure if the future W3C Schema 1.1 can help 
>> in this regard ... I suspect that it can since it supports 
>> co-occurrence constraints, but I don't know if there are limits.
>>
>> I hope this helps.
>>
>> . . . . . . . . . . . . . Ken
>>
>> --
>> Comprehensive in-depth XSLT2/XSL-FO1.1 classes: Austin 
>> TX,Jan-2008 World-wide corporate, govt. & user group XML, XSL 
>> and UBL training
>> RSS feeds:     publicly-available developer resources and training
>> G. Ken Holman                 mailto:gkholman@CraneSoftwrights.com
>> Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/x/
>> Box 266, Kars, Ontario CANADA K0A-2E0    +1(613)489-0999 (F:-0995)
>> Male Cancer Awareness Nov'07  http://www.CraneSoftwrights.com/x/bc
>> Legal business disclaimers:  http://www.CraneSoftwrights.com/legal
>>
>>
>> ______________________________________________________________
>> _________
>>
>> 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
>>
> 
> 
> _______________________________________________________________________
> 
> 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


-- 
Cordialement,

               ///
              (. .)
  --------ooO--(_)--Ooo--------
|      Philippe Poulard       |
  -----------------------------
  http://reflex.gforge.inria.fr/
        Have the RefleX !


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 1993-2007 XML.org. This site is hosted by OASIS