XSD中不尊重minOccurs=0

  • 本文关键字:minOccurs XSD xml xsd
  • 更新时间 :
  • 英文 :


我遇到一个错误,其中.xsd中的minOccurs="0"不适用于我的某个元素。

出于安全和清晰的原因,我将对该模式进行简单的总结。该问题已被隔离为">issueAddedOrReinstatedDate"是必需的,但在数据库中为null。

我现在的问题是添加minOccurs=0并不能解决需求问题。


<xs:complexType name="issueType">
<xs:sequence>
<xs:element minOccurs="0" name="issueAddedOrReinstatedDate" type="tns:commonDateType">
<xs:annotation>
<xs:documentation>Appeal: Issue Added/Reinstated Date (Indv Appeal Issues)</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
***
Rest of the relevant code in increasing abstracted levels
***
<xs:complexType name="listOfIssueTypesType">
<xs:sequence>
<xs:element maxOccurs="500" name="issueType" type="tns:issueType">
<xs:annotation>
<xs:documentation>Represents a single issue being appealed</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
----------------------------------------------------
<xs:complexType name="individualAppealSpecificDetailsType">
<xs:sequence>
<xs:element minOccurs="0" name="listOfIssueTypes" type="tns:listOfIssueTypesType">
<xs:annotation>
<xs:documentation>The list of issues being appealed</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
-------------------------------
<xs:complexType name="getAppealResponseType">
<xs:complexContent>
<xs:extension base="tns:abstractResponseType">
<xs:sequence>
<xs:element minOccurs="0" name="individualAppealSpecificDetails"
type="tns:individualAppealSpecificDetailsType">
<xs:annotation>
<xs:documentation>A single object representing the distinct set of fields which apply to an Individual Appeal only</xs:documentation>
</xs:annotation>    
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
----------------------------------
<xs:complexType name="getAppeal">
<xs:sequence>
<xs:element minOccurs="0" name="request" type="tns:getAppealRequestType"></xs:element>
</xs:sequence>
</xs:complexType>
------------------------------------------
<xs:complexType name="getAppealRequestType">
<xs:complexContent>
<xs:extension base="tns:abstractRequestType">
<xs:sequence>
<xs:element name="appealCaseNumber" type="tns:appealCaseNumberType">
<xs:annotation>
<xs:documentation>Appeal: Case #</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
-------------------------------
<xs:complexType name="getAppealResponse">
<xs:sequence>
<xs:element minOccurs="0" name="response" type="tns:getAppealResponseType"></xs:element>
</xs:sequence>
</xs:complexType>
--------------------------------------
<xs:element name="getAppealResponse" type="tns:getAppealResponse"></xs:element>

只需补充:原始错误消息是:

cvc模式有效:值"对于类型"commonDateType"的模式"\d{2}/\d{2}/\d{4}"不是方面有效。

是否该值没有被视为null,而是被视为空值?

MinOccurs=0表示元素可以省略,并不意味着它可以存在但为空。

由于错误消息引用了commonDateType,我不知道您为什么选择向我们显示模式中没有提到该类型的部分,但很明显,您有一个空元素,其中元素类型不允许它为空。

最新更新