RelaxNG中的嵌套选择

时间:2016-09-07 22:49:46

标签: python xml lxml xml-validation relaxng

我想在relaxNG中使用组元素进行嵌套选择。由于relaxNG不支持条件语句,因此我必须将元素组合在一起,以获得True与False的值。我不能使用紧凑的relaxNG,因为lxml(python库)不支持它,元素不会按顺序排列,我需要交错。我想要实现的是这样的。

if A is True: 
    do nothing.
else:
    if B is True: 
       do nothing
    else: 
       2 more elements appear
    if C is True: 
       do nothing
    else: 
       2 more elements appear 

我目前正在使用group with group将元素组合在一起。如您所见,B和C嵌套在A中。当我使用

<choice>
    A - True
    <group>
        <interleave> 
        A - False
        <choice> 
           B - True
           <group>
               <interleave> 
               B - False, two elements appear
               <interleave> 
           </group>
        </choice>
        <choice>
           C - True
           <group>
               <interleave> 
               C - False, two elements appear
               <interleave> 
           </group>
         </choice>
         </interleave>
    </group>
</choice>

目前,该代码给出了错误,指出Element有额外的内容。我认为这是交错问题。但我不知道如何实现这一结果。

0 个答案:

没有答案