Jak wykreślić blok znaczników w XML?
Tzn. jak mogę wykomentować <staticText>
i wszystko wewnątrz niego, w poniższym kodzie?
<detail>
<band height="20">
<staticText>
<reportElement x="180" y="0" width="200" height="20"/>
<text><![CDATA[Hello World!]]></text>
</staticText>
</band>
</detail>
Mógłbym użyć <!-- staticText-->
ale to'tylko dla pojedynczych znaczników (z tego co wiem), jak //
w Javie i C. Chciałbym czegoś bardziej podobnego do tego, jak /** comment **/
może być użyte w Javie i C, więc mogę wykomentować dłuższe bloki kodu XML.
Możesz użyć tego stylu komentarza w wielu liniach (który istnieje również w HTML)
<detail>
<band height="20">
<!--
Hello,
I am a multi-line XML comment
<staticText>
<reportElement x="180" y="0" width="200" height="20"/>
<text><![CDATA[Hello World!]]></text>
</staticText>
-->
</band>
</detail>
Jeśli pytasz, bo dostałeś błędy ze składnią <!!-- -->
, to najprawdopodobniej chodzi o sekcję CDATA (a w niej część ]]>
), która następnie znajduje się w środku komentarza. To powinno nie robić różnicy, ale ideał i świat rzeczywisty mogą być czasami bardzo odległe od siebie (szczególnie jeśli chodzi o przetwarzanie XML).
Spróbuj też zmienić ]]>
:
<!--detail>
<band height="20">
<staticText>
<reportElement x="180" y="0" width="200" height="20"/>
<text><![CDATA[Hello World!]--><!--]></text>
</staticText>
</band>
</detail-->
Kolejna rzecz, która przychodzi mi do głowy: Jeśli treść twojego XML gdzieś zawiera dwa myślniki, komentarz natychmiast się tam kończy:
<!-- <a> This is strange -- but true!</a> -->
--------------------------^ comment ends here
To dość częsta pułapka. Została ona odziedziczona po sposobie, w jaki SGML obsługuje komentarze. (Przeczytaj specyfikację XML na ten temat)