我正在使用XML文件进行验证XSD文件,但我遇到了以下异常:
例外: cvc-complex-type.2.1:元素'日期'必须没有字符或元素信息项[children],因为类型为# 内容类型为空。
基本上我的XML文件Date
元素为空
我的XML日期元素:
<Date> </Date>
生成的XSD文件:
<xs:element name="Date">
<xs:complexType/>
</xs:element>
基于此我创建了XSD文件并验证它是否超越了异常
但如果我在日期元素之间没有空格。
示例:
<Date></Date>
然后它正常工作。我该如何处理这个空白区域?
答案 0 :(得分:0)
在我看来,好像一切都表现得如此。如果模式定义了具有空内容的元素,则不允许使用空白内容。如果要允许空格,则不要定义空内容模型。例如,您可以使用简单类型的xs:string来定义它,该字符串仅受允许空格的模式限制。
答案 1 :(得分:0)
发电机错了:
<Date> </Date>
和
<Date></Date>
不等同。
要接受这两者,请使用Date
的以下定义:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Date">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
<xs:pattern value=""/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:schema>
也许有一个设置,您可以指示您的生成器不忽略Date
中的空格,以便可以引导它自动生成上述定义;否则,你可能只需要手动更换它。
如果您对实际允许Date
元素中的日期感兴趣,请参阅 Allow XSD date element to be empty string 。