0

私のXMLファイル

    <tns:SampleInfoResponse xsi:schemaLocation="sampleNS test.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="sampleNS">
 <tns:SampleInfo>
  <tns:firstName>String</tns:firstName>
  <tns:lastName>String</tns:lastName>
  <tns:lbn>String</tns:lbn>
  <tns:LSampleDetails>
   <tns:SampleState>String</tns:SampleState>
   <tns:SampleId>String</tns:SampleId>
   <tns:sample>String</tns:sample>
   <tns:status>String</tns:status>
   <tns:statusDate>String</tns:statusDate>
   <tns:SampleId>String</tns:SampleId>
  </tns:LSampleDetails>
  **<tns:LSampleEnrlDetails/>**
  <tns:middleName>String</tns:middleName>
  <tns:element1>String</tns:element1>
  <tns:element2>String</tns:element2>
 </tns:SampleInfo>
</tns:SampleInfoResponse>

MYXSDファイル

    <xsd:schema targetNamespace="sampleNS" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="sampleNS" xmlns="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="SampleInfoResponse" type="tns:SampleInfoResponseV1"/>
 <xsd:complexType name="SampleInfoResponseV1">
  <xsd:sequence>
   <xsd:element name="SampleInfo" type="tns:SampleInfVO" minOccurs="0" maxOccurs="unbounded"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="SampleInfVO">
  <xsd:sequence>
   <xsd:element name="firstName" type="xsd:string" nillable="true"/>
   <xsd:element name="lastName" type="xsd:string" nillable="true"/>
   <xsd:element name="lbn" type="xsd:string" nillable="true"/>
   <xsd:element name="LSampleDetails" type="tns:SampleDetailsVO" nillable="true" maxOccurs="unbounded"/>
   <xsd:element name="LSampleEnrlDetails" type="tns:SampleEnrlDetailsVO" nillable="true" maxOccurs="unbounded"/>
   <xsd:element name="middleName" type="xsd:string" nillable="true"/>
   <xsd:element name="element1" type="xsd:string" nillable="true"/>
   <xsd:element name="element2" type="xsd:string" nillable="true"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="SampleDetailsVO">
  <xsd:sequence>
   <xsd:element name="SampleState" type="xsd:string" nillable="true"/>
   <xsd:element name="SampleId" type="xsd:string" nillable="true"/>
   <xsd:element name="sample" type="xsd:string" nillable="true"/>
   <xsd:element name="status" type="xsd:string" nillable="true"/>
   <xsd:element name="statusDate" type="xsd:string" nillable="true"/>
   <xsd:element name="SampleId" type="xsd:string" nillable="true"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="SampleEnrlDetailsVO">
  <xsd:sequence>
   <xsd:element name="element1" type="xsd:string" nillable="true"/>
   <xsd:element name="element2" type="xsd:string" nillable="true"/>
   <xsd:element name="element3" type="xsd:boolean"/>
  </xsd:sequence>
 </xsd:complexType>
</xsd:schema>

パーサーが文句を言って<tns:LSampleEnrlDetails/>います、XMLファイルは<tns:LSampleEnrlDetails xsi:nil="true"/>有効なファイル専用である必要がありますか?タグ全体を取り出すことで、パーサーも文句を言います。

<tns:LSampleEnrlDetails/>タグに入力するデータがない場合に、このタグが上記のスキーマに従ってXMLファイルを有効にする可能性のあるケースを知りたいです。<tns:LSampleEnrlDetails/>

4

2 に答える 2

1

xsi:nil属性が必要なのは、コンテンツが空の文字列である要素と、コンテンツを持たない (つまり、null である) 要素を区別する方法がないためです。したがって、テキスト コンテンツに関して「帯域外」の属性を使用します。

個人的には、私はそれが好きではなく、より良い代替手段があると思います. 最も簡単な方法は、要素をオプションにして、null コンテンツが含まれている場合は省略します。

于 2010-09-16T19:44:10.647 に答える
-1

以下の属性を使用して有効にします

<tns:LSampleEnrlDetails xsi:nill="true" />
于 2010-09-16T19:14:13.950 に答える