- From: Pete Cordell <petexmldev@tech-know-ware.com>
- Date: Fri, 5 Oct 2007 11:41:26 +0100
- To: <xmlschema-dev@w3.org>, <Muthuvelan.Swaminathan@dds.net>
In addition to Michael Kay's reply, you might want to define your attr
attribute to be an xs:list schema type, which causes the attribute value to
be a space separated list (e.g. attr="add del chg"). Using a more
conventional list definition may mean that the various tools can give you
better service.
The schema segment for that would look something like:
<xs:attribute name="attr">
<xs:simpleType>
<xs:list>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="add"/>
<xs:enumeration value="del"/>
<xs:enumeration value="chg"/>
</xs:restriction>
</xs:simpleType>
</xs:list>
</xs:simpleType>
</xs:attribute>
This doesn't prevent you having an instance looking like attr="add add add".
I'm not sure there is a convenient way to prevent that though and still be
part of an xs:list.
HTH,
Pete.
=============================================
Pete Cordell
Codalogic
for XML Schema to C++ data binding visit
http://www.codalogic.com/lmx/
=============================================
----- Original Message -----
From: <Muthuvelan.Swaminathan@dds.net>
To: <xmlschema-dev@w3.org>
Sent: Thursday, October 04, 2007 8:32 PM
Subject: Selective element based on attribute
> Hi there,
>
> How can I define an xsd for the following scenario?
>
> <parenttag attr="add | del | chg">
> <childtag1>chidvalue1</childtag1>
> <childtag2>chidvalue2</childtag2>
> <childtag3>chidvalue3</childtag3>
> </parenttag>
>
> Is it possible to create an xsd where childtag3 will have a value null if
> the parenttag attr equals add else a nonnull-String when the parenttag
> attr is del/chg?
>
> Thanks
> Muthu
Received on Friday, 5 October 2007 10:41:46 UTC