Где проводится профессиональная переподготовка "Системное администрирование Windows"? Что-то я не совсем понял как проводится обучение. |
Программирование на ASP
Работа с XML
Одной из технологий, применяемых для обобщения логики отображения, является язык XML. XML – это не разновидность кода, хотя многие программисты говорят, что умеют программировать на XML. XML на самом деле представляет собой иерархический формат, используемый для описания данных с помощью текста. Данные, описываемые с помощью XML, имеют множество преимуществ по сравнению с другими форматами хранения данных. Текст XML распознается и обрабатывается всеми операционными системами. С другой стороны, XML понятен и человеку. XML обрабатывается и конструируется с помощью общего набора правил, задокументированных для множества потенциальных потребителей XML.
XML имеет и свои недостатки: ему требуется гораздо больший объем пространства для хранения данных по сравнению с другими технологиями (формат с разделителями-запятыми или текст фиксированной ширины). XML требует много ресурсов для обработки и упорядочивания данных. Для иллюстрации преимуществ и недостатков сравним файл XML с текстовым файлом с разделителями-запятыми. Оба файла являются текстовыми и используются в любой операционной системе. Оба файла являются результатом упорядочивания информации в таблице базы данных в соответствующий формат данных. Файл XML примерно в 3 – 5 раз больше, чем версия того же набора данных в формате текстового файла с разделителями-запятыми, так как в последнем не используются элементы описания для каждой строки и значения данных, как в файле XML. Обработка файла XML занимает больше времени в зависимости от того, насколько его размер больше файла с разделителями-запятыми.
Рассмотрим ситуацию, когда XML-файл и файл с разделителями-запятыми отправляются сторонним потребителям, и в таблицу базы данных добавляется еще один столбец. В файл с разделителями-запятыми добавится еще один столбец с любой стороны от текста или в его середине, в зависимости от логики экспорта, использованной для создания этого файла. Файл XML также будет содержать дополнительные данные, но, поскольку каждое значение данных в нем определено явным образом, то при использовании файла потребителем не возникнет ошибки, пока потребитель руководствуется установленными правилами. А программное обеспечение, обрабатывающее файл с разделителями-запятыми, вызовет ошибку, поскольку формат файла не совпадет с тем, что "ожидало" приложение.
Преобразование с помощью XSL
XML обобщает логику отображения, разрешая существование этой логики в другом файле. При помощи программного обеспечения, комбинирующего XML и логику отображения посредством установленного набора инструкций, XML можно преобразовать в другой тип документа, например, в HTML. Известными наборами инструкций являются Extensible Slylesheet Language (XSL) (Расширяемый язык таблиц стилей) и Extensible Stylesheet Language Transformation (XSLT) (Преобразование расширяемого языка таблиц стилей). С помощью обобщения логики отображения программисты разрабатывают веб-приложения для создания документов XML, предназначенных для описания данных или некоторого объекта. Пользовательский интерфейс можно изменять по мере необходимости, корректируя код только в файлах XSL или XSLT.
В листинге 12.11 приведен пример простого преобразования, реализованного в ASP.
<%@ Language=VBScript %> <HTML> <HEAD> </HEAD> <BODY> <% dim oXMLDoc dim oXMLXSL Set oXMLDoc = Server.CreateObject("Microsoft.XMLDOM") Set oXMLXSL = Server.CreateObject("Microsoft.XMLDOM") oXMLDoc.load(Server.MapPath("employees.xml")) oXMLXSL.load(Server.MapPath("employeesDisplay.xsl")) Response.Write( oXMLDoc.transformNode(oXMLXSL) ) %> </BODY> </HTML>Листинг 12.11. XMLToHTML.asp - Simple XML to HTML Transformation Performed in an ASP
Страница XMLtoHTML.asp (см. листинг 12.11) создает экземпляр класса XMLDOM. Класс XMLDOM является частью библиотеки Microsoft MSXML, используемой для преобразования XML и XSL в HTML. MSXML содержит набор классов и других программных решений, обеспечивающих XML-обработку, проверку, конструирование и прочие полезные функции XML. Функция загрузки класса XMLDOM вызывается указанием полного имени файла в качестве аргумента функции. Загружаемый файл расположен в корневом веб-каталоге, поэтому для получения полного физического пути и имени XML-файла вызвана функция Server.MapPath. Функция загрузки класса XMLDOM обрабатывает в качестве аргумента строку, содержащую документ XML или полное имя файла.
В листинге 12.12 приведено содержимое загруженного файла XML.
<?xml version="1.0"?> <Recordset Table = "MyMembership" Command = "Select * From tblEmployee"> <Row number = "3" phone = "444-4444" first_name = "Susy" last_name = "Lipschitz" /> <Row number = "4" phone = "444-555" first_name = "Bertan" last_name = "Scudder" /> <Row number = "6" phone = "444-4444 " first_name = "Joe" last_name = "Schmidlap" /> <Row number = "8" phone = "444-4444 " first_name = "Tom" last_name = "Cleasak" /> </Recordset>Листинг 12.12. employees.xml - tblEmployee Data Serialized into an XML Document
Этот документ представляет собой простой XML-файл, содержащий сведения о сотрудниках, извлеченные из таблицы tblEmployee (см. листинг 12.10).
Действия, аналогичные созданию экземпляра класса и загрузке документа XML, выполнены по отношению к таблице стилей XSL. XSL – это документ XML, и так же, как XML, воспринимается классом XMLDOM. В листинге 12.13 приведено содержимое файла XSL, загруженного в данном примере.
<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/"> <xsl:for-each select="Recordset"> <P><xsl:value-of select="@Table"/> <br/><xsl:value-of select="@Command"/><br/> </P> <TABLE BORDER="1" CELLSPACING="0" CELLPADDING="0"> <TR> <TH>Number</TH> <TH>Phone</TH> <TH>First Name</TH> <TH>Last Name</TH> </TR> <xsl:for-each select="Row"> <TR> <TD><xsl:value-of select="@number"/></TD> <TD><xsl:value-of select="@phone"/></TD> <TD><xsl:value-of select="@first_name"/></TD> <TD><xsl:value-of select="@last_name"/></TD> </TR> </xsl:for-each> </TABLE> </xsl:for-each> </xsl:template> </xsl:stylesheet>Листинг 12.13. employeesDisplay.xsl - XSL Stylesheet to Make HTML from tblEmployee XML Document
После загрузки документов XSL и XML в свои собственные экземпляры класса XMLDOM из экземпляра XMLDOM, связанного с документом XML, вызывается функция transformnode. Экземпляр класса XMLDOM, содержащий документ XSL, используется в качестве аргумента при вызове функции transformnode, а результирующей строкой, возвращаемой функцией transformnode, является документ HTML. На рисунке 12.13 представлен результат преобразования документов XSL и XML, отображенный в браузере.
HTML-код, полученный из XML, приведен в листинге 12.12, а XSL, приведенный в листинге 12.13, в преобразованном состоянии показан в листинге 12.14.
<HTML> <HEAD> </HEAD> <BODY> <P>MyMembership <br />Select * From tblEmployee<br /> </P> <TABLE BORDER="1" CELLSPACING="0" CELLPADDING="0"> <TR> <TH>Number</TH> <TH>Phone</TH> <TH>First Name</TH> <TH>Last Name</TH> </TR> <TR> <TD>3</TD> <TD>444-4444</TD> <TD>Susy</TD> <TD>Lipschitz</TD> </TR> <TR> <TD>4</TD> <TD>444-555</TD> <TD>Bertan</TD> <TD>Scudder</TD> </TR> <TR> <TD>6</TD> <TD>444-4444</TD> <TD>Joe</TD> <TD>Schmidlap</TD> </TR> <TR> <TD>8</TD> <TD>444-4444</TD> <TD>Tom</TD> <TD>Cleasak</TD> </TR> </TABLE> </BODY> </HTML>Листинг 12.14. HTML Resulting from XSL employeesDisplay.xsl and XML employees.xml Document Transformation