使用XSD验证的问题

问题描述 投票:1回答:1

我在使用XSD验证XML中的某些唯一约束时遇到问题。 (我正在使用XMLlint进行验证)我具有以下结构:

<xsd:element name="elem" type="elemType" >
      <xsd:unique name="uniqueJob">
        <xsd:selector xpath=".//jobs/job"/>
        <xsd:field xpath="."/>
    </xsd:unique>
</xsd:element>

[作业在<elem>中深层嵌套的复杂类型中(我多次使用<jobs>,这就是为什么我在根元素中定义了约束):

       <xsd:complexType name="jobType">
            <xsd:sequence>
                <xsd:element name="job" minOccurs="0" maxOccurs="3" />
            </xsd:sequence>
        </xsd:complexType>

我现在的问题是:如果我有类似的东西

            <jobs>
                <job>Programmer</job>
                <job>Scientist</job>
            </jobs>

它确实以某种方式无法验证。我从XMLlint收到以下错误:Element 'job': The XPath './/jobs/job' of a field of unique identity-constraint 'uniqueJob' does evaluate to a node of non-simple type.但是“工作”是一种简单的类型。我在这里想念的是什么?在此先感谢!

PS:我想在每个<jobs>标签中实现每个作业都是唯一的。

xml xsd xsd-validation xml-validation
1个回答
0
投票

更改

© www.soinside.com 2019 - 2024. All rights reserved.