我有一个XML文档,其中包含一系列重复的地址,其实际内容取决于包含的枚举的值。我想这是一种“标记联盟”[或“歧视联盟”?]:
{
<AddressList>
<Address>
<AddressType type="addressEnum" fixed="CanadianAddress"/>
<AddressValue>
<Street type="textstring">123 Yonge Street</Street>
<Province type="provinceEnum" value="Ontario"/>
<PostalCode type="postalCodeType" value="M1N 2O3"/>
</AddressValue>
</Address>
<Address>
<AddressType type="addressEnum" fixed="USAddress"/>
<AddressValue>
<Street type="textstring">456 Front Street</Street>
<State type="stateEnum" value="New York"/>
<ZipCode type="zipCodeType" value="12345"/>
</AddressValue>
</Address>
</AddressList>
}
我不清楚如何表达XML架构[即XSD]用于上述XML。我是否需要一个空的'AddressType','CanadianAddressType'和'USAddressType'都会扩展?如果我有50个地址类型,我需要50个这样的扩展吗?
注意:如果不明显,USAddress的元素不能出现在CanadianAddress枚举之后。同样,CanadianAddress的元素不能出现在USAddress枚举之后。
答案 0 :(得分:1)
可以使用XSD 1.1的alternative组件。然后,您将能够为DF1.merge(DF2, how='outer', right_on=<keys>...)
节点应用类型取决于<AddressValue>
元素的fixed
属性值,所以
AddressType