具有多个名称空间的XML文件-混合时如何定义有效位置

问题描述 投票:0回答:1

我有一个看起来像这样的XML文件:

<?xml version="1.0" encoding="UTF-8"?>
<POSLog xmlns="http://www.nrf-arts.org/IXRetail/namespace/" xmlns:FB="http://blabla.com"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  <Transaction>
    <RetailTransaction>
      ...
      <FB:Foobar>Allowed here</FB:Foobar>
      ...
    </RetailTransaction>
    <FB:Foobar>Not allowed here</FB:Foobar>
    ...
  </Transaction>
</POSLog>

POSLog / IXRetail是行业标准,我没有(合理的)方法来更改我收到的XSD或XML。供应商提供带有自定义附加名称空间(示例中为FB)的XML文件。他们还提供了一个XSD文件,该文件定义了很多这样的元素:

<xs:element name="Foobar" type="xs:string"/>

不幸的是,两个名称空间之间没有连接,但是实际上,这些附加元素仅在某些地方可以在POSLog中使用(请参见示例)。

是否有一种为“ FB”元素创建XSD的方式,该方式限制了IXRetail名称空间中可以使用它们的位置。

总结:

我有

  1. 上方的XML文件
  2. POSLog XSD
  3. 供应商XSD(FB

我唯一能影响的是3

<3]中定义的元素旨在<>(即为2中的某些元素提供附加信息)。不幸的是,目前的情况是无法使用XSD强制/验证3中的元素可以在2中使用的位置。我正在寻找一种基本扩展 2)的方法。

我有一个看起来像这样的XML文件:

xml xsd
1个回答
0
投票

这些其他元素仅在某些地方可以在POSLog中使用

© www.soinside.com 2019 - 2024. All rights reserved.