我有下面的XML
<Root>
..
<someChild>3</someChild>
..
</Root>
xsd中的相同内容如下所示
<xs:complexType name="RootType">
...
<xs:element name="someChild" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>doc</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="str:secstrtype">
<xs:maxLength value="25"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
....
</xs:complexType>
现在需求已经改变,这个someChild可以有多个值。所以,我在考虑xml如下所示,因此,旧服务器将获取他们过去获得的数据,但新服务器将能够查找子项并执行其他操作。有没有办法处理这类问题?
<Root>
..
<someChild>3
<someChild>
5
<someChild>
9
</someChild>
</someChild>
</someChild>
..
</Root>
答案 0 :(得分:0)
您可以将someChild
的类型更改为mixed
complexType
,但您将无法控制文本数据的类型(以及长度等限制):
<xs:element name="someChild">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element ref="someChild" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
</xs:element>
这将验证您建议的实例,但文本内容将被视为纯文本。