XML模式验证:maxOccurs和minOccurs的使用取决于其他标记

XML模式验证:maxOccurs和minOccurs的使用取决于其他标记,xml,validation,schema,Xml,Validation,Schema,好的,这是我的XML: <?xml version="1.0" encoding="utf-8"?> <FileResults> <FileName>Results.xml</FileName> <DateTimeProcessed/> <TotalCount>10</TotalCount> <SuccessCount>8</SuccessCount>

好的,这是我的XML:

<?xml version="1.0" encoding="utf-8"?>
<FileResults>
    <FileName>Results.xml</FileName>
    <DateTimeProcessed/>
    <TotalCount>10</TotalCount>
    <SuccessCount>8</SuccessCount>
    <FailureCount>2</FailureCount>
    <FailureRecords>
        <Record>
            <Data>
                <!--Some Data-->
            </Data>
            <Error>
                <ErrorCode>00089</ErrorCode>
                <ErrorDescription>Datatype is invalid for field: Authorization_Code</ErrorDescription>
            </Error>
        </Record>
        <Record>
            <Data>
                <!--Some Data-->
            </Data>
            <Error>
                <ErrorCode>00045</ErrorCode>
                <ErrorDescription>Data is missing for field: Customer_Comments</ErrorDescription>
            </Error>
        </Record>
    </FailureRecords>
</FileResults>

Results.xml
10
8.
2.
00089
数据类型对于以下字段无效:授权\ U代码
00045
字段:Customer_Comments缺少数据
现在我的需求是关于这个XML的验证。我有一个XML模式,它在基本验证规则方面做得很好。我还想验证FailureRecords->Record标记的计数。如果FailureCount的标记值为2,则FailureRecords标记下应仅出现两个记录标记。我如何执行这一点


我知道有minOccurs和maxOccurs属性控制XML中标记的出现次数,但是如何从另一个标记(在我的例子中是FailureCount)分配maxOccurs/minOccurs属性值

问题在于不同的逻辑层。XDS文件仅定义与内容无关的结构。根据一个节点的内容,无法检查有多少个节点

您可以在XSL(T)文件中检查这一点,该文件可以计算行数并添加正确的行数