【发布时间】:2011-01-14 01:02:09
【问题描述】:
由于某种原因,我无法完全让 nillable 与 .Net 架构验证器一起正常工作。我正在尝试找到一种方法使父节点成为可选,但同时防止空节点通过验证器。
这是当前元素验证器:
<xs:element name="Dates" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="From" type="datetime" minOccurs="0" maxOccurs="1" />
<xs:element name="To" type="datetime" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
</xs:element>
我已尝试将 Dates 元素更改为 nillable="false" 但这不起作用 - 一个空节点仍然可以通过验证器。
我还尝试将所有三个元素节点都更改为 nillable="false" - 这对于检测空父节点非常有效,但会导致两个子节点都成为必需节点,而不是保持可选节点。
那么我在这里遗漏了什么吗?是的,我总是可以向它抛出一些代码并使其工作......但我敢打赌,架构声明中的变化将给我我需要的东西。
【问题讨论】:
标签: .net validation xsd