Xsd 如何限制属性上的父级?
看一看 现在在attribute.xsd中定义了一个性别属性。但据我所知,只要family.xsd有anyAttribute,我就可以使用这个属性Xsd 如何限制属性上的父级?,xsd,Xsd,看一看 现在在attribute.xsd中定义了一个性别属性。但据我所知,只要family.xsd有anyAttribute,我就可以使用这个属性 有没有可能根据父项的名称将性别属性限制为某个父项?我对XML技术的了解相当简单,因此对此要小心谨慎 您可以使用性别(男性|女性)来代替其他属性,因为它是语法正确的XML 但是,如果要检查XML是否有效且格式正确,则需要编写DTD或最好是模式文档,以检查允许在何处使用性别属性通常,只有在特别定义了复杂类型以允许所需属性时,才允许使用属性。另一方面,通常
有没有可能根据父项的名称将性别属性限制为某个父项?我对XML技术的了解相当简单,因此对此要小心谨慎 您可以使用性别(男性|女性)来代替其他属性,因为它是语法正确的XML
但是,如果要检查XML是否有效且格式正确,则需要编写DTD或最好是模式文档,以检查允许在何处使用性别属性通常,只有在特别定义了复杂类型以允许所需属性时,才允许使用属性。另一方面,通常只有当您希望在这个复杂类型中允许任何属性(可能有名称空间限制)时才使用
我认为这个问题可以用两种不同的方式来解释
,但实际上只允许某些类型的属性
,但不允许使用某个属性
上的名称空间属性来实现。名称空间
的默认值是##any
,它允许来自任何名称空间或没有名称空间的属性。而不是任何你可以使用的
##other
,它允许任何名称空间属性,但不允许属于架构的目标名称空间的属性
或
允许名称空间的URI的空白分隔列表。此列表还可以包含通配符##targetNamespace
(允许来自架构的目标命名空间的属性)和##local
(允许不带命名空间的属性)
不允许只有没有名称空间的属性
如果架构具有目标命名空间,则所有全局定义的属性都属于该目标命名空间。因此,w3schools的示例实际上似乎是不正确的,因为他们在具有目标名称空间的模式中全局定义了属性gender
,但使用它时没有名称空间前缀(默认名称空间不适用于属性)
案件2
这可以通过
实现。不能包括带有use=“违禁”
的属性。然而,我从未调查过当
元素存在时是否允许使用这样的属性定义。在全局属性定义中不允许使用属性,
,因此以这种方式不可能全局禁止使用属性。我使用
解决了这个问题,它允许您重新定义类型和组。face palm,对不起,我浏览了W3C链接,很快意识到它不是XMl教程。