使用 XSD (1.1) 将属性设置为某个值时需要元素

问题描述

我有以下架构 (1.1)。我想要一个架构来检查参数序列是否具有“1”类型的修正参数和“2”类型的可选参数。我使用了替代方案,因为不同的类型具有不同的属性列表。

如何编写断言来检查类型 1 的参数是否是强制性的?

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" elementFormDefault="qualified" vc:minVersion="1.1">
   <xs:element name="rule">
      <xs:complexType>
         <xs:sequence>
            <xs:element name="conditions" maxOccurs="unbounded">
               <xs:complexType>
                  <xs:sequence>
                     <xs:element name="condition" maxOccurs="unbounded" minOccurs="1">
                        <xs:complexType>
                           <xs:sequence>
                              <xs:element name="parameter" maxOccurs="unbounded" minOccurs="1">
                                 <xs:alternative test="@type = '1'" type="typeOne"/>
                                 <xs:alternative test="@type = '2'" type="typeTwo" />
                              </xs:element>
                           </xs:sequence>
                        </xs:complexType>
                     </xs:element>
                  </xs:sequence>
               </xs:complexType>
            </xs:element>
         </xs:sequence>
      </xs:complexType>
   </xs:element>
   <xs:complexType name="typeOne">
      <xs:attribute name="type" type="xs:string" use="required"/>
   </xs:complexType>
   <xs:complexType name="typeTwo">
      <xs:attribute name="type" type="xs:string" use="required" />
   </xs:complexType>
</xs:schema>

我使用了替代方法,因为不同的类型具有不同的属性列表。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...