T.M. SoftStudio

feci quod potui, faciant meliora potentes

JAXP API

DOM

Пакеты org.w3c.dom, org.w3c.dom.bootstrap, org.w3c.dom.events и org.w3c.dom.ls обеспечивают поддержку модели Document Object Model (DOM) для платформы Java SE, позволяя управлять содержимым и структурой XML-документов.

Примечание

Модель DOM описывается набором классификаций, разделенным на три уровня. Первый уровень обеспечивает базовые возможности модели, такие как получение и управление деревом узлов документа. Второй уровень обеспечивает поддержку пространства имен и событий. Третий уровень включает в себя расширения DOM. Платформа Java SE реализует все три уровня DOM-модели.

Так как в модели DOM документ представляется в виде дерева узлов, основным интерфейсом DOM API является интерфейс Node пакета org.w3c.dom, представляющий узел дерева документа.

Интерфейс Node имеет перечисленные далее поля:

  • static final short ELEMENT_NODE — узел представляет элемент;

  • static final short ATTRIBUTE_NODE — узел представляет атрибут;

  • static final short TEXT_NODE — узел представляет текстовый объект;

  • static final short CDATA_SECTION_NODE — узел представляет секцию CDATA;

  • static final short ENTITY_REFERENCE_NODE — узел представляет ссылку на сущность;

  • static final short ENTITY_NODE — узел представляет сущность;

  • static final short PROCESSING_INSTRUCTION_NODE — узел представляет инструкцию по обработке;

  • static final short COMMENT_NODE — узел представляет комментарии;

  • static final short DOCUMENT_NODE — узел представляет корневой элемент документа;

  • static final short DOCUMENT_TYPE_NODE — узел представляет DTD-описание;

  • static final short DOCUMENT_FRAGMENT_NODE — узел представляет фрагмент документа;

  • static final short NOTATION_NODE — узел представляет нотацию.

Следующие поля позволяют сравнивать расположение определенного узла с текущим узлом в иерархии DOM:

  • static final short DOCUMENT_POSITION_DISCONNECTED — два узла не имеют общего узла-контейнера;

  • static final short DOCUMENT_POSITION_PRECEDING — определенный узел предшествует текущему узлу;

  • static final short DOCUMENT_POSITION_FOLLOWING — определенный узел следует за текущим узлом;

  • static final short DOCUMENT_POSITION_CONTAINS — определенный узел содержит текущий узел;

  • static final short DOCUMENT_POSITION_CONTAINED_BY — текущий узел содержит определенный узел;

  • static final short DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC — расположение зависит от реализации.

Интерфейс Node имеет перечисленные далее методы.

  • String getNodeName()

Возвращает имя узла.

  • String getNodeValue()

void setNodeValue(String nodeValue)

Первый метод возвращает, второй метод устанавливает значение узла.

  • short getNodeType()

Возвращает код, соответствующий типу узла.

  • Node getParentNode()

Возвращает узел, родительский для данного узла.

  • NodeList getChildNodes()

Возвращает список дочерних узлов данного узла. Интерфейс org.w3c.dom.NodeList представляет коллекцию DOM-узлов и имеет методы:

– Node item(int index) — возвращает узел по его индексу в коллекции;

– int getLength() — возвращает количество узлов в коллекции.

  • Node getFirstChild()

Node getLastChild()

Первый метод возвращает первый дочерний узел данного узла, второй метод — последний дочерний узел данного узла.

  • Node getPreviousSibling()

Node getNextSibling()

Первый метод возвращает предшествующий узел данного узла, второй метод — последующий узел для данного узла.

  • NamedNodeMap getAttributes()

Возвращает объект org.w3c.dom.NamedNodeMap, представляющий коллекцию атрибутов данного узла. Интерфейс NamedNodeMap представляет коллекцию узлов, характеризующихся именами, и имеет следующие методы:

– Node getNamedItem(String name) — возвращает узел по его имени;

– Node setNamedItem(Node arg) — добавляет узел в коллекцию, используя его имя;

– Node removeNamedItem(String name) — удаляет узел из коллекции, используя его имя;

– Node item(int index) — возвращает узел по его индексу в коллекции;

– int getLength() — возвращает количество узлов в коллекции;

– Node getNamedItemNS(String namespaceURI, String localName) — возвращает узел по его локальному имени и пространству имен;

– Node setNamedItemNS(Node arg) — добавляет узел в коллекцию, используя его локальное имя и пространство имен;

– Node removeNamedItemNS(String namespaceURI, String localName) — удаляет узел из коллекции, используя его локальное имя и пространство имен.

  • Document getOwnerDocument()

Возвращает объект org.w3c.dom.Document, связанный с данным узлом. Интерфейс Document также является ключевым в DOM API, т. к. представляет полный HTML- или XML-документ. Интерфейс Document расширяет интерфейс Node и дополнительно предоставляет следующие методы:

    – DocumentType getDoctype() — возвращает DTD-описание документа.

    – DOMImplementation getImplementation() — возвращает объект org.w3c.dom.DOMImplementation, обеспечивающий взаимодействие с конкретной DOM-реализацией. Интерфейс DOMImplementation предоставляет методы:

□ boolean hasFeature(String feature, String version) — тестирует свойства и версию реализации DOM;

□ DocumentType createDocumentType(String qualifiedName, String publicId, String systemId) — создает пустой DTD-узел;

□ Document createDocument(String namespaceURI, String qualifiedName, DocumentType doctype) — создает новый узел Document;

□ Object getFeature(String feature, String version) — возвращает объект, реализующий определенной свойство.

Объект DOMImplementation создается с помощью класса-фабрики org.w3c.dom.bootstrap.DOMImplementationRegistry. Класс DOMImplementationRegistry имеет методы:

□ public static DOMImplementationRegistry newInstance() — создает объект фабрики;

□ public DOMImplementation getDOMImplementation(String features) — возвращает объект DOMImplementation;

□ public DOMImplementationList getDOMImplementationList(String features) — возвращает список DOM-реализаций, поддерживающих определенной свойство;

□ public void addSource(DOMImplementationSource s) — регистрирует определенную DOM-реализацию;

    – Element getDocumentElement() — возвращает корневой элемент документа;

    – Element createElement(String tagName)

Element createElementNS(String namespaceURI, String qualifiedName)

Создают элемент документа. Интерфейс org.w3c.dom.Element расширяет интерфейс Node и представляет элемент HTML- или XML-документа, дополнительно обеспечивая методы:

□ String getTagName() — возвращает имя элемента;

□ String getAttribute(String name) — возвращает атрибут элемента по его имени;

□ void setAttribute(String name, String value) или void setAttributeNS(String namespaceURI, String qualifiedName, String value) — добавляют новый атрибут;

□ void removeAttribute(String name) или void removeAttributeNS(String namespaceURI, String localName) — удаляют атрибут;

□ Attr getAttributeNode(String name) или Attr getAttributeNodeNS(String namespaceURI, String localName) — возвращает узел атрибута;

□ Attr setAttributeNode(Attr newAttr) или Attr setAttributeNodeNS(Attr newAttr) — добавляют узел атрибута;

□ Attr removeAttributeNode(Attr oldAttr) — удаляет узел атрибута;

□ NodeList getElementsByTagName(String name) или NodeList getElementsByTagNameNS(String namespaceURI, String localName) — возвращают список дочерних элементов;

□ String getAttributeNS(String namespaceURI, String localName) — возвращает значение атрибута;

□ boolean hasAttribute(String name) или boolean hasAttributeNS(String namespaceURI, String localName) — тестирует наличие атрибута;

□ TypeInfo getSchemaTypeInfo() — возвращает описание элемента;

□ void setIdAttribute(String name, boolean isId), void setIdAttributeNS(String namespaceURI, String localName, boolean isId) или void setIdAttributeNode(Attr idAttr, boolean isId) — устанавливают атрибут-идентификатор элемента.

    – DocumentFragment createDocumentFragment() — создает фрагмент документа;

    – Text createTextNode(String data) — создает текстовый узел;

    – Comment createComment(String data) — создает узел комментариев;

    – CDATASection createCDATASection(String data) — создает узел секции CDATA;

    – ProcessingInstruction createProcessingInstruction(String target, String data) — создает узел инструкции по обработке;

    – Attr createAttribute(String name) или Attr createAttributeNS(String namespaceURI, String qualifiedName) — создают узел атрибута;

    – EntityReference createEntityReference(String name) — создает узел ссылки на сущность;

    – NodeList getElementsByTagName(String tagname) или NodeList getElementsByTagNameNS(String namespaceURI, String localName) — возвращают список элементов документа;

    – Node importNode(Node importedNode, boolean deep) — осуществляет импорт узла из другого документа с поддеревом или без него;

    – Element getElementById(String elementId) — возвращает элемент документа по его идентификатору;

    – String getInputEncoding() — возвращает кодировку документа, используемую при разборе документа;

    – String getXmlEncoding() — возвращает значение атрибута encoding элемента <?xml ... ?>;

    – boolean getXmlStandalone() — определяет, является ли документ автономным;

    – void setXmlStandalone(boolean xmlStandalone) — устанавливает значение атрибута standalone;

    – String getXmlVersion() и void setXmlVersion(String xmlVersion) — возвращает и устанавливает значение атрибута version;

    – boolean getStrictErrorChecking() и void setStrictErrorChecking(boolean strictErrorChecking) — первый метод определяет, второй метод устанавливает строгую проверку ошибок;

    – String getDocumentURI() и void setDocumentURI(String documentURI) — первый метод возвращает, второй метод устанавливает URI-адрес документа;

    – Node adoptNode(Node source) — адаптирует узел при его импорте в документ;

    – DOMConfiguration getDomConfig() — возвращает объект org.w3c.dom.DOMConfiguration, представляющий конфигурацию документа с параметрами. Интерфейс DOMConfiguration предоставляет методы void setParameter(String name, Object value) и Object getParameter(String name) для установки и возврата параметров конфигурации, таких как canonical-form, cdata-sections, check-character-normalization, comments, datatype-normalization, element-content-whitespace, entities, error-handler, infoset, namespaces, namespace-declarations, normalize-characters, schema-location, schema-type, split-cdata-sections, validate, validate-if-schema, well-formed, а также методы:

□ boolean canSetParameter(String name, Object value) — тестирует поддержку параметра;

□ DOMStringList getParameterNames() — список параметров конфигурации;

    – void normalizeDocument() — осуществляет нормализацию документа;

    – Node renameNode(Node n, String namespaceURI, String qualifiedName) — переименовывает узел элемента или атрибута.

  • Node insertBefore(Node newChild, Node refChild)

Node replaceChild(Node newChild, Node oldChild)

Node removeChild(Node oldChild)

Node appendChild(Node newChild)

Node cloneNode(boolean deep)

Вставляет, заменяет, удаляет и дублирует узлы.

  • boolean hasChildNodes()

Тестирует, имеет ли узел дочерние узлы.

  • void normalize()

Осуществляет нормализацию узла.

  • boolean isSupported(String feature, String version)

Тестирует DOM-реализацию на поддержку свойств.

  • String getNamespaceURI()

String getLocalName()

String getPrefix()

void setPrefix(String prefix)

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

  • boolean hasAttributes()

Тестирует узел на наличие атрибутов.

  • String getBaseURI()

Возвращает базовый URI узла.

  • short compareDocumentPosition(Node other)

Сравнивает взаимное расположение двух узлов.

  • String getTextContent()

void setTextContent(String textContent)

Первый метод возвращает, второй метод устанавливает текстовое содержимое узла и его дочерних узлов.

  • boolean isSameNode(Node other)

boolean isEqualNode(Node arg)

Перый метод тестирует на схожесть двух узлов, второй метод — на полное соответствие двух узлов.

  • String lookupPrefix(String namespaceURI)

String lookupNamespaceURI(String prefix)

Перый метод возвращает префикс пространства имен, второй метод возвращает URI пространства имен.

  • boolean isDefaultNamespace(String namespaceURI)

Тестирует пространство имен на значение по умолчанию.

  • Object getFeature(String feature, String version)

Возвращает объект, реализующий определенное свойство.

  • Object setUserData(String key, Object data, UserDataHandler handler)

Object getUserData(String key)

Устанавливает ключ для объекта и возвращает объект по ключу.

Интерфейс Node является базовым для таких интерфейсов как Document, DocumentFragment, Attr, CharacterData, DocumentType, Element, Entity, EntityReference, Notation и ProcessingInstruction.

Интерфейс Attr, представляющий атрибут элемента, дополнительно имеет перечисленные далее методы.

  • String getName()

Возвращает имя атрибута.

  • boolean getSpecified()

Возвращает true, если значение атрибута явно определено в документе.

  • String getValue()

void setValue(String value)

Первый метод возвращает, второй метод устанавливает значение атрибута.

  • Element getOwnerElement()

Возвращает объект Element, представляющий элемент атрибута.

  • TypeInfo getSchemaTypeInfo()

Возвращает описание атрибута в схеме документа.

  • boolean isId()

Возвращает true, если атрибут является идентификатором.

Интерфейс CharacterData, представляющий символьные данные, дополнительно имеет перечисленные далее методы.

  • String getData()

void setData(String data)

Первый метод возвращает, второй метод устанавливает символьные данные объекта CharacterData.

  • int getLength()

Возвращает 16-битовую длину символьных данных.

  • String substringData(int offset, int count)

Возвращает часть символьных данных.

  • void appendData(String arg)

void insertData(int offset, String arg)

void deleteData(int offset, int count)

void replaceData(int offset, int count, String arg)

Добавляет, вставляет, удаляет и заменяет символьные данные.

Интерфейс Comment расширяет интерфейс CharacterData, представляя комментарии документа.

Интерфейс DocumentType представляет DTD-описание документа и имеет дополнительно к методам интерфейса Node перечисленные далее методы.

  • String getName()

Возвращает имя DTD-описания.

  • NamedNodeMap getEntities()

Возвращает объект NamedNodeMap, содержащий список именованных сущностей, продекларированных в DTD-описании документа.

  • NamedNodeMap getNotations()

Возвращает объект NamedNodeMap, содержащий список именованных нотаций, продекларированных в DTD-описании документа.

  • String getPublicId()

String getSystemId()

Первый метод возвращает публичный идентификатор DTD-описания, второй метод — системный идентификатор DTD-описания.

  • String getInternalSubset()

Возвращает DTD-описание документа одной строкой.

Интерфейс Entity представляет как анализируемую, так и не анализируемую сущность и дополнительно к методам интерфейса Node имеет перечисленные далее методы.

  • String getPublicId()

String getSystemId()

Первый метод возвращает публичный идентификатор сущности, второй метод — и системный идентификатор сущности.

  • String getNotationName()

Для неанализируемой сущности возвращает имя нотации.

  • String getInputEncoding()

Для внешней сущности возвращает кодировку разбора.

  • String getXmlEncoding()

Для внешней сущности возвращает продекларированную кодировку.

  • String getXmlVersion()

Для внешней сущности возвращает XML-версию.

Интерфейс EntityReference представляет ссылку на сущность и не имеет дополнительных методов к методам интерфейса Node.

Интерфейс Notation представляет нотации DTD-описания и дополнительно к методам интерфейса Node имеет методы String getPublicId() и String getSystemId().

Интерфейс ProcessingInstruction представляет инструкцию по обработке и расширяет интерфейс Node с дополнительными методами, перечисленными далее.

  • String getTarget()

Возвращает первую лексему открывающего тега инструкции по обработке.

  • String getData()

void setData(String data)

Первый метод возвращает, второй метод устанавливает саму инструкцию по обработке.

Интерфейс Text расширяет интерфейс CharacterData, представляя текстовое содержимое элемента или атрибута с дополнительными методами:

  • Text splitText(int offset)

Из одного узла создает два узла, возвращая новый узел.

  • boolean isElementContentWhitespace()

Возвращает true, если узел содержит игнорируемые пробелы.

  • String getWholeText()

Text replaceWholeText(String content)

Первый метод возвращает, второй метод заменяет текстовое содержимое.

Для организации таких структур, как хэш-таблица, DOM-узел может хранить ключи объектов, создаваемых с помощью метода Node.setUserData(). При модификации такого DOM-узла необходимо управление общей структурой данных, включающей связанные с ключами объекты. Интерфейс org.w3c.dom.UserDataHandler как раз и предназначен для вызова при клонировании, импорте или переименовании DOM-узла. При клонировании, импорте, удалении, переименовании или адаптации узла вызывается метод void handle(short operation, String key, Object data, Node src, Node dst) интерфейса UserDataHandler.

Интерфейс org.w3c.dom.TypeInfo представляет описание типа данных элемента или атрибута, данное в схеме документа. Интерфейс TypeInfo позволяет извлекать имя и пространство имен типа данных с помощью методов String getTypeName() и String getTypeNamespace(). Метод boolean isDerivedFrom(String typeNamespaceArg, String typeNameArg, int derivationMethod) интерфейса TypeInfo возвращает true, если текущий тип данных происходит из указанного в параметрах метода типа данных. Третий параметр метода — это способ присхождения типа данных (расширение — 2, список — 8, ограничение — 1, объединение — 4).

Пакет org.w3c.dom.events позволяет регистрировать DOM-узлы в качестве слушателей различных событий, таких как событий интерфейса пользователя — щелчки кнопки мыши или нажатия клавиш, или событий, связанных с изменениями структуры документа.

Регистрация DOM-узлов как слушателей событий производится с помощью метода void addEventListener(String type, EventListener listener, boolean useCapture) интерфейса org.w3c.dom.events.EventTarget, который реализуется всеми DOM-узами, поддерживающими модель DOM Event Model. Первый параметр type метода определяет тип события, для которого производится регистрация; второй параметр listener определяет объект EventListener, содержащий метод, вызываемый при возникновении определенного события; третий параметр useCapture указывает способ доставки события внутри дерева документа. Если параметр useCapture установлен в значение true, тогда событие доставляется первому узлу, зарегистированному для получения данного события. Затем осуществляется поиск его дочерних элементов, также зарегистированных для получения данного события. Таким образом, событие доставляется сверху вниз по дереву — capture phase. Если же параметр useCapture установлен в значение false, тогда событие сначала доставляется последнему зарегистрированному дочернему элементу, а затем поднимается вверх по дереву и доставляется всем родительским элементам, зарегистрированным для получения данного события — bubble phase.

Интерфейс org.w3c.dom.events.EventListener реализуется классом пользовательского приложения, которое обрабатывает документ, для переопределения метода void handleEvent(Event evt) интерфейса, вызываемого для зарегистрированного DOM-узла при получении определенного события.

Интерфейс EventTarget также имеет методы void removeEventListener(String type, EventListener listener, boolean useCapture) — удаляет регистрацию DOM-узла, и boolean dispatchEvent(Event evt) — симулирует создание события, возвращает true, если действия по умолчанию, связанные с данным событием аннулированы.

Интерфейс org.w3c.dom.events.Event является базовым интерфейсом для интерфейсов, представляющих события модели DOM Event Model. Интерфейс Event имеет перечисленные далее методы.

  • String getType()

Возвращает имя события.

  • EventTarget getTarget()

Возвращает узел, который зарегистрирован для получения данного события.

  • EventTarget getCurrentTarget()

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

  • short getEventPhase()

Указывает, какая фаза доставки события в данный момент выполняется — capture phase, target phase или bubble phase.

  • boolean getBubbles()

Указывает, может ли данное событие доставляться реверсивным способом.

  • boolean getCancelable()

Возвращает true, если действия по умолчанию, связанные с данным событием, могут быть аннулированы. Например, действие, связанное с активацией гиперссылки, может быть аннулировано вызовом метода void preventDefault().

  • void preventDefault()

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

  • long getTimeStamp()

Возвращает время, для которого событие создано.

  • void stopPropagation()

Останавливает дальнейшую передачу события.

  • void initEvent(String eventTypeArg, boolean canBubbleArg,
    boolean cancelableArg)

Производит инициализацию события.

Интерфейс org.w3c.dom.events.UIEvent расширяет интерфейс Event и представляет события, связанные с интерфейсом пользователя. Интерфейс UIEvent дополнительно имеет следующие методы:

  • org.w3c.dom.views.AbstractView getView()

Возвращает представление документа.

  • int getDetail()

Указывает дополнительную информацию о событии, например, количество щелчков кнопки мышки.

  • void initUIEvent(String typeArg, boolean canBubbleArg,
    boolean cancelableArg, org.w3c.dom.views.AbstractView viewArg,
    int detailArg)

Инициализирует событие.

Интерфейс org.w3c.dom.events.MutationEvent расширяет интерфейс Event и представляет события, связанные с изменением документа. Интерфейс MutationEvent дополнительно имеет следующие методы.

  • Node getRelatedNode()

Указывает измененный узел документа.

  • String getPrevValue()

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

  • String getNewValue()

Возвращает новое значение атрибута или символьных данных.

  • String getAttrName()

Возвращает имя измененного атрибута.

  • short getAttrChange()

Указывает тип изменения атрибута: 1 — модификация, 2 — добавление, 3 — удаление.

  • void initMutationEvent(String typeArg, boolean canBubbleArg,
    boolean cancelableArg, Node relatedNodeArg, String prevValueArg,
    String newValueArg, String attrNameArg, short attrChangeArg)

Инициализирует событие.

Интерфейс org.w3c.dom.events.DocumentEvent реализуется объектом Document и позволяет создать событие определенного типа с помощью метода Event createEvent(String eventType). После создания события, его необходимо инициализировать, используя метод initEvent.

Пакет org.w3c.dom.ls обеспечивает поддержку спецификации DOM Level 3 Load and Save — набор интерфейсов для загрузки и сохранения объектов документа.

Интерфейс org.w3c.dom.ls.LSParser предназначен для разбора XML-документа и создания соответствующей DOM-структуры. Интерфейс LSParser предлагает следующие методы:

  • DOMConfiguration getDomConfig()

Возвращает конфигурацию, используемую при разборе документа.

  • LSParserFilter getFilter()

void setFilter(LSParserFilter filter)

Первый метод возвращает, второй метод устанавливает объект LSParserFilter, используемый для управления процессом разбора документа. Интерфейс org.w3c.dom.ls.LSParserFilter имеет следующие методы, вызываемые при разборе документа:

    – short startElement(Element elementArg) — вызывается при разборе начального тега элемента, возвращает: 1 — элемент допускается для включения в DOM-дерево, 2 — элемент отвергается, 3 — элемент пропускается, 4 — обработка документа прерывается;

    – short acceptNode(Node nodeArg) — вызывается после разбора каждого узла, также возвращает: 1 — FILTER_ACCEPT, 2 — FILTER_REJECT, 3 — FILTER_SKIP, 4 — FILTER_INTERRUPT;

    – int getWhatToShow() — возвращает код узла, который доступен для метода LSParserFilter.acceptNode().

  • boolean getAsync()

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

  • boolean getBusy()

Возвращает true, если парсер занят загрузкой документа.

  • Document parse(LSInput input)

Осуществляет разбор документа из ресурса, представленного объектом LSInput. Интерфейс org.w3c.dom.ls.LSInput представляет входящий источник данных и имеет следующие методы:

    – Reader getCharacterStream() и void setCharacterStream(Reader characterStream) — возвращает и устанавливает символьный поток данных ресурса;

    – InputStream getByteStream() и void setByteStream(InputStream byteStream) — возвращает и устанавливает байтовый поток данных ресурса;

    – String getStringData() и void setStringData(String stringData) — возвращает и устанавливает строковые данные ресурса;

    – String getSystemId() и void setSystemId(String systemId) — возвращает и устанавливает системный идентификатор ресурса;

    – String getPublicId() и void setPublicId(String publicId) — возвращает и устанавливает публичный идентификатор ресурса;

    – String getBaseURI() и void setBaseURI(String baseURI) — возвращает и устанавливает базовый URI ресурса;

    – String getEncoding() и void setEncoding(String encoding) — возвращает и устанавливает XML-кодировку документа;

    – boolean getCertifiedText() и void setCertifiedText(boolean certifiedText) — возвращает true и устанавливает, что ресурс является Unicode-нормализованным текстом.

  • Document parseURI(String uri)

Осуществляет разбор документа, находящегося по URI-адресу.

  • Node parseWithContext(LSInput input, Node contextArg, short action)

Осуществляет разбор XML-фрагмента и вставляет его в существующее дерево.

  • void abort()

Прерывает загрузку документа парсером.

Интерфейс org.w3c.dom.ls.LSSerializer предназначен для сериализации DOM-дерева в XML-документ. Интерфейс LSSerializer предлагает следующие методы.

  • DOMConfiguration getDomConfig()

Возвращает конфигурацию, используемую при сериализации документа.

  • String getNewLine()

void setNewLine(String newLine)

Первый метод возвращает, второй метод устанавливает символы конца строки документа.

  • LSSerializerFilter getFilter()

void setFilter(LSSerializerFilter filter)

Первый метод возвращает, второй метод устанавливает фильтр сериализации документа. Интерфейс org.w3c.dom.ls.LSSerializerFilter имеет следующие методы:

    – short acceptNode(Node nodeArg) — вызывается при сериализации каждого узла, возвращает: 1 — FILTER_ACCEPT, 2 — FILTER_REJECT, 3 — FILTER_SKIP, 4 — FILTER_INTERRUPT;

    – int getWhatToShow() — возвращает код узла, который доступен для фильтрации.

  • boolean write(Node nodeArg, LSOutput destination)

Осуществляет сериализацию узла в объект LSOutput, возвращает true в случае успешной сериализации. Интерфейс org.w3c.dom.ls.LSOutput представляет исходящие данные и имеет следующие методы:

    – Writer getCharacterStream() и void setCharacterStream(Writer characterStream) — возвращает и устанавливает исходящий символьный поток;

    – OutputStream getByteStream() и void setByteStream(OutputStream byteStream) — возвращает и устанавливает исходящий байтовый поток;

    – String getSystemId() и void setSystemId(String systemId) — возвращает и устанавливает системный идентификатор исходящего ресурса;

    – String getEncoding() и void setEncoding(String encoding) — возвращает и устанавливает кодировку исходящего ресурса.

  • boolean writeToURI(Node nodeArg, String uri)

Осуществляет сериализацию узла в ресурс с указанным системным URI-идентификатором, возвращает true в случае успешной сериализации.

  • String writeToString(Node nodeArg)

Осуществляет сериализацию в строку.

Интерфейс org.w3c.dom.ls.LSResourceResolver реализуется классом пользовательского приложения для распознавания парсером ссылок на внешние ресурсы. Реализация интерфейса LSResourceResolver регистрируется как параметр "resource-resolver" объекта DOMConfiguration и при открытии внешнего ресурса парсер вызывает метод LSInput resolveResource(String type, String namespaceURI, String publicId, String systemId, String baseURI) интерфейса LSResourceResolver.

Пакет org.w3c.dom.ls также содержит интерфейс LSLoadEvent, расширяющий интерфейс org.w3c.dom.events.Event и представляющий события, связанные с окончанием загрузки документа для разбора. Интерфейс LSLoadEvent дополнительно имеет методы Document getNewDocument() — возвращает загруженный документ, и LSInput getInput() — возвращает объект источника данных для разбора.

Интерфейс org.w3c.dom.ls.LSProgressEvent расширяет интерфейс org.w3c.dom.events.Event и представляет события, связанные с процессом разбора документа. Интерфейс LSProgressEvent дополнительно предоставляет следующие методы.

  • LSInput getInput()

Возвращает объект источника данных разбора.

  • int getPosition()

Возвращает текущую позицию разбора источника данных.

  • int getTotalSize()

Возвращает размер разбираемого документа.

Новые объекты LSInput, LSOutput, LSParser и LSSerializer создаются с помощью класса-фабрики org.w3c.dom.ls.DOMImplementationLS, объект которого, как правило, получается методом DOMImplementation.getFeature(). Для создания объектов интерфейс DOMImplementationLS предоставляет методы:

  • LSParser createLSParser(short mode, String schemaType), где параметр mode принимает значения 1 — синхронный парсер и 2 — асинхронный парсер;

  • LSSerializer createLSSerializer();

  • LSInput createLSInput();

  • LSOutput createLSOutput().