如何在不使用include,import或redefine标记的情况下将多个xsd文件内联到一个文件中?

时间:2017-07-17 10:30:03

标签: xml xsd wsdl

我有4个 xsd 文件,让我们说 A,B,C和D 文件A导入文件B和C,而文件B包含文件D.我如何内联这些文件,以便我只有一个名为A的文件包含所有B,C和D的文件。 这可能吗?

更新 图表标签

文件A

scope.$watch('somevalue', function(value){
   if(value == true){
     scope.title = attrs.title;
   }
});

文件B

<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://example.com/service/a/msg/v1" xmlns:cst="http://example.com/service/common/v1" xmlns:sd="http://example.com/service/a/data/v1" xmlns:sm="http://example.com/service/a/msg/v1" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

文件C

<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://example.com/service/common/v1" xmlns:cst="http://example.com/service/common/v1" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

文件D

<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://example.com/service/common/v1" xmlns:cst="http://example.com/service/common/v1" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

1 个答案:

答案 0 :(得分:1)

您可以剪切并粘贴来自B,C和&amp;的架构标签内的所有内容。 D进入A.然后删除所有导入/包含。

但是如果模式包含不同的targetNamespaces,那么这种方法将不起作用,因为您现在将所有内容放在同一个targetNamespace中。因此,如果您的模式不共享相同的targetNamespace,则无法将它们组合在一起(除非它们是chameleon schemas!)

由于您有多个目标命名空间,因此无法将它们组合到单个文件中。档案B&amp; C可以组合在一起,因为它们共享相同的targetnamespace,但是你可以通过组合其他任何一个来显着地改变模式。

如果您描述了想要将它们组合起来的原因,我可以提供帮助吗?