【问题标题】:XML Schema Validation: Use of maxOccurs and minOccurs dependant on other tagXML Schema Validation: maxOccurs 和 minOccurs 的使用依赖于其他标签
【发布时间】:2013-09-09 10:10:36
【问题描述】:

好的,这是我的 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>

现在我的要求是关于这个 XML 的验证。我有这个 XML 的架构,它在基本验证规则方面做得很好。我还想验证 FailureRecords->Record 标签的计数。如果 FailureCount 的标签值为 2,那么 FailureRecords 标签下应该只有两个 Record 标签出现。我该如何执行。

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

【问题讨论】:

    标签: xml validation schema


    【解决方案1】:

    问题出在不同的逻辑层上。 XDS 文件仅定义独立于内容的结构。不可能根据一个节点的内容来检查有多少个节点。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-16
      • 2012-02-24
      • 1970-01-01
      • 2019-01-13
      • 1970-01-01
      • 1970-01-01
      • 2011-11-04
      相关资源
      最近更新 更多