检查元素是否包含具有已定义属性的子元素

时间:2016-03-09 12:17:17

标签: xml xsd

我想检查我的Application属性是否Option名为ServerServerPort的孩子,LDAP属性{{1} }和LDAPUsername

以下是我的代码示例:

LDAPPassword

1 个答案:

答案 0 :(得分:3)

XSD 1.0无法强制执行此类约束。

您的选择:

  1. 重新设计XML:

    <MonitoringApplication>
      <Configuration>
        <Application>
          <Server>http://localhost</Server>
          <ServerPort>9000</ServerPort>
        </Application>
    
        <LDAP>
          <LDAPUsername>azerty</LDAPUsername>
          <LDAPPassword>password</LDAPPassword>
        </LDAP>
      </Configuration>
    </MonitoringApplication>
    

    您&#39; 11   然后我可以用基本的方式来表达你的约束   内容模型术语。您甚至可以保留@value属性设计;移动   元素名称的@name属性值是最重要的部分。

  2. 检查XSD之外的约束。

  3. 使用XSD 1.1断言。

  4. 选项#1是从XML设计角度出发的正确方法。