[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
Re: [xml-dev] Element as value of another Element
- From: Philippe Poulard <philippe.poulard@sophia.inria.fr>
- To: gumnam_musafir@yahoo.com
- Date: Thu, 17 Jan 2008 14:01:08 +0100
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]