XSD多个版本示例

时间:2016-01-07 19:20:45

标签: xml xsd

我正在开发一个接收XML请求并提供响应的应用程序。 XSD架构用于帮助验证这些请求并定义XML请求(和响应)的结构。

之前我从未使用过XSD架构,而且谷歌搜索没有证明有用!

XML旧请求的一大块是:

  <Products id="847DD">
    <ProductType>ASD LFGA</ProductType>
    <ProductType>DDD DDD2</ProductType>
    <ProductType>KLO O947</ProductType>
  </Products>

XSD的部分如下:

<xs:complexType name="Products">
       <xs:sequence>
          <xs:element name="ProductType" type="xs:string" maxOccurs="unbounded">
        </xs:element>
    </xs:sequence>
    <xs:attribute name="id" type="xs:string" use="required"/>
</xs:complexType>

现在我被要求扩展产品类型元素以包含三个子元素:所以新XML将如下所示:

  <Products id="0002N">
<ProductType>
             <Ind>0</Ind>
             <ProductTypeCode>KKK</ProductTypeCode >
             <lob>AAW</lob>
</ProductType>
<ProductType>
             <Ind>0</Ind>
             <ProductTypeCode>DD98</ProductTypeCode >
             <lob>SSE</lob>
</ProductType>
<ProductType>
             <Ind>K</Ind>
             <ProductTypeCode>LKO9</ProductTypeCode >
             <lob>XSD</lob>
</ProductType>
  </Products>

我挂断的是架构的版本控制。这是架构的1.0版。我们不确定有多少客户正在使用此XML请求服务。因此,我们不能简单地抛弃1.0版本并使用2.0版本。

已要求保持与旧的结构化XML请求的向后兼容性。

我觉得我可以掌握这方面的编程(Java)方面,稍后在XSD架构中有一个版本属性,我可以依靠它来弄清楚应该用什么java逻辑来读取XML文档。 / p>

如何正确版本XSD?我是否必须制作全新的XSD?或者我可以在这里包含新结构吗?我知道我可能需要将ProductType从元素转换为另一个ComplexType(仅适用于V2),我假设我可以嵌套那些? (ComplexType中的ComplextType)?

0 个答案:

没有答案