Spec-Zone.ru › OpenJDK 24

Класс 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(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 для включения идентификатора общедоступного использования.

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

Параметры:
characterStream — поток символов
См. также:
  • 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, 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.
https://download.java.net/java/early_access/jdk24/docs/api/java.xml/org/xml/sax/InputSource.html

Spec-Zone.ru

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