Spec-Zone.ru › OpenJDK 25

Класс 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

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

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; можно также использовать setPublicId, чтобы добавить публичный идентификатор, и setEncoding, чтобы задать кодировку символов объекта.

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

InputSource

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

Разработчикам приложений следует использовать setSystemId(), чтобы указать основу для разрешения относительных 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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.xml/org/xml/sax/InputSource.html

Spec-Zone.ru

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