继此tutorial我将我的733行模式重构为16个独立的文件或子模式,每个文件或子模式都有其自己的命名空间。现在顶级模式只有77行。计划是使用这些子模式构建其他顶级模式。使用XSLT自动生成XML模式
问题是,大多数顶级模式都非常相似,只是在一些低级别的细节上有所不同。例如,当一个顶级架构支持全部PaymentMethodType
(参见tutorial)时,另一个顶级架构可能仅支持VISA和MasterCard。目前,我创建顶级模式的方法涉及相当多的重复。例如,我目前创建支持VISA和MasterCard的顶级架构的方法将涉及重复Main.xsd
和OrderType.xsd
,但是定制CommonTypes.xsd
并重新使用CustomerTypes.xsd
。 (因为我的实际模式更长,所涉及的重复次数更多。)
我觉得这种重复是不可接受的,主要是因为它引入了维护挑战,即我将不得不维护具有不同名称的任意数量的相同子模式。
我想知道的是,如果有一种方法不通过某种类型的配置文件(XSLT或许?)自动生成模式,以避免重复子模式。
而且,是它所有的子模式来声明相同的目标命名空间在此情况下(就像XML架构命名空间xs
很好的做法,但定制子模式声明不同的命名空间?
我已经充分考虑了这种情况,但从来没有设计出这样的优雅方法。请关注此线程。 –
在这种情况下,您可能还需要关注以下主题: http://www.oxygenxml.com/pipermail/oxygen-user/2012-November/004455.html – Olumide