按照本教程,我将我的 733 行模式重构为 16 个单独的文件或子模式,每个文件或子模式都有自己的命名空间。现在顶级架构只有 77 行。计划是使用这些子模式来构建其他顶级模式。
问题是大多数顶级模式都非常相似,只是在一些低级细节上有所不同。例如,虽然一个顶级架构支持 all PaymentMethodType
(请参阅教程),但另一个顶级架构可能仅支持 VISA 和 MasterCard。目前,我创建顶级模式的方法涉及大量重复。例如,我当前创建仅支持 VISA 和 MasterCard 的顶级模式的方法将涉及复制Main.xsd
and OrderType.xsd
,但要自定义CommonTypes.xsd
和重用CustomerTypes.xsd
. (由于我的实际架构更长,因此涉及更多重复。)
我发现这种重复是不可接受的,主要是因为它引入了维护挑战,即我必须维护任意数量的具有不同名称的相同子模式。
我想知道的是,是否有一种无需通过某种配置文件(也许是 XSLT?)即可自动生成模式的方法,以避免重复子模式。
此外,在这种情况下,所有子模式声明相同的目标命名空间是否是一种好习惯(就像 xml 模式命名空间一样xs
,但自定义子模式声明了单独的命名空间?