Класс InputSource
public class InputSource extends Object
Этот класс позволяет приложению SAX инкапсулировать сведения об источнике ввода в одном объекте, который может включать публичный идентификатор, системный идентификатор, поток байтов (возможно, с указанной кодировкой) и/или поток символов.
Приложение может передать источник ввода анализатору в двух местах: в качестве аргумента метода Parser.parse или в качестве возвращаемого значения метода EntityResolver.resolveEntity.
SAX-анализатор использует объект InputSource, чтобы определить способ чтения входных данных XML. Если доступен поток символов, анализатор будет читать данные непосредственно из этого потока, игнорируя любые объявления кодировки текста, обнаруженные в потоке. Если поток символов отсутствует, но доступен поток байтов, анализатор будет использовать этот поток байтов, применяя кодировку, указанную в InputSource, либо (если кодировка не указана) автоматически определяя кодировку символов с помощью алгоритма, например описанного в спецификации XML. Если недоступны ни поток символов, ни поток байтов, анализатор попытается открыть URI-соединение с ресурсом, указанным системным идентификатором.
Объект InputSource принадлежит приложению: SAX-анализатор ни в коем случае не должен изменять его (при необходимости он может изменить копию). Однако при стандартной обработке как байтовые, так и символьные потоки закрываются при очистке после завершения анализа, поэтому приложениям не следует пытаться повторно использовать такие потоки после их передачи анализатору.
- Начиная с:
- 1.4, SAX 1.0
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
InputSource() |
Конструктор по умолчанию без аргументов. |
InputSource |
Создает новый источник ввода с потоком байтов. |
InputSource |
Создает новый источник ввода с потоком символов. |
InputSource |
Создает новый источник ввода с системным идентификатором. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
InputStream |
getByteStream() |
Возвращает поток байтов для этого источника ввода. |
Reader |
getCharacterStream() |
Возвращает поток символов для этого источника ввода. |
String |
getEncoding() |
Возвращает кодировку символов для потока байтов или URI. |
String |
getPublicId() |
Возвращает публичный идентификатор этого источника ввода. |
String |
getSystemId() |
Возвращает системный идентификатор этого источника ввода. |
boolean |
isEmpty() |
Указывает, является ли объект InputSource пустым. |
void |
setByteStream |
Задает поток байтов для этого источника ввода. |
void |
setCharacterStream |
Задает поток символов для этого источника ввода. |
void |
setEncoding |
Задает кодировку символов, если она известна. |
void |
setPublicId |
Задает публичный идентификатор этого источника ввода. |
void |
setSystemId |
Задает системный идентификатор этого источника ввода. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли этот объект какому-либо другому объекту. |
protected void |
finalize() |
Устарело, подлежит удалению: этот элемент API может быть удален в будущей версии. Финализация признана устаревшей и подлежит удалению в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого объекта Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания. |
final void |
wait |
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Подробное описание конструкторов
InputSource
public InputSource()
- См. также:
InputSource
public InputSource(String systemId)
Приложения могут использовать setPublicId, чтобы также указать публичный идентификатор, или setEncoding, чтобы задать кодировку символов, если она известна.
Если системный идентификатор является URL-адресом, он должен быть полностью разрешен (относительный URL-адрес не допускается).
- Параметры:
-
systemId— системный идентификатор (URI). - См. также:
InputSource
public InputSource(InputStream byteStream)
Разработчикам приложений следует использовать setSystemId(), чтобы задать базовый URI для разрешения относительных URI. Также можно использовать setPublicId, чтобы указать публичный идентификатор, и setEncoding, чтобы задать кодировку символов объекта.
- Параметры:
-
byteStream— исходный поток байтов, содержащий документ. - См. также:
InputSource
public InputSource(Reader characterStream)
Разработчикам приложений следует использовать setSystemId(), чтобы задать базовый URI для разрешения относительных URI, и можно использовать setPublicId, чтобы указать публичный идентификатор.
Поток символов не должен содержать метку порядка байтов.
- Параметры:
-
characterStream— поток символов - См. также:
Подробное описание методов
setPublicId
public void setPublicId(String publicId)
Публичный идентификатор всегда необязателен: если разработчик приложения указывает его, он будет включен в сведения о местоположении.
- Параметры:
-
publicId— публичный идентификатор в виде строки. - См. также:
getPublicId
public String getPublicId()
- Возвращает:
- Публичный идентификатор или null, если он не был указан.
- См. также:
setSystemId
public void setSystemId(String systemId)
Системный идентификатор необязателен, если указан поток байтов или поток символов, однако его все равно полезно задать, поскольку приложение может использовать его для разрешения относительных URI и включать в сообщения об ошибках и предупреждения (анализатор попытается открыть соединение с URI, только если поток байтов или поток символов не указан).
Если приложению известна кодировка символов объекта, на который указывает системный идентификатор, оно может зарегистрировать ее с помощью метода setEncoding.
Если системный идентификатор является URL-адресом, он должен быть полностью разрешен (относительный URL-адрес не допускается).
- Параметры:
-
systemId— системный идентификатор в виде строки. - См. также:
getSystemId
public String getSystemId()
Метод getEncoding вернет кодировку символов объекта, на который указывает идентификатор, или null, если кодировка неизвестна.
Если системный идентификатор является URL-адресом, он будет полностью разрешен.
- Возвращает:
- Системный идентификатор или null, если он не был указан.
- См. также:
setByteStream
public void setByteStream(InputStream byteStream)
SAX-анализатор проигнорирует этот поток, если также указан поток символов, но предпочтет использовать поток байтов, а не самостоятельно открывать URI-соединение.
Если приложению известна кодировка символов потока байтов, ее следует задать с помощью метода setEncoding.
- Параметры:
-
byteStream— поток байтов, содержащий документ XML или другую сущность. - См. также:
getByteStream
public InputStream getByteStream()
Метод getEncoding вернет кодировку символов этого потока байтов или null, если кодировка неизвестна.
- Возвращает:
- Поток байтов или null, если он не был указан.
- См. также:
setEncoding
public void setEncoding(String encoding)
Кодировка должна быть строкой, допустимой в объявлении кодировки XML (см. раздел 4.3.3 рекомендации XML 1.0).
Этот метод не действует, если приложение предоставляет поток символов.
- Параметры:
-
encoding— строка, описывающая кодировку символов. - См. также:
getEncoding
public String getEncoding()
- Возвращает:
- Кодировку или null, если она не была указана.
- См. также:
setCharacterStream
public void setCharacterStream(Reader characterStream)
Если указан поток символов, SAX-анализатор проигнорирует любой поток байтов и не будет пытаться открыть URI-соединение с системным идентификатором.
- Параметры:
-
characterStream— поток символов, содержащий документ XML или другую сущность. - См. также:
getCharacterStream
public Reader getCharacterStream()
- Возвращает:
- Поток символов или null, если он не был указан.
- См. также:
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.