1

我正在尝试编写一个模式,其中我有两个属性IDrequired

  • ID可以是任何字符串或空字符串
  • required是布尔值真/假

如果没有文本,我需要设置required为 false 。ID

我在这个地方进行了搜索,发现这可以使用 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>
4

1 回答 1

1

XSD约束要求XML 文档的属性;他们不设置属性。

假设您的意思是您希望require而不是set一个属性具有基于另一个属性值的特定值,不,这样的约束不能在 XSD 1.0 中表达。您将需要 XSD 1.1 断言。

进一步注意:要求从另一个 XML 组件中已经存在的内容派生属性值通常是设计缺陷的标志。

也可以看看

于 2021-03-30T15:16:47.313 回答