例外:cvc-complex-type.2.1:元素'日期'必须没有字符或元素信息项[儿童]

时间:2016-07-20 10:26:05

标签: xml xsd

我正在使用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>

然后它正常工作。我该如何处理这个空白区域?

2 个答案:

答案 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