![]() |
1
5
自从 RelaxNG 在阿尼塔克的回答中提到,这里有一个解决方案 轻松(在大多数情况下,这种语言比W3C更好) 模式)。请注意elem定义中的或():
如果我有这个XML文件:
如果我添加XML文件:
我得到了我想要的验证错误(请注意,错误消息 是次优的):
|
![]() |
2
9
不能使用属性,但可以使用子元素…
这样你就可以…
或者…
|
![]() |
3
7
不幸的是,对于XML模式,您不能这样做,我自己也有同样的问题。 我看到它建议如果你需要两个:
然后
|
![]() |
4
2
XSD具有以下抽象类型: http://www.tek-tips.com/viewthread.cfm?qid=1364846 (见tsuji的帖子) 基本上,你给手头的元素 摘要 ,并定义其中的公共属性 确切地 对于所有不同的用例都是相同的(您的示例不需要)。 然后创建两个(或更多)附加的复杂类型,扩展我刚才提到的抽象类型。内 这些 新类型定义了每个用例之间的不同属性集。这就是XSD部分。
最后,您需要添加一个XSI
不是直截了当,而是灵活,正如我们所知:越灵活,事情就越困难。 |
![]() |
5
2
实际上,它 是 可以通过xs:unique或xs:key使用标识约束在xsd 1.0中定义这个。您选择哪一个取决于如何处理没有这两个属性的元素:它们对xs:unique有效,但对xs:key无效。下面的代码示例包含两个变量;请确保删除其中一个变量,否则“更严格的”xs:key优先于xs:unique,即需要两个属性之一。
这将验证以下XML文件:
|
![]() |
6
1
对于稍后讨论这个问题的读者,请注意,可以在XSD 1.1中使用“条件类型分配”或断言来解决这个问题。 |
|
J_Cus504 · 在单匹配语句中使用身份变换和多谓词来沉默节点 4 月前 |
![]() |
surge3333 · 使用PowerShell构建XML 5 月前 |
|
Sandeep · XSLT代码,用于根据条件提取元素值 6 月前 |
|
Reto · XSLT 3.0突发流-如何存储/获取另一个分支的值 6 月前 |
![]() |
Ian Kemp · 如何从SelectXml调用本机XPath函数? 7 月前 |