XML Children到现有的Xml节点

时间:2014-04-03 17:18:55

标签: xml xsd

我有下面的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>

1 个答案:

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

这将验证您建议的实例,但文本内容将被视为纯文本。