xml – 由XSD验证空的xs:date元素

我在XSD中有这个:

<xs:element name="End_Date" type="xs:date" minOccurs="0"/>

如果有日期或者有一个空节点,我想验证通过

< END_DATE> 2011-05-31T00:00:00.000< / END_DATE>
应该没问题
< END_DATE>< / END_DATE>

我怎样才能修改XSD来实现它呢?

我尝试了不同的东西:

的nillable = “真”

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"

<xs:element name="End_Date">
                    <xs:simpleType>
                        <xs:union memberTypes="xs:date">
                        <xs:simpleType>
                        <xs:restriction base="xs:string">
                        <xs:enumeration value=""/>
                        </xs:restriction>
                        </xs:simpleType>
                        </xs:union>
                    </xs:simpleType>
                </xs:element>

他们都没有工作.

错误

Error detected : The ‘xxxxxxxxxx:End_Date’ element is invalid – The
value ” is invalid according to its datatype
‘http://www.w3.org/2001/XMLSchema:date’ – The string ” is not a valid
XsdDateTime value.

解决方法

也许你对xs:date和xs:dateTime之间的区别感到困惑.您在架构中使用了xs:date,但您的示例是xs:dateTime.

有三种方法可以达到你想要的效果

(a)定义一个类型,它是(xs:dateTime和(xs:string allow only only“”)的联合)

(b)定义一个类型,它是xs的列表:dateTime,minLength = 0,maxLength = 1

(c)将要素定义为可归零.在这种情况下,实例将不得不说xsi:nil =“true”,这在我看来使得设施相当无用.

如果您尝试其中之一并且它不起作用,请告诉我们您的确切操作以及确切失败的原因.

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念