XSD:复杂类型的默认值作为字符串

时间:2018-12-17 12:46:09

标签: xsd xsd-validation

我有一个xsd模式,例如:

<xs:element name="employee" type="personinfo"/>
<xs:complexType name="personinfo">
  <xs:sequence>
    <xs:element name="firstname" type="xs:string"/>
    <xs:element name="lastname" type="xs:string"/>
  </xs:sequence>
</xs:complexType>

如果数据处理没有问题,它会完美工作:

<employee>
  <firstname>John</firstname>
  <lastname>Smith</lastname>
</employee>

但是,如果数据处理失败,那么数据确实会像这样:

<employee> Data not found </employee>

这也是有效的。我的查询是是否可以给模式定义提供任何默认字符串值,例如:

<xs:element name="employee" type="personinfo" default="Data not found"/>

还是有其他替代方法?

1 个答案:

答案 0 :(得分:1)

如果数据类型混合,则可以使用mixed="true"。您预期以下内容,

<xs:element name="employee" maxOccurs="unbounded" minOccurs="0">
  <xs:complexType mixed="true">
    <xs:sequence>
      <xs:element type="xs:string" name="firstname" minOccurs="0"/>
      <xs:element type="xs:string" name="lastname" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

我使用以下策略找到了它,并使用以下xml数据生成了* .xsd。

<employees>
<employee>
  <firstname>John</firstname>
  <lastname>Smith</lastname>
</employee>

<employee>
data not found
</employee>
</employees>

希望这会有所帮助!