当前位置: 首页 > 知识库问答 >
问题:

XSD验证过程中的错误cvc-plic-type.2.4. d

濮阳宜
2023-03-14

我试图用XSD模式验证一些XML文件,但得到错误cvc复杂类型。2.4。d: 发现以元素“Number”开头的内容无效。此时不需要任何子元素。,行“31”,列“11”。

这涉及从类继承的字段NumberDescription

我已经尝试在

XML文件:

<?xml version="1.0"?>
<Receipt>
  <Items>
    <FiscalItem>
      <Name>Przedmiot 1</Name>
      <ReturnablePackaging>false</ReturnablePackaging>
      <Quantity>1</Quantity>
      <PTU>A</PTU>
      <OriginalPrice>1.0</OriginalPrice>
      <Price>1.0</Price>
    </FiscalItem>
    <FiscalItem>
      <Name>Przedmiot 2</Name>
      <ReturnablePackaging>false</ReturnablePackaging>
      <Quantity>1</Quantity>
      <PTU>B</PTU>
      <OriginalPrice>1.0</OriginalPrice>
      <Price>5.0</Price>
    </FiscalItem>
  </Items>
  <Tedners>
    <FiscalTender>
      <Type>CASH</Type>
      <Amount>5.0</Amount>
    </FiscalTender>
    <FiscalTender>
      <Type>CREDITCARD</Type>
      <Amount>5.0</Amount>
    </FiscalTender>
  </Tedners>
  <!-- VVV THIS IS LINE VVV -->
  <Description>
    <Value>180</Value>
  </Description>
  <Number>
    <Value>12345</Value>
  </Number>
</Receipt>

XSD文件:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="Receipt" nillable="true" type="Receipt" />
  <xs:complexType name="Receipt">
    <xs:complexContent mixed="false">
      <xs:extension base="FiscalDocumentBase">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="Number" type="ReceiptNumber" />
          <xs:element minOccurs="0" maxOccurs="1" name="Description" type="ReceiptDescription" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="FiscalDocumentBase" abstract="true">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" nillable="true" name="Items" type="ArrayOfFiscalItem" />
      <xs:element minOccurs="0" maxOccurs="unbounded" nillable="true" name="Tedners" type="ArrayOfFiscalTender" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfFiscalItem">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="FiscalItem" nillable="true" type="FiscalItem" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="FiscalItem">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:string" />
      <xs:element minOccurs="1" maxOccurs="1" name="ReturnablePackaging" type="xs:boolean" />
      <xs:element minOccurs="1" maxOccurs="1" name="Quantity" type="xs:decimal" />
      <xs:element minOccurs="0" maxOccurs="1" name="PTU" type="xs:string" />
      <xs:element minOccurs="1" maxOccurs="1" name="OriginalPrice" type="xs:decimal" />
      <xs:element minOccurs="1" maxOccurs="1" name="Price" type="xs:decimal" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfFiscalTender">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="FiscalTender" nillable="true" type="FiscalTender" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="FiscalTender">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="Type" type="FiscalTenderType" />
      <xs:element minOccurs="1" maxOccurs="1" name="Amount" type="xs:decimal" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="FiscalTenderType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="CASH" />
      <xs:enumeration value="CREDITCARD" />
      <xs:enumeration value="CHECK" />
      <xs:enumeration value="BOND" />
      <xs:enumeration value="CREDIT" />
      <xs:enumeration value="OTHER" />
      <xs:enumeration value="VOUCHER" />
      <xs:enumeration value="ACCOUNT" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="PrintableText">
    <xs:simpleContent>
      <xs:extension base="xs:string" />
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="ReceiptNumber">
    <xs:simpleContent>
      <xs:extension base="PrintableText" />
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="ReceiptDescription">
    <xs:simpleContent>
      <xs:extension base="PrintableText" />
    </xs:simpleContent>
  </xs:complexType>
</xs:schema>

编辑:删除编号字段将导致验证通过。


共有1个答案

荀辰钊
2023-03-14

好啊所以我的朋友发现了这个问题。在XSD模式中,元素的顺序应该不同。

原件:

...
<xs:element minOccurs="0" maxOccurs="1" name="Number" type="ReceiptNumber" />
<xs:element minOccurs="0" maxOccurs="1" name="Description" type="ReceiptDescription" />
...

固定:

...
<xs:element minOccurs="0" maxOccurs="1" name="Description" type="ReceiptDescription" />
<xs:element minOccurs="0" maxOccurs="1" name="Number" type="ReceiptNumber" />    
...
 类似资料:
  • 我正在尝试根据XML模式验证XML文档。 这是我的架构: 这是我的XML文档: 现在,当我验证文档(通过Eclipse)时,我得到以下消息: 无效。错误-第18,21行:org.xml.sax.SAXParseException;行号:18;列号:21;CVC-complex-type2.4.a:发现以元素“puiss”开头的内容无效。应为“{Puissance}”之一. 错误-第69,9行:or

  • 我有以下xml: 我在网上验证了xml,它的格式很好。接下来我做了架构: 当我尝试在线验证时,会出现以下错误:http://www.utilities-online.info/xsdvalidation/?save=72595340-b1e9-4061-a655-c6cfb9cdac44-XSD验证#。USIxpqw1pi点击按钮根据xsd验证xml并查看所有错误。有人知道如何毫无差错地解决这个问

  • 我没有编写C++代码,因为我的首要任务是创建有效的xml和XSD。 xml: XSD: 为了验证,我转到:https://www.freeformatter.com/xml-validator-xsd.html 错误:s4s-att-invalid-value:元素“Element”中“type”的属性值无效。记录原因:cvc-datatype-valid.1.2.1:“xs:”不是“QName”

  • 我是XML验证的新手,我遇到了一个我不明白的问题。我使用Python库根据我使用MS XSD工具生成的XSD文件验证XML文件。在创建了许多工作正常的XSD模式后,我在最新的XSD中遇到了以下问题 原因:位置1处标记为“app1:displayname”的意外子级。需要标记mstns:displayname。 架构: 实例: premiere 路径:/manifest:mediaManifest/

  • 我正在向 Ping Federate 发送 SAML 响应。如果 SAML 响应包含 SAML 属性,则它可以正常工作,而如果 SAML 响应不包含 SAML 属性,则会引发以下错误: 响应XML无效。错误:[error: cvc-plic-type.2.4c:预期元素'Attribute@urn: oasis: name: tc: SAML: 2.0: assertionEncryptedAtt

  • 问题内容: 我正在使用springs源工具套件。我在weblogic.xml文件中遇到错误- 我的weblogic.xml看起来像这样 错误显示在标签的开头。 问题答案: 将名称空间更改为上述名称空间。