- From: Christian Setzkorn <christian@setzkorn.eu>
- Date: Tue, 19 Sep 2006 14:09:39 +0100
- To: "'George Cristian Bina'" <george@oxygenxml.com>
- Cc: <xmlschema-dev@w3.org>
Hi George, Thanks for your reply. I guess this would also work: <xs:element name="test"> <xs:complexType> <xs:choice> <xs:element> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:minInclusive value="1" /> <xs:maxInclusive value="100" /> </xs:restriction> </xs:simpleType </xs:element> <xs:element> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value=""/> </xs:restriction> </xs:simpleType> </xs:element> </xs:choice> </xs:complexType> </xs:element> BTW is there a difference between Union and Choice? Both correspond to a logical OR. Thanks, Chris > -----Original Message----- > From: xmlschema-dev-request@w3.org [mailto:xmlschema-dev-request@w3.org] > On Behalf Of George Cristian Bina > Sent: 19 September 2006 13:52 > To: Christian Setzkorn > Cc: xmlschema-dev@w3.org > Subject: Re: optional textnode in element > > > Hi Chris, > > You can define your element type as a union of integers from one to 100 > and empty string. > > > <xs:element name="test"> > <xs:simpleType> > <xs:union> > <xs:simpleType> > <xs:restriction base="xs:integer"> > <xs:minInclusive value="1"/> > <xs:maxInclusive value="100"/> > </xs:restriction> > </xs:simpleType> > <xs:simpleType> > <xs:restriction base="xs:string"> > <xs:enumeration value=""/> > </xs:restriction> > </xs:simpleType> > </xs:union> > </xs:simpleType> > </xs:element> > > Empty values are not nil in XML Schema. To mark a nil value you should > use xsi:nil=true where xsi is bound to the schema instance namespace > http://www.w3.org/2001/XMLSchema-instance. > > If you modify the above example to specify that the element is nillable > > <?xml version="1.0" encoding="UTF-8"?> > <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> > > <xs:element name="test" nillable="true"> > ... > > then you can have instances like > > nil value: > > <test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:nil="true"/> > > enpty value > > <test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> > > integer value > > <test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">10</test> > > You *cannot* have xsi:nil specified and also an integer value like below > > <test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:nil="true">10</test> > > Best Regards, > George > --------------------------------------------------------------------- > George Cristian Bina > <oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger > http://www.oxygenxml.com > > > Christian Setzkorn wrote: > > Hi, > > > > How can I define that an elements text node is ‘optional’ for an element > > like this one: > > > > <xs:element> > > <xs:simpleType> > > <xs:restriction base="xs:integer"> > > <xs:minInclusive value="1" /> > > <xs:maxInclusive value="100" /> > > </xs:restriction> > > </xs:simpleType> > > </xs:element> > > > > So that this: > > > > <number>70</number> > > > > and this is possible: > > > > </number> > > > > Any feedback would be very much appreciated. Many thanks. > > > > Chris > > > > PS: I am also a bit confused about the nil value. Van der Vilst writes > in > > his book: “an empty element is not always null, but a null element must > be > > empty.” ???? > > > > Are you aware of articles that may clarify this a bit more? Thanks! > > > > BTW: In statistics the whole thing gets even more complicated. I can > have > > something like MCAR (missing completely at random), MAR (missing at > random), > > MNAR (missing not at random. To model this I would use something like > this: > > > > <?xml version="1.0" encoding="utf-16"?> > > <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> > > <xs:element name="test"> > > <xs:complexType> > > <xs:choice> > > <xs:element> > > <xs:simpleType> > > <xs:restriction base="xs:integer"> > > <xs:minInclusive value="1" /> > > <xs:maxInclusive value="100" /> > > </xs:restriction> > > </xs:simpleType> > > </xs:element> > > <xs:element> > > <xs:simpleType> > > < xs:restriction base="xs:NMTOKEN"> > > <xs:enumeration value=”MCAR”/> > > <xs:enumeration value=”MAR”/> > > <xs:enumeration value=”MNAR”/> > > </xs:restriction> > > </xs:simpleType> > > </xs:element> > > </xs:choice> > > </xs:complexType> > > </xs:element> > > </xs:schema> > > > > What do you think? > > > > > > > > > > -- > No virus found in this incoming message. > Checked by AVG Free Edition. > Version: 7.1.405 / Virus Database: 268.12.5/450 - Release Date: 18/09/2006 > -- No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.1.405 / Virus Database: 268.12.5/450 - Release Date: 18/09/2006
Received on Tuesday, 19 September 2006 13:09:54 UTC