我有一个看起来像这样的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名称空间中可以使用它们的位置。
总结:
我有
FB
)我唯一能影响的是3。
<3]中定义的元素旨在<>(即为2中的某些元素提供附加信息)。不幸的是,目前的情况是无法使用XSD强制/验证3中的元素可以在2中使用的位置。我正在寻找一种基本扩展 2)的方法。
我有一个看起来像这样的XML文件:
这些其他元素仅在某些地方可以在POSLog中使用