Nous créons un système fournissant des données à un schéma XML. Certains des champs de ce schéma doivent être conservés, car ils seront analysés par le système d'extrémité dans une mise en page Word doc. Pour ce faire, nous utilisons des balises <![CDATA[Some formatted text]]>
dans le fichier App.Config, puis nous l'insérons dans un champ de propriété approprié dans une classe générée par xsd.exe à partir de notre schéma. Idéalement, le formatage ne serait pas un problème, mais malheureusement c'est juste comment le système fonctionne.Arrêter les balises CDATA d'être échappées en sortie lors de l'écriture au format XML en C#
La section App.Config se présente comme suit:
<header>
<![CDATA[Some sample formatted data]]>
</header>
L'affectation de données se présente comme suit:
HeaderSection header = ConfigurationManager.GetSection("header") as HeaderSection;
report.header = "<[CDATA[" + header.Header + "]]>";
Enfin, la sortie de Xml est traitée comme suit:
xs = new XmlSerializer(typeof(report));
fs = new FileStream (reportLocation, FileMode.Create);
xs.Serialize(fs, report);
fs.Flush();
fs.Close();
Cela devrait en théorie produire dans le Xml final une section qui contient des informations avec des balises CDATA. Cependant, les parenthèses inclinées sont en train d'être converties en <
et >
J'ai examiné les moyens de désactiver Outout Escaping, mais jusqu'à présent, je ne trouve que des références aux feuilles XSLT. J'ai aussi essayé @"<[CDATA["
avec les cordes, mais encore une fois pas de chance.
Toute aide serait appréciée!
Pour obtenir la mise en forme de code (qui permet '<' etc) en ligne dans un paragraphe, vous pouvez utiliser des backquotes (comme dans mon édition) – AakashM