Spec-Zone.ru › OpenJDK 27

Класс InputSource

java.lang.Object
org.xml.sax.InputSource
public class InputSource extends Object
Единый источник ввода для сущности XML.

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

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

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

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

Начиная с:
1.4, SAX 1.0
См. также:
  • XMLReader.parse(org.xml.sax.InputSource)
  • EntityResolver.resolveEntity(String, 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)
Задает системный идентификатор этого источника ввода.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарело, подлежит удалению: этот элемент API может быть удален в будущей версии.
Финализация признана устаревшей и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого объекта Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания.
final void wait(long timeoutMillis)
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени.

Подробное описание конструкторов

InputSource

public InputSource()
Конструктор по умолчанию без аргументов.
См. также:
  • setPublicId(String)
  • setSystemId(String)
  • setByteStream(InputStream)
  • setCharacterStream(Reader)
  • setEncoding(String)

InputSource

public InputSource(String systemId)
Создает новый источник ввода с системным идентификатором.

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

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

Параметры:
systemId — системный идентификатор (URI).
См. также:
  • setPublicId(String)
  • setSystemId(String)
  • setByteStream(InputStream)
  • setEncoding(String)
  • setCharacterStream(Reader)

InputSource

public InputSource(InputStream byteStream)
Создает новый источник ввода с потоком байтов.

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

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

InputSource

public InputSource(Reader characterStream)
Создает новый источник ввода с потоком символов.

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

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

Параметры:
characterStream — поток символов
См. также:
  • setPublicId(String)
  • setSystemId(String)
  • setByteStream(InputStream)
  • setCharacterStream(Reader)

Подробное описание методов

setPublicId

public void setPublicId(String publicId)
Задает публичный идентификатор этого источника ввода.

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

Параметры:
publicId — публичный идентификатор в виде строки.
См. также:
  • getPublicId()
  • Locator.getPublicId()
  • SAXParseException.getPublicId()

getPublicId

public String getPublicId()
Возвращает публичный идентификатор этого источника ввода.
Возвращает:
Публичный идентификатор или null, если он не был указан.
См. также:
  • setPublicId(String)

setSystemId

public void setSystemId(String systemId)
Задает системный идентификатор этого источника ввода.

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

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

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

Параметры:
systemId — системный идентификатор в виде строки.
См. также:
  • setEncoding(String)
  • getSystemId()
  • Locator.getSystemId()
  • SAXParseException.getSystemId()

getSystemId

public String getSystemId()
Возвращает системный идентификатор этого источника ввода.

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

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

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

setByteStream

public void setByteStream(InputStream byteStream)
Задает поток байтов для этого источника ввода.

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

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

Параметры:
byteStream — поток байтов, содержащий документ XML или другую сущность.
См. также:
  • setEncoding(String)
  • getByteStream()
  • getEncoding()
  • InputStream

getByteStream

public InputStream getByteStream()
Возвращает поток байтов для этого источника ввода.

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

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

setEncoding

public void setEncoding(String encoding)
Задает кодировку символов, если она известна.

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

Этот метод не действует, если приложение предоставляет поток символов.

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

getEncoding

public String getEncoding()
Возвращает кодировку символов для потока байтов или URI. Это значение игнорируется, если приложение предоставляет поток символов.
Возвращает:
Кодировку или null, если она не была указана.
См. также:
  • setByteStream(InputStream)
  • getSystemId()
  • getByteStream()

setCharacterStream

public void setCharacterStream(Reader characterStream)
Задает поток символов для этого источника ввода.

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

Параметры:
characterStream — поток символов, содержащий документ XML или другую сущность.
См. также:
  • getCharacterStream()
  • Reader

getCharacterStream

public Reader getCharacterStream()
Возвращает поток символов для этого источника ввода.
Возвращает:
Поток символов или null, если он не был указан.
См. также:
  • setCharacterStream(Reader)

isEmpty

public boolean isEmpty()
Указывает, является ли объект InputSource пустым. Пустым считается объект, удовлетворяющий следующим условиям:
  • Все источники ввода, включая публичный идентификатор, системный идентификатор, поток байтов и поток символов, равны null.
  • Публичный и системный идентификаторы равны null, а потоки байтов и символов либо равны null, либо не содержат байтов или символов.

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

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

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

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API