跨模式版本的XML属性
我有以下情况: 产品有两个版本:产品v1.0和产品v1.1 v1.0具有成功验证以下xml的架构:跨模式版本的XML属性,xml,xsd,Xml,Xsd,我有以下情况: 产品有两个版本:产品v1.0和产品v1.1 v1.0具有成功验证以下xml的架构: <Root> <Tag Name="Tag1"> </Root> <Root> <Tag Name="Tag1" ID="1"> <Root> v1.1具有成功验证以下xml的架构: <Root> <Tag Name="Tag1"> </Root> <Root&g
<Root>
<Tag Name="Tag1">
</Root>
<Root>
<Tag Name="Tag1" ID="1">
<Root>
v1.1具有成功验证以下xml的架构:
<Root>
<Tag Name="Tag1">
</Root>
<Root>
<Tag Name="Tag1" ID="1">
<Root>
新版本具有新的xml属性“ID”,无法使用v1.0中的xml架构成功验证v1.1中的xml。
对于这种情况,有没有解决方案?XSD的1.0版无法验证包含意外属性的XML文档,因此正在发挥作用 您可能已经为将来使用
XSD:any
或XSD:anyAttribute
对v1.0 XSD进行更新建立了一些规定。然而,这样的解决方案必然会破坏严格指定接口的目的。有一种反对使用这种逃逸机制的观点认为,灵活但冻结的机制不如精确进化的机制,但对这些权衡的评估在这里是无关紧要的,因为您已经承诺使用没有这种逃逸机制的XSD
考虑到您已经承诺使用严格类型的接口,您必须面对这样一个事实:如果保持不变,您的旧软件/服务依赖于旧XSD,并且不能接受新的XML
您可能会考虑的是,使新属性是可选的(如果可能的话),这样您的旧XML将继续对您的新XSD有效。
< P>您的XSD的1版本是通过无法验证包含意外属性的XML文档来完成它的工作的。 您可能已经为将来使用XSD:any
或XSD:anyAttribute
对v1.0 XSD进行更新建立了一些规定。然而,这样的解决方案必然会破坏严格指定接口的目的。有一种反对使用这种逃逸机制的观点认为,灵活但冻结的机制不如精确进化的机制,但对这些权衡的评估在这里是无关紧要的,因为您已经承诺使用没有这种逃逸机制的XSD
考虑到您已经承诺使用严格类型的接口,您必须面对这样一个事实:如果保持不变,您的旧软件/服务依赖于旧XSD,并且不能接受新的XML
您可能会考虑的是,使新属性是可选的(如果可能的话),这样您的旧XML将继续对您的新XSD有效。
您能进一步详细说明您的用例吗?我猜想标准的解决方案是向文档添加xmlns
属性,这些属性指示每个文档使用的确切模式版本的URI。您能否进一步详细说明您的用例?我猜想标准的解决方案是向文档添加xmlns
属性,这些属性指示每个文档使用的确切模式版本的URI。您能否进一步详细说明您的用例?我猜想标准的解决方案是向文档添加xmlns
属性,这些属性指示每个文档使用的确切模式版本的URI。