Например, рассмотрим базу данных pubs, которая включает в себя таблицу authors. Используя XmlDataDocument, вы можете просматривать список авторов как XML-документ и затем применять XSL-трансформацию с помощью элемента управления Xml. Так выглядит полный код, который для этого понадобится:
// Создать объекты ADO.NЕТ.
SqlCorinection Con = new SqlConnection(connectionString);
string SQL = "SELECT * FROM authors WHERE city='Oakland'";
SqlCommand cmd = new SqlCommand(SQL, con);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataSet ds = new DataSet("AuthorsDataSet");
// Извлечь данные.
con.Open();
adapter.Fill(ds, "AuthorsTable");
con.Close();
// Создать XmlDataDocument - обертку для DataSet.
XmlDataDocument dataDoc = new XmlDataDocument(ds);
// Отобразить данные XML (с помощью XSLT) в элементе управления Xml.
XmlControl.Document = dataDoc;
XmlControl.TransformSourсе = "authors.xslt";
А вот таблица стилей XSL, выполняющая преобразование XML в готовый к отображению НТМL-код:
<?xml vers1оn="1.0" encoding="UTF-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="AuthorsDataSet">
<h1>The Author List</h1>
<xsl:apply-templates select="AuthorsTable"/>
<i>Created through XML and XSLT</i>
</xsl:template>
<xsl:template match="AuthorsTable">
<p><b>Name: </b><xsl:value-of select="au_lname"/>,
<xsl:value-of select="au_fname"/><br/>
<b>Phone: </b> <xsl:value-of select="phone"/></p>
</xsl:template>
</xsl:stylesteet>
На рис. 12.16 показаны обработанные данные в форме HTML.
Помните, что когда вы взаимодействуете с данными в виде XML, все ориентированные на базы данных концепции настроек вроде отношений таблиц и ограничений уникальности не работают. Единственная причина для взаимодействия с данными через DataSet как c XML— необходимость выполнения специфичных для XML задач. Вы не должны применять манипуляции XML для замены подходов работы с данными, описанных в предыдущих главах. В большинстве случаев вы обнаружите, что легче применять усовершенствованные элементы управления, такие как GridView, а не создавать специальные таблицы стилей XSL для трансформации в HTML данных, которые хотите отобразить.
предыдущая следующая страница вначало главы оглавление
567