Интерфейс LSInput
public interface LSInput
Этот интерфейс представляет собой источник данных для ввода.
Этот интерфейс позволяет приложению инкапсулировать информацию об источнике ввода в один объект, который может включать общедоступный идентификатор, системный идентификатор, поток байтов (возможно, со специфицированной кодировкой), базовый URI и/или поток символов.
Точные определения потока байтов и потока символов зависят от связывания.
Приложение должно предоставлять объекты, реализующие этот интерфейс, всякий раз, когда такие объекты необходимы. Приложение может либо предоставить свои собственные объекты, реализующие этот интерфейс, либо использовать универсальный фабричный метод DOMImplementationLS.createLSInput() для создания объектов, реализующих этот интерфейс.
LSParser будет использовать объект LSInput для определения способа чтения данных. LSParser будет анализировать различные источники ввода, указанные в LSInput, в следующем порядке, чтобы определить, из какого источника читать: будет использован первый непустой и не равный null источник.
-
LSInput.characterStream -
LSInput.byteStream -
LSInput.stringData -
LSInput.systemId -
LSInput.publicId
Если все источники ввода равны null, LSParser сообщит об ошибке DOMError с DOMError.type равным "no-input-specified" и DOMError.severity равным DOMError.SEVERITY_FATAL_ERROR.
Объекты LSInput принадлежат приложению. Реализация DOM никогда их не будет изменять (хотя она может создавать копии и изменять копии, если это необходимо).
См. также Спецификацию загрузки и сохранения (DOM) уровня 3.
Методы
| Модификатор и тип | Метод и описание |
|---|---|
String |
getBaseURI() Базовый URI для использования (см. раздел 5.1.4 в [IETF RFC 2396]) для разрешения относительного |
InputStream |
getByteStream() Атрибут языка и типа, зависящий от связывания, представляющий поток байтов. |
boolean |
getCertifiedText() Если установлено в true, предполагается, что вход сертифицирован (см. раздел 2.13 в [XML 1.1]) при разборе [XML 1.1]. |
Reader |
getCharacterStream() Атрибут языка и типа, зависящий от связывания, представляющий поток 16-битных единиц. |
String |
getEncoding() Кодировка символов, если известна. |
String |
getPublicId() Общедоступный идентификатор этого источника ввода. |
String |
getStringData() Данные строки для разбора. |
String |
getSystemId() Системный идентификатор, ссылка URI [IETF RFC 2396], для этого источника ввода. |
void |
setBaseURI(String baseURI) Базовый URI для использования (см. раздел 5.1.4 в [IETF RFC 2396]) для разрешения относительного |
void |
setByteStream(InputStream byteStream) Атрибут языка и типа, зависящий от связывания, представляющий поток байтов. |
void |
setCertifiedText(boolean certifiedText) Если установлено в true, предполагается, что вход сертифицирован (см. раздел 2.13 в [XML 1.1]) при разборе [XML 1.1]. |
void |
setCharacterStream(Reader characterStream) Атрибут языка и типа, зависящий от связывания, представляющий поток 16-битных единиц. |
void |
setEncoding(String encoding) Кодировка символов, если известна. |
void |
setPublicId(String publicId) Общедоступный идентификатор этого источника ввода. |
void |
setStringData(String stringData) Данные строки для разбора. |
void |
setSystemId(String systemId) Системный идентификатор, ссылка URI [IETF RFC 2396], для этого источника ввода. |
Методы
getCharacterStream
Reader getCharacterStream()
Атрибут языка и привязанного типа, представляющий поток 16-битных единиц. Приложение должно кодировать поток с использованием UTF-16 (определён в [Unicode] и в [ISO/IEC 10646]). Необязательно указывать объявление XML при использовании потоков символов. Если объявление XML присутствует, значение атрибута encoding будет проигнорировано.
setCharacterStream
void setCharacterStream(Reader characterStream)
Атрибут языка и привязанного типа, представляющий поток 16-битных единиц. Приложение должно кодировать поток с использованием UTF-16 (определён в [Unicode] и в [ISO/IEC 10646]). Необязательно указывать объявление XML при использовании потоков символов. Если объявление XML присутствует, значение атрибута encoding будет проигнорировано.
getByteStream
InputStream getByteStream()
Атрибут языка и привязанного типа, представляющий поток байтов.
Если приложение знает кодировку символов потока байтов, оно должно установить атрибут encoding. Установка encoding таким образом переопределит любую кодировку, указанную в XML-объявлении в данных.
setByteStream
void setByteStream(InputStream byteStream)
Атрибут языка и привязанного типа, представляющий поток байтов.
Если приложение знает кодировку символов потока байтов, оно должно установить атрибут encoding. Установка encoding таким образом переопределит любую кодировку, указанную в XML-объявлении в данных.
getStringData
String getStringData()
Строковые данные для разбора. Если предоставлено, это всегда будет рассматриваться как последовательность 16-битных единиц (символы, закодированные в UTF-16). Необязательно указывать объявление XML при использовании stringData. Если объявление XML присутствует, значение атрибута encoding будет проигнорировано.
setStringData
void setStringData(String stringData)
Строковые данные для разбора. Если предоставлено, это всегда будет рассматриваться как последовательность 16-битных единиц (символы, закодированные в UTF-16). Необязательно указывать объявление XML при использовании stringData. Если объявление XML присутствует, значение атрибута encoding будет проигнорировано.
getSystemId
String getSystemId()
Идентификатор системы, ссылка URI [RFC 2396], для этого источника ввода. Идентификатор системы необязателен, если есть поток байтов, поток символов или строковые данные. Всё же полезно предоставить его, так как приложение будет использовать его для разрешения любых относительных URI и может включить его в сообщения об ошибках и предупреждениях. (LSParser будет пытаться получить ресурс, идентифицируемый ссылкой URI, только если в источнике ввода нет другого ввода.)
Если приложение знает кодировку символов объекта, на который указывает идентификатор системы, оно может установить encoding с помощью атрибута encoding.
Если указанный идентификатор системы является относительной ссылкой URI (см. раздел 5 в [RFC 2396]), реализация DOM попытается разрешить относительный URI с baseURI в качестве базового, если это не удастся, поведение зависит от реализации.
setSystemId
void setSystemId(String systemId)
Идентификатор системы, ссылка URI [RFC 2396], для этого источника ввода. Идентификатор системы необязателен, если есть поток байтов, поток символов или строковые данные. Всё же полезно предоставить его, так как приложение будет использовать его для разрешения любых относительных URI и может включить его в сообщения об ошибках и предупреждениях. (LSParser будет пытаться получить ресурс, идентифицируемый ссылкой URI, только если в источнике ввода нет другого ввода.)
Если приложение знает кодировку символов объекта, на который указывает идентификатор системы, оно может установить encoding с помощью атрибута encoding.
Если указанный идентификатор системы является относительной ссылкой URI (см. раздел 5 в [RFC 2396]), реализация DOM попытается разрешить относительный URI с baseURI в качестве базового, если это не удастся, поведение зависит от реализации.
getPublicId
String getPublicId()
Идентификатор публичного источника для этого источника ввода. Он может быть сопоставлен с источником ввода с использованием механизма, зависящего от реализации (например, каталоги или другие отображения). Если указан, идентификатор публичного источника также может быть отображён в качестве части информации о расположении при сообщении об ошибках.
setPublicId
void setPublicId(String publicId)
Идентификатор публичного источника для этого источника ввода. Он может быть сопоставлен с источником ввода с использованием механизма, зависящего от реализации (например, каталоги или другие отображения). Если указан, идентификатор публичного источника также может быть отображён в качестве части информации о расположении при сообщении об ошибках.
getBaseURI
String getBaseURI()
Базовый URI для использования (см. раздел 5.1.4 в [RFC 2396]) для разрешения относительного systemId в абсолютный URI.
Если базовый URI сам является относительным URI, пустой строкой или null, поведение зависит от реализации.
setBaseURI
void setBaseURI(String baseURI)
Базовый URI для использования (см. раздел 5.1.4 в [RFC 2396]) для разрешения относительного systemId в абсолютный URI.
Если базовый URI сам является относительным URI, пустой строкой или null, поведение зависит от реализации.
getEncoding
String getEncoding()
Кодировка символов, если она известна. Кодировка должна быть строкой, приемлемой для объявления XML-кодировки ([XML 1.0] раздел 4.3.3 "Кодировка символов в сущностях").
Этот атрибут не имеет эффекта, когда приложение предоставляет поток символов или строковые данные. Для других источников ввода кодировка, указанная с помощью этого атрибута, переопределит любую кодировку, указанную в XML-объявлении или объявлении Text, или кодировку, полученную из протокола более высокого уровня, такого как HTTP [RFC 2616].
setEncoding
void setEncoding(String encoding)
Кодировка символов, если она известна. Кодировка должна быть строкой, приемлемой для объявления XML-кодировки ([XML 1.0] раздел 4.3.3 "Кодировка символов в сущностях").
Этот атрибут не имеет эффекта, когда приложение предоставляет поток символов или строковые данные. Для других источников ввода кодировка, указанная с помощью этого атрибута, переопределит любую кодировку, указанную в XML-объявлении или объявлении Text, или кодировку, полученную из протокола более высокого уровня, такого как HTTP [RFC 2616].
getCertifiedText
boolean getCertifiedText()
Если установлено в true, предполагается, что вход сертифицирован (см. раздел 2.13 в [XML 1.1]) при разборе [XML 1.1].
setCertifiedText
void setCertifiedText(boolean certifiedText)
Если установлено в true, предполагается, что вход сертифицирован (см. раздел 2.13 в [XML 1.1]) при разборе [XML 1.1].
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.