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

Xml 检查元素是否包含具有已定义属性的子元素,xml,xsd,Xml,Xsd,我想检查我的应用程序属性是否具有名为服务器和服务器端口的选项子项,与LDAPUsername和LDAPPassword的LDAP属性相同 下面是我的代码示例: <MonitoringApplication> <Configuration> <Application> <Option name="Server" value="http://localhost" /> <Option name="ServerP

我想检查我的
应用程序
属性是否具有名为
服务器
服务器端口
选项
子项,与
LDAPUsername
LDAPPassword
LDAP
属性相同

下面是我的代码示例:

<MonitoringApplication>
  <Configuration>
    <Application>
      <Option name="Server" value="http://localhost" />
      <Option name="ServerPort" value="9000" />
    </Application>

    <LDAP>
      <Option name="LDAPUsername" value="azerty" />
      <Option name="LDAPPassword" value="password" />
    </LDAP>
  </Configuration>
</MonitoringApplication>

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

您的选择:

  • 重新设计XML:

    <MonitoringApplication>
      <Configuration>
        <Application>
          <Server>http://localhost</Server>
          <ServerPort>9000</ServerPort>
        </Application>
    
        <LDAP>
          <LDAPUsername>azerty</LDAPUsername>
          <LDAPPassword>password</LDAPPassword>
        </LDAP>
      </Configuration>
    </MonitoringApplication>
    
    
    http://localhost
    9000
    法语键盘
    密码
    
    你会 然后,您就可以使用基本 内容模型术语。您甚至可以保留
    @value
    属性设计;移动 元素名称的
    @name
    属性值是最重要的部分

  • 检查XSD之外的约束

  • 使用XSD1.1断言

  • 从XML设计的角度来看,选项1是正确的选择。