Класс InputSource
- java.lang.Object
-
- org.xml.sax.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:
- 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() Получение системного идентификатора для этого источника ввода. |
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)
© 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.