Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Работа с XML-данными в Java

Содержание

XML – Extensible Markup LanguageДля чего нужен:Интеграция данных из различных источниковЛокальная обработка данных на клиенте.Просмотр и манипулирование данными в различных разрезах.Возможность частичного обновления данных.
Лекция 12. Работа с XML-данными в Java XML – Extensible Markup LanguageДля чего нужен:Интеграция данных из различных источниковЛокальная обработка Элементы данныхЭлементами могут выступать как обычный текст, так и другие, вложенные, элементы Каждый открывающий тэг, определяющий некоторую область данных в документе обязательно должен Комментарии Cпециальные символы< , > " или $(десятичная форма записи), Атрибуты- имя строка может быть заключена как в одинарные ('), так и в двойные Директивы анализатора	CDATA   Необходима чтобы задать область документа, которую при разборе Document Type Definition может быть описан в документе или во внешнем файле:   ]>Valid XML SchemaПредназначена для того же что и DTDДля описания правил используется XMLБолее гибкие Есть xml-документ:Пример. Входные данные     Nikolaj   Ivanov Student: name: Nikolaj surname: Ivanov age: 23 group: PF-11Student: name: Petr surname: XML парсеры:DOM-парсер (Document Object Model) – предварительно анализируется XML-документ и сохраняется дерево SAX API (на примере org.xml.sax)Представляет следующие интерфейсы для манипулирования XML:ContentHandler – ключевой import javax.xml.parsers.*; import org.xml.sax.*; import java.io.IOException; public class SAXExample extends org.xml.sax.helpers.DefaultHandler { ... private int level = 0; private boolean inStudent = false; private DOM API (на примере org.w3c.dom)Представляет следующие интерфейсы: Node – представляет произвольный элемент import org.w3c.dom.*; import javax.xml.parsers.*; import org.xml.sax.*; import java.io.IOException; public class DOMExample { XSL – eXtensible Stylesheet LanguageXSLT – трансформации. XML документ, описывающий способ преобразования одного XML XSLT – eXtensible Stylesheet Language Transformations... body ... ... body ... ...  ... ... XPathПример: /html/body/*/span[@name= Student:
import javax.xml.transform.*; import javax.xml.transform.stream.*; import java.io.*; public class TransformXML {  public Флэнаган Д. Java. Справочник, 4-е издание Пер. с англ. –СПб: Символ-Плюс, 2004.-1040с.http://intuit.ru,
Слайды презентации

Слайд 2 XML – Extensible Markup Language
Для чего нужен:

Интеграция данных

XML – Extensible Markup LanguageДля чего нужен:Интеграция данных из различных источниковЛокальная

из различных источников

Локальная обработка данных на клиенте.

Просмотр и манипулирование

данными в различных разрезах.

Возможность частичного обновления данных.


Слайд 3 Элементы данных
Элементами могут выступать как обычный текст, так

Элементы данныхЭлементами могут выступать как обычный текст, так и другие, вложенные,

и другие, вложенные, элементы документа, секции CDATA, инструкции по

обработке, комментарии. Например:


Новосибирск
Siberia


СуМГУ<br>

родной университет




XML. Конструкции языка


Слайд 4 Каждый открывающий тэг, определяющий некоторую область данных

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

в документе обязательно должен иметь своего закрывающего "напарника“.

В

XML учитывается регистр символов.

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

Вся информация, располагающаяся между начальным и конечными тэгами, рассматривается в XML как данные и поэтому учитываются все символы форматирования ( т.е. пробелы, переводы строк, табуляции не игнорируются, как в HTML).

Документ должен иметь только один элемент верхнего уровня (элемент Документ или корневой элемент). Все другие элементы должны быть вложены в элемент верхнего уровня.

Well-formed XML


Слайд 5 Комментарии



Cпециальные символы

< , > "

Комментарии Cпециальные символы< , > " или $(десятичная форма записи), Атрибуты-

или $(десятичная форма записи), 

Атрибуты
- имя должно начинаться с

буквы или символа подчеркивания (_), после чего могут следовать или не следовать другие буквы, цифры, символы точки (.), тире (–) или подчеркивания;
- каждое имя атрибута может только один раз присутствовать в одном и том же начальном теге или в теге пустого элемента.
Например:
- правильно
- неправильно

XML. Конструкции языка


Слайд 6 строка может быть заключена как в одинарные ('),

строка может быть заключена как в одинарные ('), так и в

так и в двойные кавычки (");

строка не может содержать

внутри себя тот же символ кавычек, которыми она ограничена;

строка может содержать ссылку на символ или ссылку на внутренние примитивы общего назначения;

строка не может содержать символ < (Синтаксический анализатор может воспринять этот символ как начало описания XML-разметки.)

строка не может содержать символ &, если это не ссылка на символ или примитив.

XML. Атрибуты


Слайд 7 Директивы анализатора



CDATA

Необходима чтобы

Директивы анализатора	CDATA  Необходима чтобы задать область документа, которую при разборе

задать область документа, которую при разборе анализатор будет рассматривать

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

DTD (Document Type Definition)

Содержит правила, описывающие структуру документа

Документ автоматически проверятся на соответствие этим правилам

Описывает дочерние элементы и атрибуты для каждого элемента

XML. Конструкции языка


Слайд 8 Document Type Definition может быть описан в документе

Document Type Definition может быть описан в документе или во внешнем файле:  ]>Valid XML

или во внешнем файле:

PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">






]>

Valid XML


Слайд 9 Schema
Предназначена для того же что и DTD
Для описания

SchemaПредназначена для того же что и DTDДля описания правил используется XMLБолее

правил используется XML
Более гибкие возможности, чем у DTD
Сложнее в

восприятии и создании средств её обработки











XML Schema

<страна
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="country.xsd">

<название>Франция
<население>59.7


Слайд 10 Есть xml-документ:
Пример. Входные данные

Есть xml-документ:Пример. Входные данные    Nikolaj  Ivanov

SYSTEM "students.dtd">


Nikolaj

Ivanov
23
PF-11


Petr
Kilkin
22
FP-22


Petr
Taranov
43
FP-33










Слайд 11 Student:
name: Nikolaj
surname: Ivanov
age: 23
group:

Student: name: Nikolaj surname: Ivanov age: 23 group: PF-11Student: name: Petr

PF-11
Student:
name: Petr
surname: Kilkin
age: 22
group: FP-22
Student:

name: Petr
surname: Taranov
age: 43
group: FP-33

Пример. Желанный результат


Слайд 12 XML парсеры:

DOM-парсер (Document Object Model) – предварительно анализируется

XML парсеры:DOM-парсер (Document Object Model) – предварительно анализируется XML-документ и сохраняется

XML-документ и сохраняется дерево элементов XML в оперативной памяти.

Требователен к ресурсам.

SAX-парсер (Simple API for XML) — парсер, основывающийся на событиях (event-based). Быстр, за счет разбора только конкретной части документа. Занимает мало памяти.

Разбор XML документов


Слайд 13 SAX API (на примере org.xml.sax)
Представляет следующие интерфейсы для

SAX API (на примере org.xml.sax)Представляет следующие интерфейсы для манипулирования XML:ContentHandler –

манипулирования XML:
ContentHandler – ключевой интерфейс. Вызывая различные методы интерфейса

XMLReader сообщает приложению о содержимом разбираемого документа
DTDHandler – определяет методы которые используются для получения от XMLReader информации о нотации и необрабатываемых обьявлениях сущностей в DTD документа.
ErrorHandler – используется для генерации ридером предупреждений, ошибке или неисправимой ошибке.
InputSource – описывает источник входных данных: поток байт или символов, файл и т.п. откуда парсеру считывать документ.
XMLReader – основной интерфейс содержащий методы парсера реализованые в других классах, таких как SAXParser или SAXParcerFactory
Пакет org.xml.sax.helpers – содержит вспомогательные классы необходимые при работе с SAX-парсерами: DefaultHandler, XMLReaderFactory, XMLReaderImpl, ParserAdapter.

SAX API


Слайд 14 import javax.xml.parsers.*;
import org.xml.sax.*;
import java.io.IOException;

public class

import javax.xml.parsers.*; import org.xml.sax.*; import java.io.IOException; public class SAXExample extends org.xml.sax.helpers.DefaultHandler

SAXExample extends org.xml.sax.helpers.DefaultHandler {

public void process(String filename)


throws SAXException, IOException, ParserConfigurationException {

SAXParserFactory.newInstance().
newSAXParser().parse(filename, this);
}

public static void main(String[] args) throws Exception {

new SAXExample().process(args[0]);
}
...

Пример. SAX-парсинг


Слайд 15 ...
private int level = 0;
private boolean

... private int level = 0; private boolean inStudent = false;

inStudent = false;
private StringBuffer text = new StringBuffer();


@Override
public void startElement(String uri, String localName, String qName, Attributes attributes)
throws SAXException {

level++;
if (level == 2 && qName.equals("student")) {
inStudent = true;
System.out.println("Student:");
}
text.setLength(0);
}
@Override
public void characters(char[] ch, int start, int length) throws SAXException {
text.append(ch, start, length);
}
@Override
public void endElement(String uri, String localName, String qName) throws SAXException {
if (level == 3 && inStudent)
System.out.println(" "+ qName +": "+ text);
if (level == 2)
inStudent = false;
level--;
}

Пример. SAX-парсинг. Продолжение


Слайд 16 DOM API (на примере org.w3c.dom)
Представляет следующие интерфейсы:
Node

DOM API (на примере org.w3c.dom)Представляет следующие интерфейсы: Node – представляет произвольный

– представляет произвольный элемент дерева (включая текст и атрибуты).

Document – представляет документ DOM и служит корнем дерева документа.
DocumentType – данный интерфейс представляет DTD документа
Element – представляет элемент (тэг) документа, который может иметь подузлы.
DocumentFragment – представляет часть (или фрагмент) документа, один или несколько смежных узлов со всеми подэлементами.
CDATASection – представляет раздел CDATA.
NodeList – представляет упорядоченное множество узлов предназначенных только для чтения.
DOMException – при порождении ошибки API DOM создается экземпляр данного класса

DOM API


Слайд 17 import org.w3c.dom.*;
import javax.xml.parsers.*;
import org.xml.sax.*;
import java.io.IOException;

import org.w3c.dom.*; import javax.xml.parsers.*; import org.xml.sax.*; import java.io.IOException; public class DOMExample


public class DOMExample {
public static Document

parse(String filename)
throws ParserConfigurationException, SAXException, IOException {
return DocumentBuilderFactory.newInstance().
newDocumentBuilder().parse(filename);
}
public static void main(String[] args) throws Exception {
Document doc = parse(args[0]);
NodeList items = doc.getDocumentElement().getChildNodes();
for (int i = 0; i < items.getLength(); i++)
if (items.item(i).getNodeName().equals("student"))
printStudent(items.item(i));
}
private static void printStudent(Node node) {
System.out.println("Student:");
NodeList nodes = node.getChildNodes();
for (int i = 0; i < nodes.getLength(); i++)
if (nodes.item(i).getNodeType() == Node.ELEMENT_NODE)
System.out.println(" "+ nodes.item(i).getNodeName() + ": "+
nodes.item(i).getFirstChild().getNodeValue());
}
}

Пример. DOM-парсинг


Слайд 18 XSL – eXtensible Stylesheet Language
XSLT – трансформации. XML документ, описывающий

XSL – eXtensible Stylesheet LanguageXSLT – трансформации. XML документ, описывающий способ преобразования одного

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

XML) документ. Пространство имен http://www.w3.org/1999/XSL/Transform.
XPath – язык запросов к XML документу. Состоит из пути к элементу в дереве или вызов функции, результатом запроса будет набор всех элементов, соответствующих пути.

Слайд 19 XSLT – eXtensible Stylesheet Language Transformations
... body ...

XSLT – eXtensible Stylesheet Language Transformations... body ... ... body ... ... ... ...

select="xpath expression"/>
... body ...


...
... ...



Слайд 20 XPath
Пример: /html/body/*/span[@name="span1" Равнозначно: /child::html/child::body/child::*/child::span[attribute::name="span1"]
Оси: ancestor, ancestor-or-self, attribute (@), child

(нет), descendant, descendant-or-self (//), following, following-sibling, namespace, parent (..),

preceding, preceding-sibling, self (.)
Функции: document, format-number, node, text, current, position, last, count, id, sum
Примеры:
node//li[last()]
../text()
/root/@attribute
//book[price > 20]
document($path)/root/node



Слайд 21

Student:

indent="no"/>



Student:






:




Пример. XSLT-преобразование


Слайд 22 import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import java.io.*;

public class

import javax.xml.transform.*; import javax.xml.transform.stream.*; import java.io.*; public class TransformXML { public

TransformXML {

public static void main(String[] args)

throws TransformerException, IOException, TransformerConfigurationException {

TransformerFactory.newInstance().
newTransformer(new StreamSource(args[0])).
transform(
new StreamSource(args[1]),
new StreamResult(System.out));
}
}

Пример. XSLT-преобразование из Java


  • Имя файла: rabota-s-xml-dannymi-v-java.pptx
  • Количество просмотров: 153
  • Количество скачиваний: 0