- From: George Cristian Bina <george@oxygenxml.com>
- Date: Tue, 19 Sep 2006 15:52:18 +0300
- To: Christian Setzkorn <christian@setzkorn.eu>
- CC: xmlschema-dev@w3.org
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?
>
>
>
>
Received on Tuesday, 19 September 2006 12:49:25 UTC