Разработка программы для обработки набора данных "Проектно-строительная компания" с использованием XSLT-преобразования и паттернов

Разработка исходного XML-документа, который будет содержать данные варианта. Разработка таблицы стилей XSLT для преобразования исходного XML-документа исходного XML-документ с заданной структурой. Анализ базового класса, содержащего виртуальные методы.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 01.05.2019
Размер файла 1,3 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

МИНОБРНАУКИ РОССИИ

Федеральное государственное бюджетное образовательное учреждение

высшего образования

«Чувашский государственный университет имени И. Н. Ульянова»

Факультет информатики и вычислительной техники

Кафедра компьютерных технологий

КУРСОВАЯ РАБОТА

по дисциплине Проектный практикум

на тему: «Разработка программы для обработки набора данных «Проектно-строительная компания» с использованием XSLT-преобразования и паттернов»

Выполнила: студентка

группы КТ-43-15

Павлова М. В.

Проверила: Лавина К.И.,

ст. преподаватель

Чебоксары 2019

Содержание

Введение

1. Основы преобразования XML-документов с помощью XSLT

1.1 Общие сведения о технологии XSLT

1.2 Структура и основные элементы таблицы стилей XSLT. Редакторы XSLT

1.3 Работа с XSLT на платформе .NET Framework. Класс XmlCompiledTransform

2. Практическая часть

2.1 Разработка приложений Windows Forms на языке C#

2.2 Разработка XML - документа, содержащего указанные данные

2.3 Разработка таблицы стилей XSLT для преобразования исходного XML - документа в XML - документ с заданной структурой

2.4 Разработка таблицы стилей XSLT для преобразования исходного XML - документа с заданной структурой

2.5 Разработка классов с виртуальными методами и их переопределением

Заключение

Список использованной литературы

Приложения

Введение

XML (Extensible Markup Language) - это новый SGML-производный язык разметки документов, позволяющий структурировать информацию разного типа, используя для этого произвольный набор инструкций.

Создаваемые вами файлы, или экземпляры документа, состоят из элементов (тегов) и текста, причем элементы помогают правильно понимать документ при чтении на бумаге или даже обрабатывать его в электронном виде. Чем больше описательных элементов, тем больше частей документа можно идентифицировать. С первых дней существования разметки одно из ее преимуществ заключается в том, что в случае потери компьютерной системы распечатанные данные все равно остаются читабельными благодаря тегам.

Языки разметки прошли путь от первых форм, создававшихся компаниями и госучреждениями, до Стандартного языка обобщенной разметки (SGML), Гипертекстового языка разметки (HTML) и в конечном итоге до XML. SGML может показаться сложным, а HTML (который, по сути, сначала был просто набором элементов) оказался недостаточно мощным для идентификации информации. XML разрабатывался как простой в применении и удобный для расширения язык разметки.

В XML можно создавать свои собственные элементы, что позволяет точно представлять фрагменты данных. Документы можно не просто разделять на абзацы и заголовки, но и выделять любые фрагменты внутри документа. Чтобы это было эффективно, нужно определить конечный перечень своих элементов и придерживаться его. Элементы можно определять в Описании типа документа (Document Type Definition - DTD) или в схеме, что будет кратко обсуждено ниже. Когда вы освоите и начнете использовать XML, не бойтесь экспериментировать с именами элементов, создавая реальные файлы.

Целью работы является разработка программы для обработки набора данных «Проектно-строительная компания» с использованием XSLT-преобразования и паттернов в среде разработки Visual Studio на языке C#

Для выполнения поставленной цели необходимо решить следующие задачи:

Разработка исходного XML-документа, которое будет содержать данные варианта;

Разработка таблицы стилей XSLT для преобразования исходного XML-документа в исходного XML-документ с заданной структурой;

Разработка таблицы стилей XSLT для преобразования исходного XML-документа в формат HTML в виде многоуровневого списка и в виде таблицы;

Разработка на языке C# приложения Windows Forms, обеспечивающее преобразование указанного документа XML с помощью выбранной таблицы стилей XSLT.

Разработка базового класса, содержащего виртуальные методы, и производный от него класс, в котором эти методы переопределены (методы класса System.Object).

Работа состоит из введения, основной части, которая включает в себя рассмотрение теоретических и практических вопросов, заключения.

виртуальный преобразование документ таблица

1. Основы преобразования XML-документов с помощью XSLT

1.1 Общие сведения о технологии XSLT

Общие сведения о XSLT. Спецификация XSL. При работе с XML часто требуется преобразовывать XML данные из одного представления в другое. Для решения подобной задачи применяют XSLT (eXtensible Stylesheet Language Transformations) - расширяемый язык преобразования XML-документов.

С помощью XSLT можно трансформировать XML-документ в любой формат, например HTML, PDF, RTF, FB2 и др. Кроме того, можно заданный XML-документ преобразовать в XML документ с другой структурой.

XSLT позволяет работать с содержимым XML-документов без написания программного кода. XSLT - это декларативное описание преобразований XML-документа, то есть без какого-либо программирования описываем, что требуется получить.

Технология XSLT является частью более крупной спецификации - XSL (eXtensible Stylesheet Language) - расширяемый язык таблиц стилей, предложенный консорциумом W3C.

Спецификация XSL состоит из двух частей:

XSL-FO (XSL-Formatting Objects) - язык для верстки XML документов. На языке XSL можно описать, как будет оформлен итоговый документ, где и как должны располагаться данные. Язык XSL разрабатывался для тех же самых целей, что и каскадные таблицы стилей (CSS) для HTML, но из-за высокой сложности не получил широкого распространения.

XSL-T (XSL-Transformation) - язык для преобразования XML-документов.

В настоящее время применяются следующие версии XSLT:

версия XSLT 1.0 - одобрена в качестве рекомендации 16 ноября 1999 г.;

версия XSLT 2.0 - одобрена в качестве рекомендации 24 января 2007 г.;

версия XSLT 3.0 - находится в стадии начальной рекомендации.

XSLT имеет множество различных применений, в основном в области web-программирования и создания отчётов. В клиент-серверных приложениях XSLT используют для приведения структуры данных из внутреннего формата сервера к формату, понятному клиенту.

Можно отметить следующие основные ограничения XSLT:

XSLT не подходит для описания преобразований с очень сложной логикой. Это связано с тем, что преобразования в XSLT представляют собой наборы элементарных правил, которых может быть недостаточно для решения сложных задач.

XSLT не подходит для преобразований, которые требуют сложных вычислений. Данное ограничение вызвано тем, что язык XPath, применяемый в XSLT, поддерживает только простейшие вычислительные операции и функции.

По традиции, документ, записанный на языке XSLT, называется таблицей стилей (stylesheet), хотя его правильнее называть документом, содержащим правила преобразований.

Язык XSLT представляет собой диалект XML. Это означает, что обеспечивающая трансформацию XML-документа таблица стилей XSLT является правильно оформленным документом XML.

XSLT использует язык XPath для доступа к отдельным частям входного XML-документа и для организации вычислений. XSLT-процессоры

В XSLT-преобразовании участвуют три документа:

входящий XML-документ, который подвергается преобразованию;

документ XSLT, который описывает само преобразование;

выходящий документ, который является результатом преобразования.

Выполнением преобразования над XML-документами занимаются специальные программы, которые называются XSLT-процессорами.

Процессор оперирует не самими документами, а древовидными моделями их структур.

Рисунок 1 - Общая схема XSLT-преобразования

Процесс обработки делится на три этапа:

Этап разбора (парсинг) документа, на котором процессор разбирает входящий XML-документ и документ XSLT, создавая для них древовидные структуры данных.

Этап преобразования, на котором к дереву входного документа применяются правила, описанные в XSLT-документе. В итоге процессор создаёт дерево выходного документа.

Таблица стилей XSLT состоит из шаблонов (templates), определяющих, каким образом каждый узел исходного дерева должен быть представлен в дереве результата. Преобразования в XSLT чаще всего это наборы правил вида «если обнаружен узел определённого типа, то выполнить следующие действия».

Процессор проходит по дереву источника, начиная с корня, и ищет соответствующие шаблоны в дереве таблицы стилей. Обнаружив шаблон, он с помощью содержащихся в нем правил записывает абстрактное представление результата в дерево выходного документа.

Этап сериализации, на котором созданное дерево выходного документа записывается в файл.

1.2 Структура и основные элементы таблицы стилей XSLT. Редакторы XSLT

Структура таблицы стилей XSLT. Шаблоны преобразования. Для того чтобы выделить элементы, которые принадлежат языку XSLT, применяют пространство имён с идентификатором http://www.w3c.org/1999/XSL/Transform. Общепринятым префиксом пространства имён языка XSLT является xsl.

Таким образом, объявление пространства имён XSLT в общем случае будет иметь вид:

xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

Поскольку преобразования XSLT являются документами XML, то они должны начинаться с объявления:

<?xml version="1.0" encoding="utf-8"?>

После указанного объявления записывается корневой элемент xsl:stylesheet или его аналог xsl:transform. Обязательным атрибутом данного элемента является version, который определяет версию XSLT (1.0 или 2.0).

Необязательный атрибут id задаёт уникальный идентификатор данного преобразования. Этот атрибут используется в тех случаях, когда преобразование включено в документ XML. Прямыми дочерними элементами для xsl:stylesheet могут быть:

xsl:temlplate - задаёт шаблон преобразования, позволяющий указать способ преобразования определённых узлов в исходном XML-документе;

xsl:output - определяет тип выходного документа (по умолчанию методом вывода является HTML);

xsl:include - позволяет включать в таблицу стилей XSLT внешние файлы преобразования.

Для указания способа выполнения преобразования используются шаблоны преобразования, задаваемые с помощью элемента xsl:temlplate. Каждый элемент xsl:temlplate обеспечивает выбор одного узла или набора узлов в исходном XML-документе.

Необязательными атрибутами элемента xsl:temlplate являются:

match - задаёт выражение XPath, позволяющее выбирать узлы в исходном XML-документе;

name - содержит имя шаблона;

priority - задаёт приоритет шаблона с помощью положительного или отрицательного целого числа.

Шаблоны строятся по строгим правилам и могут содержать элементы xsl:param, за которыми следует тело шаблона.

В теле шаблона может присутствовать ряд элементов XSLT, называемых инструкциями. К наиболее часто применяемым инструкциям XSLT относятся:

xsl:apply-templates - позволяет применить шаблон в зависимости от типа и контекста выбранного узла;

xsl:value-of - обеспечивает доступ к значению выбранного узла;

xsl:attribute - обеспечивает создание нового атрибута в выходном документе. Элемент xsl:apply-templates позволяет применить соответствующий шаблон в зависимости от типа и контекста каждого выбранного узла. Этот элемент имеет следующие необязательные атрибуты:

select - задаёт с помощью XPath-выражения набор обрабатываемых узлов; если данный атрибут отсутствует, то будут обрабатываться только дочерние узлы текущего узла;

mode - устанавливает режим обработки.

Элемент xsl:apply-templates по умолчанию применяет шаблоны только к дочерним узлам выбранного узла или набора узлов. При этом атрибуты не считаются дочерними узлами элементов.

Получить доступ к значению узла можно при помощи элемента xsl:value-of. Данный элемент имеет обязательный атрибут select, который позволяет выбрать узел с помощью выражения XPath. Элемент xsl:value-of является пустым.

Для создания новых атрибутов в выбранном элементе служит элемент xsl:attribute. Элемент xsl:attribute имеет обязательный атрибут name - имя нового атрибута. Кроме того, данный элемент может содержать атрибут namespace - пространство имён нового атрибута (присваивается URI).

Принятие решений и сортировка данных. В XSLT существует возможность управления преобразованием в зависимости от значения данных. Эта возможность обеспечивается такими элементами, как xsl:if, xsl:choose, xsl:for-each, xsl:sort и др.

При помощи элемента xsl:if осуществляется проверка условия и принимаются действия на основе результата проверки. Элемент xsl:if имеет один обязательный атрибут test, который устанавливает логическое выражение.

Элемент xsl:if во многом похож на оператор if-then, применяемый во многих языках программирования. В отличие от ifthen элемент xsl:if не имеет инструкции else, которая выполняется при ложности условия в if.

Внутри элемента xsl:if помещается тело шаблона. Если логическое выражение истинно, то тело шаблона используется, если ложно - игнорируется.

Для задания альтернативных ветвей выполнения XSLT служит элемент xsl:choose, который не имеет атрибутов. Элемент xsl:choose похож на оператор switch, используемый в языках Java и C#.

Элемент xsl:choose должен содержать один или более дочерних элементов xsl:when, имеющих обязательный атрибут test и может содержать единственный элемент xsl:otherwise, который в случае применения должен стоять последним.

Элемент xsl:for-each позволяет применять тело шаблона в цикле для всех выбранных узлов. Данный элемент имеет единственный обязательный атрибут select, который принимает выражение XPath.

При помощи элемента xsl:sort можно сортировать узлы. Этот элемент устанавливает порядок обработки узлов для xsl:apply-templates и xsl:for-each и должен располагаться внутри них. Элемент xsl:sort является пустым.

Необязательными атрибутами элемента xsl:sort являются:

select - принимает выражение XPath, возвращающее набор узлов для сортировки;

order - задаёт порядок сортировки; принимает значение «ascending» (по возрастанию - значение по умолчанию) или «descending» (по убыванию);

data-type - определяет, будет ли сортировка вестись в алфавитном или числовом порядке; принимает значение «text» (текст - по умолчанию) или «number» (число).

Выбор методов вывода. Связывание XML-документа с таблицей стилей XSLT. Тип выходного документа определяет элемент xsl:output, который является дочерним элементом для xsl:stylesheet. Элемент xsl:output имеет несколько необязательных атрибутов, основными из которых являются:

method - задаёт формат вывода; принимает значения «xml», «html», «text»;

indent - определяет будет ли выходной документ выровнен с отражением структуры вложенности; может принимать значения «no» (по умолчанию) или «yes»;

encoding - задаёт кодировку символов;

version - задаёт версию выходного документа.

Официально методом вывода по умолчанию является HTML, при условии, что выполняются следующие требования:

корневой элемент документа имеет дочерний элемент;

в названии корневого элемента присутствует «html» в любой комбинации верхнего и нижнего регистров.

Если указанные требования не выполняются, то методом вывода по умолчанию является XML.

Для связывания XML-документа и документа XSLT используется инструкция обработки <?xsl:stylesheet?>, которая записывается в прологе XML-документа и указывает процессору XSLT, какую таблицу применить к данному документу.

Инструкция <?xsl:stylesheet?> имеет следующие обязательные атрибуты:

href - URI документа XSLT;

type - тип MIME документа XSLT; обычно «text/xml» или «application/xml».

К необязательным атрибутам <?xsl:stylesheet?> инструкции относятся:

title - устанавливает заголовок, позволяющий различать

различные инструкции <?xsl:stylesheet?>;

charset - устанавливает кодировку символов;

media - описывает средства вывода (например, «print» или «aural»);

alternate - принимает значение «yes», либо «no».

Связывание файла преобразования transform.xslt с документом XML может иметь следующий вид:

<?xml version="1.0" encoding="utf-8"?>

<?xml-stylesheet type="text/xsl" href="stylesheet.xslt"?>

<root>

<!-- ... -->

</root>

Работа с XSLT в MS Visual Studio. Отладчик XSLT. Для создания нового документа XSLT с помощью MS Visual Studio необходимо в меню File выбрать команду New File. В открывшемся окне шаблонов (рис. 1.3) следует выбрать шаблон XSLT File (XSLT-файл) и нажать кнопку Open. Откроется ре дактор XML, в котором для нового документа автоматически добавлено объявление XML, корневой элемент xsl:stylesheet, а также ряд других элементов.

Рисунок 2 - Окно Создать файл с выбранным пунктом XSLTфайл (Visual Studio 2012)

Редактор XML, встроенный в MS Visual Studio, может использоваться для редактирования таблиц стилей XSLT. При этом являются доступными такие стандартные функции редактора, как технология IntelliSense, структурирование, XML-фрагменты и др.

К функциям, доступным только при работе с XSLT, относятся:

выделение ключевых слов XSLT, таких как template, match и других, специальным цветом (задаётся с помощью настройки Шрифты и цвета);

редактор XML использует установленный файл xslt.xsd для проверки таблиц стилей XSLT; ошибки проверки подчеркиваются синей волнистой линией;

возможность запуска отладчика XSLT из XSLT-файла; отладка XSLT доступна в Visual Studio Team System и в выпуске Professional Edition;

возможность выполнять преобразование XSLT и просматривать выходные данные в редакторе XML. Для отладки таблицы стилей XSLT используется отладчик XSLT, который поддерживает задание точек останова, пошаговое выполнение кода, просмотр состояний выполнения XSLT и т. д.

1.3 Работа с XSLT на платформе .NET Framework. Класс XmlCompiledTransform

При разработке собственных приложений, обрабатывающих XML-данные, может потребоваться, чтобы эти приложения выполняли функцию XSLT-процессора. Такая возможность поддерживается при разработке приложений на платформе .NET Framework.

Классы для работы с XSLT размещены в пространстве имён System.Xml.Xsl. Основным классом данного пространства является класс XslCompiledTransform, который представляет XSLT процессор, осуществляющий компиляцию и преобразование.

К основным методам класса XslCompiledTransform относятся:

void Load(string stylesheetUri) - загружает и компилирует таблицу стилей XSLT, размещённую по заданному stylesheetUri;

void Transform(string inputUri, string outputUri) - выполняет преобразование входного документа, заданного с помощью inputUri, и записывает результат в выходной документ, расположенный по указанному outputUri.

2. Практическая часть

2.1 Разработка приложений Windows Forms на языке C#

Для обеспечения преобразования заданного XML - документа с помощью указанной таблицы стилей XSLT было разработано приложение Windows Form, показанное на рисунке 3. Выбор файлов, необходимых для XML - преобразования, осуществляется через диалоговое окно. Результат преобразования отображается в окне приложения.

Для реализации диалога открытия файлов, на форму был добавлен элемент управления openFileDialog. Отображение выходного документа будет выполняться с помощью элемента управления web-Browser.

Рисунок 3 Интерфейс пользователя приложения Windows Forms

Далее приводится разбор значения и интерфейса приложения:

button1 кнопка служит для открытия диалогового окна для выбора XML файла;

button2 открывает диалоговое окно для выбора stylesheet/XSLT2 файла;

button3 открывает диалоговое окно для выбора HTML/XML2;

button4 (transform) служит для XSLT - преобразования;

web-Browser1 служит для реализации диалога открытия файлов и отображения выходного документа.

Для корректной работы кнопок приложения Windows Forms прописываются коды:

1. Загрузка исходного XML-файла:

private void button1_Click(object sender, EventArgs e)

{ openFileDialog1.Filter = "XML-файлы (*.xml)|*.xml";

openFileDialog1.ShowDialog();

textBox1.Text = openFileDialog1.FileName;}

2. Загрузка XSLT-файла для преобразования XML-документа:

private void button2_Click(object sender, EventArgs e)

{ openFileDialog1.Filter = "XSLT-файлы (*.xslt)|*.xslt" +

"|XSL-файлы (*.xsl)|*.xsl";

openFileDialog1.ShowDialog();

textBox2.Text = openFileDialog1.FileName;}

3. Загрузка XSLT-файла для преобразования XML-документа:

private void button3_Click(object sender, EventArgs e)

{ openFileDialog1.Filter = "Все файлы (*.*)|*.*";

openFileDialog1.ShowDialog();

textBox3.Text = openFileDialog1.FileName;}

4. Кнопка запуска преобразования XML-документа HTML-файл:

private void buttonTransform_Click(object sender, EventArgs e)

{ XslCompiledTransform xslt = new XslCompiledTransform();

xslt.Load(textBox2.Text);

xslt.Transform(textBox1.Text, textBox3.Text);

StreamReader sr = new StreamReader(textBox3.Text);

webBrowser1.DocumentText = sr.ReadToEnd();

sr.Close();}

2.2 Разработка XML - документа, содержащего указанные данные

Для разработки проекта "Проектно-строительная компания" был разработан исходный XML документ под названием document.xml (Приложение А), содержащий сведения об отделах (код, название), сотрудниках (код, фамилия, имя, отчество, пол, дата рождения, дата устройства, должность) и выполняемых ими проектах(код, наименование, срок выдачи, стоимость).

Рисунок 4 Часть кода XML - документа (document.xml)

Далее приводится обозначение некоторых основных тегов:

<строительная> название основного названия xml файла;

<отдел> название отдела;

<код> код отдела или сотрудника;

<сотрудник > данные о сотруднике.

2.3 Разработка таблицы стилей XSLT для преобразования исходного XML - документа в XML - документ с заданной структурой

Структура XML - документа была преобразована к виду, приведённому на Рисунке 5. Для этого была разработана таблица стилей XSLT под названием stylesheet2.xslt (Рисунок 6).

Рисунок 5 Структура древа преобразованного XML - документа

Обозначения некоторых основных атрибутов:

name - обязательный атрибут, определяет имя атрибута;

select необязательный атрибут, выражение XPath, определяющее содержимое атрибута. Если элемент <xsl::attribute> содержит атрибут select, то сам элемент должен быть пустым;

type необязательный атрибут, определяет тип данных атрибута.

Рисунок 6 Результат преобразования XML документа

2.4 Разработка таблицы стилей XSLT для преобразования исходного XML - документа с заданной структурой

Разработана таблица стилей XSLT, которая преобразует XML документ в формат HTML. Часть данных из документа представлена в форме таблицы, а другая часть в виде многоуровневого списка.

В виде многоуровневого списка приведены данные об отделе (код, название) и сотрудниках (ФИО, пол, дата рождения).

В форме таблицы приведены данные о сотрудниках (ФИО, должность) и данные о проектах (код, наименование, срок выдачи).

Результат преобразования исходного XML-документа показана на Рисунке 7.

Рисунок 7 Результат преобразования XML - документа

2.5 Разработка классов с виртуальными методами и их переопределением

Был разработан класс BaseKV (Квартира в базовой комплектации), который содержит виртуальный метод int GetCost() (Определить цену) и переопределяет методы базового класса System.Object. Кроме того, требуется разработать производный от него класс Logiya (Квартира с лоджией), который переопределяет метод int GetCost().

Результат работы консольного приложения показан на рисунке 10.

class BaseKV

{

protected int etag;

protected int ploshad;

protected int cost;

protected int costK;

public BaseKV()

{

etag = 1;

ploshad = 40;

cost = 40000;

costK = 1600000;

}

public BaseKV(int etag, int ploshad, int cost, int costK)

{

this.etag = etag;

this.ploshad = ploshad;

this.cost = cost;

this.costK = costK;

}

public override bool Equals(object obj)

{

return base.Equals(obj);

}

public override string ToString()

{

return string.Format("Этаж: {0}\n" +

"Площадь: {1} м\n" +

"Цена: {2} руб.\n",

etag, ploshad, cost, costK);

}

public virtual int Getcost()

{

/*double dis = ploshad * cost;*/

return ploshad * cost;

}

}

class Logiya : BaseKV

{

int cost1;

int cost2;

public Logiya()

: base()

{

cost1 = 5;

cost2 = 40000;

}

public Logiya(int etag, int ploshad, int cost, int costK)

: base(etag, ploshad, cost, costK)

{

this.cost1 = cost1;

this.cost2 = cost2;

}

public override int Getcost()

{

return (base.Getcost() + cost1 * cost2);

}}

Рисунок 10 - Результат работы консольного приложения

Заключение

В данной курсовой работе разработана программа для преобразования набора данных "Проектно-строительная компания" с использованием XSLT - преобразования и паттернов.

Для достижения поставленной цели, выполнены следующие задачи:

Разработан исходный XML - документ содержащий указанные данные. Разработана таблица стилей XSLT для преобразования исходного XML - документа в XML - документ с заданной структурой (в соответствии с вариантом).

Разработана таблица стилей XSLT для преобразования XML - документа в формат HTML в виде многоуровневого списка и в виде таблицы.

Разработано приложение Windows Forms на языке C#, обеспечивающее преобразование указанного документа XML с помощью выбранной таблицы стилей XLST.

Разработан базовый класс, содержащий виртуальные методы (в соответствии с вариантом), и производный от него класс, в котором эти методы переопределены.

Усвоены несколько простых правил разработки собственных элементов XML и их атрибуты.

Список использованной литературы

1. ГОСТ 7.80-2000. «Библиографическая запись. Заголовок. Общие требования и правила составления».

2. ГОСТ 7.32-2001 «Отчет о научно-исследовательской работе. Структура и правила оформления».

3. ГОСТ 7.32-2001. Отчет о научно-исследовательской работе. Структура и правила оформления.

4. ГОСТ 7.1-2003. Межгосударственный стандарт. Система стандартов по информации, библиотечному и издательскому делу. Библиографическая запись. Библиографическое описание. Общие требования и правила составления.

5. ГОСТ Р 7.0.5-2008 «Библиографическая ссылка. Общие требования и правила составления».

6. Влацкая И.В. Проектирование и реализация прикладного программного обеспечения [Электронный ресурс] : учебное пособие / И.В. Влацкая, Н.А. Заельская, Н.С. Надточий. -- Электрон. текстовые данные. -- Оренбург: Оренбургский государственный университет, ЭБС АСВ, 2015. - 119 с. -- Режим доступа: http://www.iprbookshop.ru/54145.html

7. Бенкен, Елена PHP, MySQL, XML. Программирование для Интернета / Елена Бенкен. - М.: БХВ-Петербург, 2016. - 336 c.

8. Валиков Алексей «Технология XSLT».: БХВ-Петербург, 2016. - 390 с.

9. Хабибуллин, И. Самоучитель XML: моногр. / И. Хабибуллин. - М.: БХВ-Петербург, 2015. - 336 c.

10. Овчинников, С.М. XML: Язык форматирования документов World Wide Web / С.М. Овчинников. - М.: Майор, 2017. - 160 c.

Приложение А

Листинг XML-файла

<?xml version="1.0" encoding="utf-8"?>

<!-- Данные о коммунальных услугах и их оплате -->

<строит_комп>

<отделы код="h18">

<название>Отделфинстрой</название>

<сотрудники код="021">

<фамилия>Иванов</фамилия>

<имя>Иван</имя>

<отчество>Иванович</отчество>

<пол>Мужской</пол>

<дата_рожд>23.12.1989</дата_рожд>

<дата_устр>20.02.2015</дата_устр>

<должность>Инженер</должность>

<проекты код="01">

<наименование>Квартира позиция 12</наименование>

<срок>23.12.2019</срок>

<стоимость>15 000 000 р.</стоимость>

</проекты>

</сотрудники>

</отделы>

<отделы код="h19">

<название>Инстрой</название>

<сотрудники код="022">

<фамилия>Петров</фамилия>

<имя>Петр</имя>

<отчество>Петрович</отчество>

<пол>Мужской</пол>

<дата_рожд>22.03.1987</дата_рожд>

<дата_устр>25.02.2016</дата_устр>

<должность>Прораб</должность>

<проекты код="03">

<наименование>Квартира позиция 14</наименование>

<срок>25.08.2019</срок>

<стоимость>10 200 000 р.</стоимость>

</проекты>

</сотрудники>

</отделы>

<отделы код="h22">

<название>СтройИнвест</название>

<сотрудники код="025">

<фамилия>Семенов</фамилия>

<имя>Семен</имя>

<отчество>Петрович</отчество>

<пол>Мужской</пол>

<дата_рожд>22.03.1950</дата_рожд>

<дата_устр>25.02.2016</дата_устр>

<должность>Директор</должность>

<проекты код="03">

<наименование>Квартира позиция 14</наименование>

<срок>25.08.2019</срок>

<стоимость>10 200 000 р.</стоимость>

</проекты>

</сотрудники>

</отделы>

</строит_комп>

Приложение Б

Листинг XSLT-файла

<?xml version="1.0" encoding="utf-8"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">

<xsl:output method="html" indent="yes"/>

<xsl:template match="строит_комп">

<html>

<head>

<style type="text/css">

body {

background-color: rgb(255, 248, 220);

}

h1, h2 {

text-align: center;

}

table {

border: thin solid rgb(128, 0, 0);

}

thead {

font-weight: bold;

text-align: center;

}

td {

padding: 5 px;

border: thin solid black;

}

ul {

font-weight: bold;

}

ol {

font-style: italic;

forecolor:

}

</style>

<title>Cпиcoк строительных компаний</title>

</head>

<body>

<h1>Данные о отделах</h1>

<h2>Отделы</h2>

<!-- Размещение данных в многоуровневом списке -->

<ul>

<xsl:for-each select="отделы">

<li>

<xsl:text>Отдел </xsl:text>

<xsl:value-of select="@код"/>

<xsl:text>, </xsl:text>

<xsl:value-of select="название"/>

<xsl:text> </xsl:text>

<ol>

<xsl:for-each select="сотрудники">

<li>

<xsl:value-of select="@код"/>

<xsl:text> </xsl:text>

<xsl:value-of select="фамилия"/>

<xsl:text> </xsl:text>

<xsl:value-of select="имя"/>

<xsl:text> </xsl:text>

<xsl:value-of select="отчество"/>

<xsl:text>, пол: </xsl:text>

<xsl:value-of select="пол"/>

<xsl:text>, (дата рождения </xsl:text>

<xsl:value-of select="дата_рожд"/>

<xsl:text>)</xsl:text>

</li>

</xsl:for-each>

</ol>

</li>

</xsl:for-each>

</ul>

<h2>Сотрудники</h2>

<!-- Размещение данных в таблице -->

<table>

<thead>

<tr>

<td colspan="2">Сотрудник</td>

<td colspan="3">Проект</td>

</tr >

<tr>

<td>ФИО</td>

<td>Должность</td>

<td>Код</td>

<td>Наименование</td>

<td>Срок выдачи</td>

</tr >

</thead>

<tbody>

<xsl:for-each select="//проекты">

<tr>

<td>

<xsl:value-of select="parent::сотрудники/фамилия"/>

<xsl:text> </xsl:text>

<xsl:value-of select="parent::сотрудники/имя"/>

<xsl:text> </xsl:text>

<xsl:value-of select="parent::сотрудники/отчество"/>

</td>

<td>

<xsl:value-of select="parent::сотрудники/должность"/>

</td>

<td>

<xsl:value-of select="@код"/>

</td>

<td>

<xsl:value-of select="наименование"/>

</td>

<td>

<xsl:value-of select="срок"/>

</td>

</tr>

</xsl:for-each>

</tbody>

</table>

</body>

</html>

</xsl:template>

</xsl:stylesheet>

Приложение В

Листинг XSLT-документа для преобразования в файл с заданной структурой

<?xml version="1.0" encoding="utf-8"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">

<xsl:output method="xml" indent="yes"/>

<xsl:template match="данные_о_сотрудниках">

<данные_о_сотрудниках>

<xsl:for-each select="//сотрудники">

<сотрудник>

<xsl:attribute name="id">

<xsl:value-of select="@код"/>

</xsl:attribute>

<ФИО>

<xsl:value-of select="ФИО"/>

</ФИО>

<проект>

<xsl:attribute name="id">

<xsl:value-of select="@код"/>

</xsl:attribute>

<название>

<xsl:value-of select="проекты/наименование"/>

</название>

<цена>

<xsl:value-of select="проекты/стоимость"/>

</цена>

</проект>

<отдел>

<xsl:value-of select="parent::отделы/@код"/>

</отдел>

</сотрудник>

</xsl:for-each>

</данные_о_сотрудниках>

</xsl:template>

</xsl:stylesheet>

</xsl:template>

</xsl:stylesheet>

Приложение Г

Листинг разработки приложения Windows Forms

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.IO;

using System.Xml.Xsl; // Импорт пространства имён для работы с XSLT

namespace WindowsFormsApplication2

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

openFileDialog1.Filter = "XML-файлы (*.xml)|*.xml";

openFileDialog1.ShowDialog();

textBox1.Text = openFileDialog1.FileName;

}

private void Form1_Load(object sender, EventArgs e)

{

this.Text = "XSLT-процессор (Лаб.1)";

this.Font = new System.Drawing.Font("Arial", 10, FontStyle.Bold);

textBox1.Text = @"D:\ЧГУ\Курсовая 2019\WindowsFormsApplication2 - копия\WindowsFormsApplication2 - копия\WindowsFormsApplication2\document.xml";

textBox2.Text = @"D:\ЧГУ\Курсовая 2019\WindowsFormsApplication2 - копия\WindowsFormsApplication2 - копия\WindowsFormsApplication2\stylesheet.xslt";

textBox3.Text = @"D:\ЧГУ\Курсовая 2019\WindowsFormsApplication2 - копия\WindowsFormsApplication2 - копия\WindowsFormsApplication2\HTMLPage1.html";

}

private void button2_Click(object sender, EventArgs e)

{

openFileDialog1.Filter = "XSLT-файлы (*.xslt)|*.xslt" +

"|XSL-файлы (*.xsl)|*xsl";

openFileDialog1.ShowDialog();

textBox2.Text = openFileDialog1.FileName;

}

private void button3_Click(object sender, EventArgs e)

{

openFileDialog1.Filter = "Все файлы (*.*)|*.*";

openFileDialog1.ShowDialog();

textBox3.Text = openFileDialog1.FileName;

}

private void button4_Click(object sender, EventArgs e)

{

XslCompiledTransform xslt = new XslCompiledTransform();

xslt.Load(textBox2.Text);

xslt.Transform(textBox1.Text, textBox3.Text);

StreamReader sr = new StreamReader(textBox3.Text);

webBrowser1.DocumentText = sr.ReadToEnd();

sr.Close();

}

private void groupBox1_Enter(object sender, EventArgs e)

{

}

private void textBox1_TextChanged(object sender, EventArgs e)

{

}

private void label1_Click(object sender, EventArgs e)

{

}

}

}

Размещено на Allbest.ru


Подобные документы

  • Изучение использования расширяемого языка стилей для преобразований документов. Анализ взаимодействия XML и XSLT в архитектуре клиент-сервера. Обзор набора шаблонных правил, каждое из которых определяет процедуру обработки определенной части документа.

    практическая работа [434,3 K], добавлен 13.05.2011

  • Определение размерности исходного массива на листе электронной таблицы, адреса ячейки. Считывание исходного массива в программу. Создание фрагмента программы для выполнения задания с использованием операторов условного перехода, адресация диапазонов.

    контрольная работа [791,6 K], добавлен 16.04.2010

  • Структура и представление информации с помощью технологий XML-XSL. Применение XSLT-инструкций для разработки шаблона XSL. Алгоритм преобразования XML. Разработка конвертера XML-представлений групповых спецификаций на сборочное изделие в PDF-формат.

    дипломная работа [3,6 M], добавлен 09.06.2014

  • Составление программы для зашифровки текста (не более 255 символов), с использованием одного перемешанного алфавита, полученного случайной перестановкой всех букв исходного алфавита. Создание меню-интерфейса для навигации пользователя по программе.

    курсовая работа [496,2 K], добавлен 17.05.2015

  • Обзор электронного документа, его информационное содержание и виды. Разработка программы автоматической обработки текстовых материалов: выбор сред разработки, извлечение понятийной области, получение стека суждений. Стандарты кодирования информации.

    дипломная работа [3,9 M], добавлен 10.05.2014

  • Разработка системы автоматического конвертирования исходного текста программ для станков с ЧПУ. Обоснование целесообразности создания такой системы. Критерии экономической эффективности ее функционирования. Оценка безопасности и экологичности проекта.

    дипломная работа [2,1 M], добавлен 23.06.2008

  • Сведения о свободных, проданных, бронированных местах. Редактирование данных об авиарейсах. Пользовательский контроль над управлением свободной памятью. Сокращение объема исходного кода, улучшение его читаемости. Функции, хранящиеся в заголовочных файлах.

    курсовая работа [777,4 K], добавлен 07.06.2014

  • Особенности и основы разработки и реализации гипертекстового транслятора, позволяющего на основе исходного текстового файла формировать гипертекстовую базу данных и использовать ее для просмотра исходного текстового файла с помощью перекрестных ссылок.

    дипломная работа [411,1 K], добавлен 02.03.2011

  • Общая информация о графическом формате. Описание формата Microsoft Windows Bitmap. Структура файла DDВ исходного формата ВМР. Преобразования графических файлов. Просмотр и редактирование растровых изображений. Создание многодокументного приложения.

    дипломная работа [1,5 M], добавлен 06.06.2010

  • Создание программы для хранения и обработки данных о съеме/сдаче жилья. Написание программы на языке C++ с использованием библиотеки Qt; использование исходного кода для создания приложения под Windows, Linux, Mac OS X без дополнительных изменений кода.

    курсовая работа [60,4 K], добавлен 07.03.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.