我有一个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"/>
还是有其他替代方法?
答案 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>
希望这会有所帮助!