XSD:来自不同模式的同名属性

XSD:来自不同模式的同名属性,xsd,Xsd,是否可以为以下xml编写XSD: <list add:type="single" view:type="multi"/> 向不同的模式添加和查看点在哪里?然后,我将使用架构名称来筛选所需的属性值。您将使用三个架构文档来完成此操作 架构文档1将为add的命名空间提供一个targetNamespace,并将声明一个名为“type”的全局属性 模式文档2将为视图的命名空间提供一个targetNamespace,并将声明一个名为“type”的全局属性 模式文档3将导入这两个名称空间。

是否可以为以下xml编写XSD:

<list add:type="single" view:type="multi"/>


向不同的模式添加和查看点在哪里?然后,我将使用架构名称来筛选所需的属性值。

您将使用三个架构文档来完成此操作

  • 架构文档1将为add的命名空间提供一个targetNamespace,并将声明一个名为“type”的全局属性
  • 模式文档2将为视图的命名空间提供一个targetNamespace,并将声明一个名为“type”的全局属性
  • 模式文档3将导入这两个名称空间。它还将声明一个complexType,它有两个属性,这两个属性是使用属性引用“add:type”和“view:type”定义的。元素“list”将属于该类型。您将确保在属性定义的范围中包含xmlns:add=“…”和xmlns:view=“…”命名空间声明

基本上,任何时候需要来自其他名称空间的元素或属性时,都会有另一个带有该名称空间的targetNamespace的模式文档。在这里,该名称空间的元素或属性被全局声明。然后,当您希望在其他一些模式文档中使用这些属性或元素时,1)导入名称空间(xs:import)2)为名称空间声明ns前缀,3)使用ref=“nsprefix:attr_或_elem_name”引用属性或元素。

您将使用三个模式文档来完成此操作

  • 架构文档1将为add的命名空间提供一个targetNamespace,并将声明一个名为“type”的全局属性
  • 模式文档2将为视图的命名空间提供一个targetNamespace,并将声明一个名为“type”的全局属性
  • 模式文档3将导入这两个名称空间。它还将声明一个complexType,它有两个属性,这两个属性是使用属性引用“add:type”和“view:type”定义的。元素“list”将属于该类型。您将确保在属性定义的范围中包含xmlns:add=“…”和xmlns:view=“…”命名空间声明

基本上,任何时候需要来自其他名称空间的元素或属性时,都会有另一个带有该名称空间的targetNamespace的模式文档。在这里,该名称空间的元素或属性被全局声明。然后,当您希望在其他一些架构文档中使用这些属性或元素时,1)导入名称空间(xs:import)2)为名称空间声明一个ns前缀,3)使用ref=“nsprefix:attr\u或\u elem\u name”引用属性或元素。

非常感谢您,我非常感谢您的帮助!我想弄明白这件事真是走到了死胡同。非常感谢你,我真的很感谢你的帮助!我想弄明白这件事,真是走到了死胡同。