现在的位置: 首页 > 综合 > 正文

xsi:nil=”true”

2013年08月24日 ⁄ 综合 ⁄ 共 1525字 ⁄ 字号 评论关闭
文章目录

http://www.xmlforasp.net/schemavalidator.aspx

http://www.zvon.org/xxl/XMLSchemaTutorial/Output/ser_over_st0.html

We can override the schema declaration when setting xsi:nil attribute to value "true". The schema must allow this by setting attribute "nillable" to "true" (default value is "false").

Valid document
This document is valid, the element "root" contains the "e1" element.

<root
xsi:noNamespaceSchemaLocation="correct_0.xsd" xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>
  <e1>xxx</e1>

</root>

Valid document
This document is valid too, because the "xsi:nil" attribute overrides element's definition and allows the element to be empty.

<root
xsi:noNamespaceSchemaLocation="correct_0.xsd"
xsi:nil="true" xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
/>

Invalid document
This document is not valid, because when "xsi:nil" is true, the element must be empty (and "root" is not).

<root
xsi:noNamespaceSchemaLocation="correct_0.xsd"
xsi:nil="true" xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>
  <e1>xxx</e1>

</root>

Invalid document
This document is not valid, because the element "root" must have "e1" child and "xsi:nil" has not been set to "true".

<root
xsi:noNamespaceSchemaLocation="correct_0.xsd" xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
/>

Correct XML Schema (correct_0.xsd)

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>

  <xsd:element

name
="root"

nillable
="true">

    <xsd:complexType>

      <xsd:sequence>

        <xsd:element

name
="e1"

type
="xsd:string"/>
      </xsd:sequence>

    </xsd:complexType>

  </xsd:element>

</xsd:schema>

2. Relax NG

There is no such mechanism in Relax NG.

抱歉!评论已关闭.