[英]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>
Subject
和Note
為空時的當前輸出XML :
<Notes>
<Note/>
</Notes>
但是,當“ Subject
和“ Note
為空時,我不需要任何輸出。
XSD用於驗證。
XSD指定XML文檔有效的約束。 驗證的輸出是成功還是失敗,如果失敗,通常會有診斷消息解釋約束沖突。 根據XSD元素聲明,當前的輸出XML將有效,就像<Notes/>
。 但是,空文檔將無效,因為它的格式不正確 。
XSLT用於轉換。
XSLT轉換指定從輸入XML到輸出XML的映射。 它使用XPath選擇輸入的各個部分,以便可以有條件地將其包含在輸出中並進行排列。 您所問的語言表明,您可能希望使用XSLT而不是XSD來獲得結果。 XSLT根據用戶提供的模板而不是XSD中給出的約束將輸入轉換為輸出。 **
* 輸出也可以是文本; XSLT 2.0的輸入也可以是文本。
** XSLT 2.0處理器可以識別架構,但不提供自動映射功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.