簡體   English   中英

當所有子節點都為空時,XSD隱藏父節點

[英]XSD Hide Parent Node When all Child Nodes are Empty

XSD

<xs:element name="Notes" minOccurs="0" maxOccurs="unbounded">
  <xs:complexType>
    <xs:sequence minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Note" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Subject" type="xs:string" minOccurs="0"/>
            <xs:element name="Note" type="xs:string" minOccurs="0"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:element>

SubjectNote為空時的當前輸出XML

<Notes>
   <Note/>
</Notes>

但是,當“ Subject和“ Note為空時,我不需要任何輸出。

XSD和XSLT之間的區別

XSD用於驗證。

  • 輸入 :XML文檔
  • 輸出 :驗證結果

XSD指定XML文檔有效的約束。 驗證的輸出是成功還是失敗,如果失敗,通常會有診斷消息解釋約束沖突。 根據XSD元素聲明,當前的輸出XML將有效,就像<Notes/> 但是,空文檔將無效,因為它的格式不正確

XSLT用於轉換。

  • 輸入 :XML文檔*
  • 輸出 :XML文檔*

XSLT轉換指定從輸入XML到輸出XML的映射。 它使用XPath選擇輸入的各個部分,以便可以有條件地將其包含在輸出中並進行排列。 您所問的語言表明,您可能希望使用XSLT而不是XSD來獲得結果。 XSLT根據用戶提供的模板而不是XSD中給出的約束將輸入轉換為輸出。 **

* 輸出也可以是文本; XSLT 2.0的輸入也可以是文本。

** XSLT 2.0處理器可以識別架構,但不提供自動映射功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM