Кодирование XML CDATA

Преимущества

  • скомпилированы и проверены во время запуска приложения
  • проще в обслуживании, чем строковые литералы, встроенные в ваш код
  • HQL и нативные SQL-запросы можно использовать и заменять без изменения кода (нет необходимости повторной компиляции кода)

Недостатки

  • статические
  • Отображение набора результатов с нативными SQL-запросами иногда громоздко

Итак, я думаю, вам определенно следует предпочесть именованные запросы строковым литералам в вашем коде. Когда вам нужно какое-то динамическое создание запроса во время выполнения, вы должны взглянуть на Hibernate Criteria API . Критерии Hibernate не всегда просты и интуитивно понятны в использовании, но вы обязательно должны использовать их вместо генерации строк запросов во время выполнения.

HTH

7
задан 9 June 2009 в 09:44
поделиться

3 ответа

Не использовать InnerText : используйте XmlDocument.CreateCDataSection :

using System;
using System.Xml;

public class Test
{
    static void Main()
    {
        XmlDocument doc = new XmlDocument();
        XmlElement root = doc.CreateElement("root");
        XmlElement email = doc.CreateElement("email");
        XmlNode cdata = doc.CreateCDataSection("test@test.com");

        doc.AppendChild(root);
        root.AppendChild(email);
        email.AppendChild(cdata);

        Console.WriteLine(doc.InnerXml);
    }
}
11
ответ дан 6 December 2019 в 09:21
поделиться

С XmlDocument :

    XmlDocument doc = new XmlDocument();
    XmlElement email = (XmlElement)doc.AppendChild(doc.CreateElement("email"));
    email.AppendChild(doc.CreateCDataSection("test@test.com"));
    string xml = doc.OuterXml;

или с XElement :

    XElement email = new XElement("email", new XCData("test@test.com"));
    string xml = email.ToString();
8
ответ дан 6 December 2019 в 09:21
поделиться

См. XmlDocument :: CreateCDataSection Method для получения информации и примеров создания узлов CDATA в XML-документе

1
ответ дан 6 December 2019 в 09:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: