2009-07-06 43 views
2

可以說我有一個xsd模式,並且我有幾個<註釋/ >元素,其中有<文檔/ >元素。如果我想在<文檔/ >元素中放置示例xml,是否應該轉義示例xml?xsd文檔註釋中的xml應該如何轉義?

例如爲:

<annotation> 
    <documentation>Example Xml: &lt;element&gt;some text&lt;/element&gt;</documentation> 
</annotation> 

或:

<annotation> 
    <documentation>Example Xml: <element>some text</element></documentation> 
</annotation> 

XMLSPY 2009年似乎嘗試驗證示例XML,在這種情況下是綠洲8.1,我沒有寫,和失敗。如果我轉義XML,XML Spy的模式顯示視圖不會隱藏lt;和& gt ;.

這似乎是正確的做法是包括未轉義的XML。 XML In A Nutshell Third Edition顯示了一個示例,其中有一個xsd框中的錨標記,但並不特別建議在包含正在使用的模式示例的文檔情況下做什麼。

回答

6

妥協:讓示例未經轉義,但將它們包裝在<![CDATA[ ... ]]>區塊中。這應該防止XML Spy嘗試驗證您的示例而不要求它們被轉義。

<annotation> 
    <documentation><![CDATA[Example Xml: <element>some text</element>]]></documentation> 
</annotation> 
+1

這比逃避簡單。 – 2009-07-06 14:44:17

1

該元素允許任何格式良好的XML內容進入,所以是的,第二個例子也是正確的。

雖然XML Schema定義沒有詳細介紹元素,但我看過的幾個文檔使用HTML來格式化文檔。我也可以考慮在裏面使用C#XML的cocumentation-line註釋。因此,雖然您可以使用任意格式良好的XML內部,但我會建議不要這樣做 - 因爲使用XSD的某些自動文檔工具可能會窒息其中。相反,我會建議使用<![CDATA[來包裝文檔,它可以讓你寫小於符號和&符號。用]]>結束您的CDATA部分。