【发布时间】:2015-11-14 01:36:04
【问题描述】:
我给了
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
targetNamespace="AdditionalAttribute.OtherXSD"
xmlns:o="AdditionalAttribute.OtherXSD"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:element name="Tag" type="o:TagType" />
<xs:complexType name="TagType" />
</xs:schema>
我想写
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
targetNamespace="AdditionalAttribute.MyXSD"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<!-- ? -->
</xs:schema>
所以这变成了有效的 XML:
<?xml version="1.0" encoding="UTF-8"?>
<o:Tag
xmlns:o="AdditionalAttribute.OtherXSD"
xmlns:m="AdditionalAttribute.MyXSD"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
AdditionalAttribute.OtherXSD AdditionalAttribute.OtherXSD.xsd
AdditionalAttribute.MyXSD AdditionalAttribute.MyXSD.xsd
"
m:AdditionalAttribute="Value"
/>
我知道另一个 XSD 中有一个 similar question, that asks how to place an additional attribute to all complex types。答案是否定的。但是,我不是这方面的专家,从那里的答案中我无法推断出特定复杂类型是否可能。我尝试了几件事但没有成功,似乎只有通过 xsd:extension'ing 或 xsd:restriction'ing 复杂类型才有可能,从而派生出一个新类型,这不是我想要的。我想在同一个标签上“合并”属性:
<o:Tag o:...=... />
+ <o:Tag m:...=... />
= <o:Tag o:...=... m:...=... />
这可能吗?如何实现?
【问题讨论】:
标签: xml xsd xml-validation