Класс InputSource

public class InputSource
extends Object

Единственный источник ввода для XML сущности.

Этот модуль, как исходный код, так и документация, находится в общественном достоянии и не имеет ГАРАНТИЙ. См. http://www.saxproject.org для получения дополнительной информации.

Этот класс позволяет приложению SAX инкапсулировать информацию об источнике ввода в одном объекте, который может включать общедоступный идентификатор, системный идентификатор, поток байтов (возможно, со специфицированной кодировкой) и/или поток символов.

Приложение может передать источник ввода парсеру в двух местах: в качестве аргумента методу Parser.parse или в качестве значения возвращаемого методом EntityResolver.resolveEntity.

Парсер SAX будет использовать объект InputSource, чтобы определить, как читать XML ввод. Если доступен поток символов, парсер будет читать этот поток непосредственно, игнорируя любое объявление кодировки текста, найденное в этом потоке. Если поток символов недоступен, но доступен поток байтов, парсер будет использовать этот поток байтов, используя кодировку, указанную в InputSource или (если кодировка не указана) автоматически обнаруживая кодировку символов с помощью алгоритма, такого как тот, который используется в спецификации XML. Если ни поток символов, ни поток байтов недоступны, парсер попытается открыть соединение URI с ресурсом, идентифицированным системным идентификатором.

Объект InputSource принадлежит приложению: парсер SAX никогда не должен изменять его каким-либо образом (он может изменить копию, если это необходимо). Однако стандартная обработка потоков байтов и символов заключается в их закрытии в рамках завершения анализа, поэтому приложения не должны пытаться повторно использовать такие потоки после их передачи парсеру.

Since:
1.4, SAX 1.0
См. также:
XMLReader.parse(org.xml.sax.InputSource), EntityResolver.resolveEntity(java.lang.String, java.lang.String), InputStream, Reader

Конструкторы

Конструктор Описание
InputSource()

Конструктор по умолчанию без аргументов.

InputSource​(InputStream byteStream)

Создать новый источник ввода с потоком байтов.

InputSource​(Reader characterStream)

Создать новый источник ввода с потоком символов.

InputSource​(String systemId)

Создать новый источник ввода с системным идентификатором.

Методы

Модификатор и тип Метод Описание
InputStream getByteStream()

Получить поток байтов для этого источника ввода.

Reader getCharacterStream()

Получить поток символов для этого источника ввода.

String getEncoding()

Получить кодировку символов для потока байтов или URI.

String getPublicId()

Получить общедоступный идентификатор для этого источника ввода.

String getSystemId()

Получить системный идентификатор для этого источника ввода.

boolean isEmpty()

Указывает, является ли объект InputSource пустым.

void setByteStream​(InputStream byteStream)

Установить поток байтов для этого источника ввода.

void setCharacterStream​(Reader characterStream)

Установить поток символов для этого источника ввода.

void setEncoding​(String encoding)

Установить кодировку символов, если она известна.

void setPublicId​(String publicId)

Установить общедоступный идентификатор для этого источника ввода.

void setSystemId​(String systemId)

Установить системный идентификатор для этого источника ввода.

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Конструкторы

InputSource

public InputSource()

Конструктор по умолчанию без аргументов.

См. также:
setPublicId(java.lang.String), setSystemId(java.lang.String), setByteStream(java.io.InputStream), setCharacterStream(java.io.Reader), setEncoding(java.lang.String)

InputSource

public InputSource(String systemId)

Создать новый источник ввода с идентификатором системы.

Приложения могут использовать setPublicId, чтобы включить также идентификатор публичного ключа, или setEncoding, чтобы указать кодировку символов, если она известна.

Если идентификатор системы — URL, он должен быть полностью разрешен (он не может быть относительным URL).

Параметры:
systemId - Идентификатор системы (URI).
См. также:
setPublicId(java.lang.String), setSystemId(java.lang.String), setByteStream(java.io.InputStream), setEncoding(java.lang.String), setCharacterStream(java.io.Reader)

InputSource

public InputSource(InputStream byteStream)

Создать новый источник ввода с потоком байтов.

Разработчики приложений должны использовать setSystemId(), чтобы предоставить базу для разрешения относительных URI, могут использовать setPublicId, чтобы включить идентификатор публичного ключа, и могут использовать setEncoding, чтобы указать кодировку символов объекта.

Параметры:
byteStream - Поток байтов, содержащий документ.
См. также:
setPublicId(java.lang.String), setSystemId(java.lang.String), setEncoding(java.lang.String), setByteStream(java.io.InputStream), setCharacterStream(java.io.Reader)

InputSource

public InputSource(Reader characterStream)

Создать новый источник ввода с потоком символов.

Разработчики приложений должны использовать setSystemId(), чтобы предоставить базу для разрешения относительных URI, и могут использовать setPublicId, чтобы включить идентификатор публичного ключа.

Поток символов не должен содержать метку порядка байтов.

См. также:
setPublicId(java.lang.String), setSystemId(java.lang.String), setByteStream(java.io.InputStream), setCharacterStream(java.io.Reader)

Методы

setPublicId

public void setPublicId(String publicId)

Установить идентификатор публичного ключа для этого источника ввода.

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

Параметры:
publicId - Идентификатор публичного ключа в виде строки.
См. также:
getPublicId(), Locator.getPublicId(), SAXParseException.getPublicId()

getPublicId

public String getPublicId()

Получить идентификатор публичного ключа для этого источника ввода.

Возвращает:
Идентификатор публичного ключа или null, если он не был предоставлен.
См. также:
setPublicId(java.lang.String)

setSystemId

public void setSystemId(String systemId)

Установить идентификатор системы для этого источника ввода.

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

Если приложение знает кодировку символов объекта, на который указывает идентификатор системы, оно может зарегистрировать кодировку с помощью метода setEncoding.

Если идентификатор системы — URL, он должен быть полностью разрешен (он не может быть относительным URL).

Параметры:
systemId - Идентификатор системы в виде строки.
См. также:
setEncoding(java.lang.String), getSystemId(), Locator.getSystemId(), SAXParseException.getSystemId()

getSystemId

public String getSystemId()

Получить идентификатор системы для этого источника ввода.

Метод getEncoding вернёт кодировку символов объекта, на который он указывает, или null, если она неизвестна.

Если идентификатор системы является URL, он будет полностью разрешён.

Возвращает:
Идентификатор системы или null, если он не был предоставлен.
См. также:
setSystemId(java.lang.String), getEncoding()

setByteStream

public void setByteStream(InputStream byteStream)

Установить поток байтов для этого источника ввода.

Парсер SAX проигнорирует это, если также указан поток символов, но он будет использовать поток байтов вместо того, чтобы открывать соединение с URI сам.

Если приложение знает кодировку символов потока байтов, оно должно установить её с помощью метода setEncoding.

Параметры:
byteStream - Поток байтов, содержащий XML-документ или другой объект.
См. также:
setEncoding(java.lang.String), getByteStream(), getEncoding(), InputStream

getByteStream

public InputStream getByteStream()

Получить поток байтов для этого источника ввода.

Метод getEncoding вернёт кодировку символов для этого потока байтов, или null, если она неизвестна.

Возвращает:
Поток байтов или null, если он не был предоставлен.
См. также:
getEncoding(), setByteStream(java.io.InputStream)

setEncoding

public void setEncoding(String encoding)

Установить кодировку символов, если она известна.

Кодировка должна быть строкой, приемлемой для объявления кодировки XML (см. раздел 4.3.3 рекомендации XML 1.0).

Этот метод не имеет эффекта, когда приложение предоставляет поток символов.

Параметры:
encoding - Строка, описывающая кодировку символов.
См. также:
setSystemId(java.lang.String), setByteStream(java.io.InputStream), getEncoding()

getEncoding

public String getEncoding()

Получить кодировку символов для потока байтов или URI. Это значение будет проигнорировано, когда приложение предоставляет поток символов.

Возвращает:
Кодировка или null, если она не была предоставлена.
См. также:
setByteStream(java.io.InputStream), getSystemId(), getByteStream()

setCharacterStream

public void setCharacterStream(Reader characterStream)

Установить поток символов для этого источника ввода.

Если указан поток символов, парсер SAX проигнорирует любой поток байтов и не попытается открыть соединение с URI к идентификатору системы.

Параметры:
characterStream - Поток символов, содержащий XML-документ или другой объект.
См. также:
getCharacterStream(), Reader

getCharacterStream

public Reader getCharacterStream()

Получить поток символов для этого источника ввода.

Возвращает:
Поток символов или null, если он не был предоставлен.
См. также:
setCharacterStream(java.io.Reader)

isEmpty

public boolean isEmpty()

Указывает, пуст ли объект InputSource. Пустым считается следующее:

  • Все источники ввода, включая идентификатор публичного ключа, идентификатор системы, поток байтов и поток символов, являются null.
  • Идентификатор публичного ключа и идентификатор системы являются null, а потоки байтов и символов либо null или не содержат байтов или символов.

    Обратите внимание, что этот метод сбросит поток байтов, если он предоставлен, или поток символов, если поток байтов не предоставлен.

В случае ошибки при проверке потока байтов или символов метод вернёт false, чтобы позволить обработчику XML обработать ошибку.

Возвращает:
true, если объект InputSource пуст, иначе false

© 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.xml/org/xml/sax/InputSource.html

Spec-Zone .ru
спецификации, руководства, описания, API