检查元素是否包含具有已定义属性的子元素
Check if an element contains child with defined attribute
我想检查我的 Application
属性是否有 Option
个子项,名称为 Server
和 ServerPort
,LDAP
属性与 LDAPUsername
和 LDAPPassword
.
这是我的代码示例:
<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>
你会
然后可以使用 basic 简单地表达你的约束
内容模型术语。您甚至可以保留 @value
属性设计;移动
元素名称的 @name
属性值是最重要的部分。
检查 XSD 之外的约束。
使用XSD 1.1断言。
从 XML 设计角度来看,选项 #1 是正确的方法。
我想检查我的 Application
属性是否有 Option
个子项,名称为 Server
和 ServerPort
,LDAP
属性与 LDAPUsername
和 LDAPPassword
.
这是我的代码示例:
<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>
你会 然后可以使用 basic 简单地表达你的约束 内容模型术语。您甚至可以保留
@value
属性设计;移动 元素名称的@name
属性值是最重要的部分。检查 XSD 之外的约束。
使用XSD 1.1断言。
从 XML 设计角度来看,选项 #1 是正确的方法。