我试图用XSD模式验证一些XML文件,但得到错误cvc复杂类型。2.4。d: 发现以元素“Number”开头的内容无效。此时不需要任何子元素。,行“31”,列“11”。
这涉及从类继承的字段Number
和Description
。
我已经尝试在
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>
编辑:删除编号字段将导致验证通过。
好啊所以我的朋友发现了这个问题。在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看起来像这样 错误显示在标签的开头。 问题答案: 将名称空间更改为上述名称空间。