
- •Цели занятия
- •SGML, XML и HTML
- •Отличия XML от HTML
- •Пример XML
- •Пример XML
- •Структура XML-документа
- •Структура XML-документа
- •Структура XML-документа
- •Структура XML-документа
- •DTD и XML-схема
- •Document Type Definition
- •Document Type Definition
- •Правила DTD-определения
- •Примеры правил
- •Поведение по умолчанию
- •Примеры выражений
- •DTD и соответствующий XML-
- •XML-схема
- •XML-схема
- •XML-схема
- •Создание XML-документов
- •Создание XML-документов
- •Создание XML-документов
- •Создание XML-документов
- •Литература

Создание XML-документов
36Text textNode = doc.createTextNode(textContents);
•Для включения в документ корневого элемента и для связывания дочерних узлов с родительскими используется приведенный ниже код: doc.appendChild(rootElement);
rootElement.appendChild(childElement);
childElement.appendChild(textNode);
•При формировании дерева DOM атрибуты элементов задаются с помощью метода setAttribute() класса Element
rootElement.setAttribute(name, value);
•Для записи дерева DOM в выходной поток к документу применяется преобразование (XSLT-преобразование), в процессе которого не выполняется никаких действий и результат записывается в выходной поток
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2013 |

Создание XML-документов
37• Для включения узла DOCTYPE в состав выходных данных нужно указать в качестве свойств идентификаторы SYSTEM и PUBLIC
Transformer t = TransformerFactory.newInstance().newTransformer(); t. setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, systemIdentifier);
t. setOutputProperty(OutputKeys.DOCTYPE_PUBLIC, publicIdentifier); t.transform(new DOMSource(doc), new StreamResult(new FileOutputStream(file)));
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2013 |

Создание XML-документов
38 Пример 5
import org.w3c.dom.*; import javax.xml.parsers.*; import javax.xml.transform.*;
import javax.xml.transform.dom.*; import javax.xml.transform.stream.*; import java.io.*;
public class WriteXML {
public static void main(String[] args) { try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse("G:\\Haulmont\\java_SE\\config.xml");
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2013 |

Создание XML-документов
39Transformer t = TransformerFactory.newInstance().newTransformer(); t.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, doc.getDoctype().getSystemId()); FileOutputStream f = new FileOutputStream("G:\\Haulmont\\java_SE\\config1.xml"); t.transform(new DOMSource(doc), new StreamResult (f));
}catch (Exception e) {
e.printStackTrace();
}
}
}
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2013 |

Литература
40• Хорстманн Кей С., Корнелл Гари. Java 2. Библиотека профессионала, том 2.Тонкости
программирования. 7-е издание.: Пер. с англ. – М.: ООО «И.Д. Вильямс», 2008. – 1168 с.: ил. ISBN 978-5-8459-1033-2 (рус.)
•http://docs.oracle.com/cd/B10501_01/appdev.920 /a96621/adx04paj.htm#1003830
•http://www.quizful.net/post/sax-parser-java
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2013 |