Spec-Zone .ru
спецификации, руководства, описания, API
|
См.: Описание
Интерфейс | Описание |
---|---|
ErrorListener |
Чтобы обеспечить настроенную обработку ошибок, реализуйте этот интерфейс и используйте
setErrorListener метод, чтобы зарегистрировать экземпляр implmentation с Transformer . |
Результат |
Объект, который реализует этот интерфейс, содержит информацию, должен был создать дерево результата преобразования.
|
Источник |
Объект, который реализует этот интерфейс, содержит информацию, должен был действовать как исходный ввод (источник XML или инструкции преобразования).
|
SourceLocator |
Этот интерфейс прежде всего в целях сообщить, где ошибка произошла в источнике XML или инструкциях преобразования.
|
Шаблоны |
Объект, который реализует этот интерфейс, является представлением времени выполнения обработанных инструкций преобразования.
|
URIResolver |
Объект, который реализует этот интерфейс, который может вызвать процессор, чтобы повернуть URI, используемый в документе (), xsl:import, или xsl:include в Исходный объект.
|
Класс | Описание |
---|---|
OutputKeys |
Обеспечивает строковые константы, которые могут использоваться, чтобы установить выходные свойства для Преобразователя, или получить выходные свойства от Шаблонного объекта или Преобразователя.
|
Преобразователь |
Экземпляр этого абстрактного класса может преобразовать исходное дерево в дерево результата.
|
TransformerFactory |
Экземпляр TransformerFactory может использоваться, чтобы создать
Transformer и Templates объекты. |
Исключение | Описание |
---|---|
TransformerConfigurationException |
Указывает на серьезную ошибку конфигурации.
|
TransformerException |
Этот класс определяет исключительное условие, которое произошло во время процесса преобразования.
|
Ошибка | Описание |
---|---|
TransformerFactoryConfigurationError |
Брошенный, когда проблема с конфигурацией с Фабриками Преобразователя существует.
|
Этот пакет определяет универсальные API для того, чтобы обработать инструкции преобразования, и выполнить преобразование из источника, чтобы закончиться. Эти интерфейсы не имеют никаких зависимостей от SAX или стандарта ДОМА, и пытаются сделать как немного предположений насколько возможно о деталях источника и результате преобразования. Это достигает этого, определяя Source
и Result
интерфейсы.
Чтобы определить реальные классы для пользователя, API определяет специализации интерфейсов, найденных на корневом уровне. Эти интерфейсы находятся в javax.xml.transform.sax
, javax.xml.transform.dom
, и javax.xml.transform.stream
.
API позволяет бетон TransformerFactory
объект, который будет создан из статической функции TransformerFactory.newInstance()
.
Этот API определяет два интерфейсных вызванные объекта Source
и Result
. Чтобы передать Источник, и Результат возражает против интерфейсов, реальные классы должны использоваться. Три конкретных представления определяются для каждого из этих объектов: StreamSource
и StreamResult
, SAXSource
и SAXResult
, и DOMSource
и DOMResult
. Каждый из этих объектов определяет строку ФУНКЦИИ (который является мной форма URL), в который можно передать TransformerFactory.getFeature(java.lang.String)
видеть, поддерживается ли данный тип объекта Источника или Результата. Например, чтобы протестировать, если DOMSource и StreamResult поддерживаются, можно применить следующий тест.
TransformerFactory tfactory = TransformerFactory.newInstance();
if (tfactory.getFeature(DOMSource.FEATURE) && tfactory.getFeature(StreamResult.FEATURE)) {
...
}
Одно решение состояло в том, чтобы создать объект "QName", который содержит URI пространства имен, так же как префиксное и локальное имя, но это - не всегда оптимальное решение, как тогда, когда, например, Вы хотите использовать уникальные строки в качестве ключей в объекте словаря. Наличие строкового представления также мешает определять namespaced идентификационные данные вне контекста XML-документа.
Чтобы передать значения namespaced к преобразованиям, например устанавливая свойство или параметр на a Transformer
объект, эта спецификация определяет это Строка "qname" объектный параметр быть переданной как строка с двумя частями, URI пространства имен, включенный в изогнутые фигурные скобки ({}), сопровождаемый локальным именем. Если у qname есть нулевой URI, то Строка возражает, только содержит локальное имя. Приложение может безопасно проверить на ненулевой URI, тестируя, чтобы видеть, ли первый символ имени' {' символ.
Например, если бы URI и локальное имя были получены из элемента, определенного с помощью <xyz:foo xmlns:xyz = "http://xyz.foo.com/yada/baz.html"/>, то Полностью определенное имя было бы" {http://xyz.foo.com/yada/baz.html} foo". Отметьте, что префикс теряется.
Сериализацией дерева результата к потоку можно управлять с Transformer.setOutputProperties(java.util.Properties)
и Transformer.setOutputProperty(java.lang.String, java.lang.String)
методы. Эти свойства только применяются к потоковым результатам, они не имеют никакого эффекта, когда результатом является дерево ДОМА или поток событий SAX.
На строки, которые соответствуют OutputKeys
класс. Другие строки могут быть определены также. Если преобразователь не распознает выходной ключ, a IllegalArgumentException
бросается, если ключевое имя не является квалифицированным пространством имен. Выходные ключевые имена, которые являются квалифицированным пространством имен, всегда позволяются, хотя они могут быть проигнорированы некоторыми реализациями.
Если все, что требуется, является простым преобразованием идентификационных данных источника к результату, то TransformerFactory
обеспечивает a TransformerFactory.newTransformer()
метод без параметров. Этот метод создает Преобразователь, который эффективно копирует источник в результат. Этот метод может использоваться, чтобы создать ДОМА из событий SAX или создать XML или поток HTML от событий SAX или ДОМА.
API преобразования бросает три типа специализированных исключений. A TransformerFactoryConfigurationError
параллельно FactoryConfigurationError
, и бросается, когда проблема конфигурации с TransformerFactory существует. Эта ошибка будет обычно бросаться когда класс фабрики преобразования, определенный с "javax.xml.transform. TransformerFactory" системное свойство не может быть найден или инстанцирован.
A TransformerConfigurationException
может быть брошен, если по какой-либо причине Преобразователь не может быть создан. TransformerConfigurationException может быть брошен, если есть синтаксическая ошибка в инструкциях преобразования, например когда TransformerFactory.newTransformer(javax.xml.transform.Source)
вызывается.
TransformerException
общее исключение, которое происходит в течение преобразования. Исключение преобразователя может обернуть другое исключение, и если любой из TransformerException.printStackTrace()
методы вызывают на этом, это произведет список дампов стека, запускающихся с нового. Исключение преобразователя также обеспечивает a SourceLocator
объект, который указывает, где в исходном дереве или инструкциях преобразования ошибка произошла. TransformerException.getMessageAndLocation()
может быть вызван, чтобы получить сообщение об ошибке с информацией расположения, и TransformerException.getLocationAsString()
может быть вызван, чтобы получить только строку расположения.
Предупреждения преобразования и ошибки отправляются ErrorListener
, в которую точку приложение может решить сообщить об ошибке или предупреждении, и может решить бросить Exception
для нефатальной ошибки. ErrorListener
может быть установлен через TransformerFactory.setErrorListener(javax.xml.transform.ErrorListener)
для того, чтобы сообщить об ошибках, которые имеют отношение к синтаксическим ошибкам в инструкциях преобразования, или через Transformer.setErrorListener(javax.xml.transform.ErrorListener)
сообщить об ошибках, которые происходят во время преобразования. ErrorListener
на обоих объектах всегда будет допустимо и не -null
, обеспечил ли установленный приложением или реализацией по умолчанию процессором. Реализация по умолчанию, обеспеченная процессором, сообщит обо всех предупреждениях и ошибках к System.err
и не бросает никого Exception
s. Приложения строго поощряются зарегистрировать и использовать ErrorListener
s, которые обеспечивают правильное поведение для предупреждений и ошибок.
API обеспечивает путь к URI, на которые ссылаются изнутри инструкций таблицы стилей или в пределах преобразования, которое будет разрешено вызывающим приложением. Это может быть сделано, создавая класс, который реализует URIResolver
интерфейс, с его одним методом, URIResolver.resolve(java.lang.String, java.lang.String)
, и используйте этот класс, чтобы установить разрешение URI для инструкций преобразования или преобразования с TransformerFactory.setURIResolver(javax.xml.transform.URIResolver)
или Transformer.setURIResolver(javax.xml.transform.URIResolver)
. URIResolver.resolve
метод берет два Строковых параметра, URI, найденный в инструкциях таблицы стилей или созданный как часть процесса преобразования, и основной URI, против которого первый аргумент будет приведен абсолютный, если абсолютный URI будет требоваться. Возвращенный Source
объект должен быть применимым преобразователем, как определено в его реализованных опциях.
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.