asp.net - 如何在 XSD 中声明可选日期字段

标签 asp.net xml

我使用 XSD 来验证传入的 XML 元素。 XSD文件

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.rg/2001/XMLSchema"
 xmlns:tns="http://xxxy/ervices/V0" 
targetNamespace="http://xxxy/ervices/V" elementFormDefault="qualified"
attributeFormDefault="unqualified" >

<xs:complexType name="FailType"> 
<xs:sequence>
<xs:element name="ConDt" type="xs:date" minOccurs="0" maxOccurs="1"     nillable="true"/>
  <xs:element name="PreEn" type="xs:string" minOccurs="1" maxOccurs="1"/>
 </xs:sequence>
 </xs:complexType>
 </xs:schema>

我的 XML 文件

<Pat xmlns="http://xxxy/ervices/V">
<ConDt></ConDt>
</Pat>

我收到的元素无效 - 根据其数据类型“http://org/2001/XMLSchema:date,值“”无效' - 字符串 '' 不是有效的日期值。

最佳答案

指定 nillable="true"允许您的实例包含

<ConDt xsi:nil="true"></ConDt>

但它不允许你写

<ConDt></ConDt>

(请不要问我他们在想什么......)

如果你想允许

<ConDt></ConDt>

那么两种可能的方法是

  1. 将其定义为允许 xs:date 或 零长度字符串,或

  2. (我的首选方法)将其定义为列表类型:具有 maxLength="1"的 xs:date 值列表。

关于asp.net - 如何在 XSD 中声明可选日期字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33766869/

相关文章:

c# - 如何在 C# 中处理托管和非托管对象?

java - EditText 永远没有值(value)

c# - 阅读 Stack Overflow RSS 提要

java - 如何将 org.w3c.dom.Document 对象转换为字符串?

java - xml 的文档生成器给出错误

c# - ASP.net 页面只允许在服务器上执行吗?

c# - 使用C#更新多个sql表中的相同列

asp.net - 如何为 ASP.Net 创建准系统 HttpApplication(没有 Webforms 或 MVC)

asp.net - ASP.MVC - View 数据

java - SendKeys 导致 "Leav page"警报