XSD complexType序列需要允许空字符串

时间:2015-08-22 04:35:24

标签: xml datetime xsd jaxb unmarshalling

这是一个与JAXB / XSD相关的问题。 yhatr <- cbind(1,outsamplex) %*% lmout$coefficients 定义为

complexType

新要求是XML中传递的日期可以是空字符串,例如

<xsd:complexType name="IndustryDateTimeType">
  <xsd:sequence>
    <xsd:element name="Date" type="xsd:date"></xsd:element>
    <xsd:element minOccurs="0" name="Time" type="xsd:time"></xsd:element>
  </xsd:sequence>
</xsd:complexType>

其中<startdate></startdate> 的类型为startdate

我想我不能拥有IndustryDateTimeType和String的联合 - 一个简单的类型(允许空字符串)。在这种情况下,complexType似乎不是一个好的解决方案。我尝试了各种组合,但它们不起作用。

此外,我不能要求用户编写像这样的XML元素

xsd:choice

1 个答案:

答案 0 :(得分:0)

很难说这个问题有多少是关于JAXB的,并且希望它是一个字符串,但如果您只想让标记为空,<xsd:sequence>将采用minOccurs

<xsd:complexType name="IndustryDateTimeType">
  <xsd:sequence minOccurs="0">
    <xsd:element name="Date" type="xsd:date"></xsd:element>
    <xsd:element minOccurs="0" name="Time" type="xsd:time"></xsd:element>
  </xsd:sequence>
</xsd:complexType>

您可能最终在JAXB对象中使用null而不是空字符串,但我认为这可能是最佳选择。