XSD 1.0 如果另一个属性没有值,则将属性设置为 false
XSD 1.0 set attribute to false if another has no value
我正在尝试编写一个模式,其中我有两个属性 ID
和 required
:
ID
可以是任意字符串或空字符串
required
是布尔值 true/false
如果 ID
没有文本,我需要将 required
设置为 false。
我搜索了整个这个地方,发现这可以使用 XSD 1.1 完成,但我无法访问它,因为它在 Visual Studio 2017 中不受支持。是否有替代方案XSD 1.0 ?
这是架构的一部分:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="sizeGroup">
<xs:complexType>
<xs:attribute name="ID" type="xs:string" use="required" />
<xs:attribute name="required" type="xs:boolean" use="required" />
</xs:complexType>
</xs:element>
</xs:schema>
XSDs constrain 或 require XML 文档的属性;他们没有设置属性。
假设您的意思是您希望要求,而不是设置,一个属性具有基于另一个属性值的特定值,不,这样的约束不能在 XSD 1.0 中表达。您将需要 XSD 1.1 断言。
进一步注意: 要求从另一个 XML 组件中已经存在的内容派生属性值通常是设计缺陷的标志。
另见
我正在尝试编写一个模式,其中我有两个属性 ID
和 required
:
ID
可以是任意字符串或空字符串required
是布尔值 true/false
如果 ID
没有文本,我需要将 required
设置为 false。
我搜索了整个这个地方,发现这可以使用 XSD 1.1 完成,但我无法访问它,因为它在 Visual Studio 2017 中不受支持。是否有替代方案XSD 1.0 ?
这是架构的一部分:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="sizeGroup">
<xs:complexType>
<xs:attribute name="ID" type="xs:string" use="required" />
<xs:attribute name="required" type="xs:boolean" use="required" />
</xs:complexType>
</xs:element>
</xs:schema>
XSDs constrain 或 require XML 文档的属性;他们没有设置属性。
假设您的意思是您希望要求,而不是设置,一个属性具有基于另一个属性值的特定值,不,这样的约束不能在 XSD 1.0 中表达。您将需要 XSD 1.1 断言。
进一步注意: 要求从另一个 XML 组件中已经存在的内容派生属性值通常是设计缺陷的标志。