Нет таблицы стилей, связанной с этим xml-файлом. Ниже приведено дерево элементов

Обновлено: 21.11.2024

Браузер не поддерживает XLink в документах XML.

Однако все основные браузеры поддерживают XLinks в SVG.

Синтаксис XLink

Ниже приведен простой пример использования XLink для создания ссылок в XML-документе:


Посетите W3Schools
Посетите W3C

Чтобы получить доступ к функциям XLink, мы должны объявить пространство имен XLink. Пространство имен XLink: "http://www.w3.org/1999/xlink".

Атрибуты xlink:type и xlink:href в элементах взяты из пространства имен XLink.

Команда xlink:type="simple" создает простую ссылку "в стиле HTML" (означает "щелкните здесь, чтобы перейти туда").

Атрибут xlink:href указывает URL-адрес для ссылки.

Пример XLink

Следующий XML-документ содержит функции XLink:



Приближается пятый год обучения в Школе чародейства и
волшебства Хогвартс, 15-летний Гарри Поттер приближается.



XQuery Kick Start представляет собой краткое введение
в стандарт XQuery.

Объяснение примера:

  • Пространство имен XLink объявляется вверху документа (xmlns:xlink="http://www.w3.org/1999/xlink")
  • Команда xlink:type="simple" создает простую ссылку, похожую на HTML.
  • Атрибут xlink:href указывает URL-адрес ссылки (в данном случае — изображение)
  • Xlink:show="new" указывает, что ссылка должна открываться в новом окне.

XLink — идем дальше

В приведенном выше примере мы продемонстрировали простые ссылки XLink. XLink становится все более интересным при доступе к удаленным расположениям как к ресурсам, а не к отдельным страницам.

Если мы установим для атрибута xlink:show значение "встроить", связанный ресурс должен обрабатываться на странице. Если вы считаете, что это может быть другой XML-документ, вы можете, например, построить иерархию XML-документов.

Вы также можете указать, КОГДА должен появиться ресурс, с помощью атрибута xlink:actuate.

Справочник по атрибутам XLink

  • onLoad — ресурс должен загружаться и отображаться при загрузке документа.
  • onRequest – ресурс не читается и не отображается до нажатия на ссылку

XPointer

  • XPointer позволяет ссылкам указывать на определенные части XML-документа
  • XPointer использует выражения XPath для навигации по документу XML.
  • XPointer является рекомендацией W3C

Поддержка браузера XPointer

Браузер не поддерживает XPointer. Но XPointer используется и в других языках XML.

Пример XPointer

В этом примере мы будем использовать XPointer в сочетании с XLink, чтобы указать на определенную часть другого документа.

Мы начнем с просмотра целевого XML-документа (документа, на который мы ссылаемся):


Предки ротвейлера, вероятно, были римскими
погонщиками.
Уверенный, смелый, бдительный и импозантный ротвейлер
является популярным выбором благодаря своей способности защищать.


Одним из первых применений собак-поводырей была
помощь рыбакам извлекать рыбу из воды.
Плоскошерстный ретривер — милая, жизнерадостная,
подвижная собака, которая любит играть и восстанавливать.

Обратите внимание, что XML-документ выше использует атрибуты id для каждого элемента!

Следующий XML-документ содержит ссылки на дополнительную информацию о породе каждой из моих собак:



Антон - мой любимый пес. Он много чего выиграл.


Факт о ротвейлере



Плутон — самая милая собака на земле.


Факт о гладкошерстном ретривере

Похоже, что с этим файлом XML не связана никакая информация о стиле: возможно, вы видели это сообщение при работе с интеграциями и файлами XML. Возможно, вам потребуется протестировать полезные данные из входящих и исходящих систем.

В некоторых случаях и в некоторых браузерах при открытии XML-файла вы увидите следующее сообщение: «Похоже, что с этим XML-файлом не связана никакая информация о стиле. Дерево документа показано ниже».

Расширенная функция XML-файла заключается в предоставлении информации о стилях, и в большинстве случаев XML-файлы представляют собой необработанные файлы без каких-либо стилей. Браузер просто выдает предупреждение.

Если вы видите на изображении выше, вы видите точное сообщение, отображаемое вверху. Это XML-файл, который открывается в браузере Firefox.

теперь давайте откроем то же самое в текстовом редакторе

Вы видите, что в начало файла добавлено так много дополнительной информации.

Это называется пространствами имен. И эти пространства имен отсутствуют, когда файл открывается в браузере.

Почему так. Потому что браузер пытается интерпретировать пространства имен.

Также нет стилей для xml, прикрепленных к документу. Таблица стилей xml представлена ​​ниже.Таблица стилей используется для придания макета XML-файлу.

Поэтому в основном при интеграции XML-данные или полезные данные, которые обычно вызываются, не должны считываться браузером, скорее они будут считываться между двумя конечными точками системы, поэтому нет необходимости стилизовать или представлять какую-либо презентацию, поскольку это не так. для отображения в пользовательском интерфейсе (пользовательском интерфейсе).

Интернет-браузеры предназначены для чтения и оформления информации для отображения цветов, графики и т. д. Поскольку этих сведений нет, а полезные данные являются RAW, вы почти всегда будете видеть сообщение в браузерах.

Это не означает, что ваши полезные данные XML ошибочны. Это просто информация о том, что стиль отсутствует, и браузер показывает вам необработанные данные XML.

Поэтому вам не следует беспокоиться о том, что в вашей полезной нагрузке отсутствует некоторая информация, которая может стать причиной каких-либо ошибок при дальнейшей обработке.

Ошибки обработки интеграции могут быть вызваны неправильными полезными нагрузками, т. е. неправильными данными или отсутствующими пространствами имен в XML-файле, а не связанным стилем, который вообще не прикреплен.

Подводя итог, вы можете просто проигнорировать эту ошибку и продолжить разработку, если только это не мешает вашим сборкам.

) в XSL-переменной, а затем использует для выбора информации из переменной $body, содержащей уже проанализированное тело сообщения. Здесь мы просто распечатываем идентификаторы , но это даст вам общее представление.

Как в XSL правильно преобразовать тег XML-документа в ссылку в HTML?

У меня есть вопрос о XSL. Мой XML-документ похож на следующий:

Ответить

Использую ли я правильные заголовки XSL для преобразования WML?

Я использую oracle.xml.async.XSLTransformer, включенный в XDK для Java v2, для выполнения преобразования XSL в документе XML. Мне нужен вывод WML. Моя таблица стилей содержит следующий код:

Когда я проверяю преобразование с помощью сервлета, я получаю следующую ошибку в эмуляторе WAP:

Отсутствует ли объявление кодировки XML? На самом деле сгенерированный WML не включает никакой информации заголовка XML. Вывод начинается так:

Как заставить преобразователь выводить заголовок XML:

Ответить

Используйте oracle.xml.parser.v2.XSLProcessor . Также убедитесь, что ваша таблица стилей содержит:

только внутри и снаружи любого

Также убедитесь, что вы используете следующий API:

Как убедиться, что при преобразовании XSL можно найти файл DTD?

В моем исходном XML-файле BC4J есть следующая строка, относящаяся к DTD:

При преобразовании файла эта строка приводит к ошибке, говорящей о том, что не удается найти jbo_03_01.dtd . Файл DTD находится в моем пути к классам.

Ответить

Есть два решения этой проблемы.

    Извлеките jbo_03_01.dtd из jbomt.zip и поместите его в тот же каталог, что и ваши файлы VO. Это сложно, если у вас есть файлы VO на нескольких разных уровнях каталога.

d.setDoctype(dtd); // устанавливаем и кэшируем используемое DTD.

// Теперь подпоследовательности вызовов d.parse() будут

Затем преобразуйте результат с помощью XSLStylesheet и XSSLProcessor.process(style,source,printwriter) .

Как предотвратить повторение определения пространства имен в XSL

Мой второй вопрос касается пространств имен. У меня есть следующий фрагмент кода в моей таблице стилей:

В верхней части таблицы стилей я определил пространство имен marlin:

В результирующем файле XML (файл marlin UIX) определение пространства имен повторяется для каждого элемента:

Ответить

Попробуйте определить префикс пространства имен данных для элемента документа в корневом шаблоне XSLT. Если он определен на более высоком уровне дерева результатов, мы можем это заметить и не выводить его для каждого элемента более низкого уровня.

JDeveloper9i имеет виртуальные виртуальные объекты (VO), которые предоставляют метаданные aVO, подобные представлениям базы данных X$. Это означает, что вы можете использовать обычный метод VO.writeXML() для одного из этих виртуальных представлений метаданных для выполнения операций, которые, я думаю, вы пытаетесь сделать для рендеринга управляемого данными вывода на основе структуры данного VO.

Как передать параметр из программы Java в таблицу стилей XSL?

Нам нужно передать целое число в таблицу стилей и использовать функцию xsl:position() для извлечения фрагмента документа из XML-документа. Например:

Однако вместо position()=1 нам нужно подставить параметр, например $1 .

Как мы можем это сделать?

Ответить

Если в вашей таблице стилей объявлен параметр верхнего уровня, например:

Затем вы можете использовать следующие методы в oracle.xml.parser.v2.XSLStylesheet для управления параметрами:

Чтобы установить для параметра с именем foo число 10, используйте следующее:

Чтобы установить foo в строку ten , вам нужно заключить ее в кавычки:

Вопрос 2

Если мне нужно передать параметры в таблицу стилей в программе Java, какой класс Java я должен использовать?

В настоящее время мы используем:

Какой метод я могу использовать для передачи параметров?

Ответ 2

Как устранить ошибку XSL-1009, связанную с атрибутом «Версия XSL», не найденным в HTML?

Мы можем сгенерировать выходной XML-файл, но когда мы попытаемся сгенерировать HTML-результат, используя файл Emp.xsl со следующим аргументом:

показывает ошибку XSL-1009 АТРИБУТ 'XSL VERSION' NOT FOUND IN 'HTML'

    Каков правильный аргумент в пользу файла XSL? Мы попробовали, и это работает, но вывод HTML вообще не содержит тега HTML, только чистые данные.

Как должен выглядеть выходной HTML-файл?

Ответить

Вы должны добавить к элементу атрибут xsl:version="1.0".

Какое выражение XPath будет извлекать только терминальные дочерние элементы?

Можете ли вы сказать мне, какое выражение XPath мне следует использовать для извлечения только терминальных дочерних элементов (то есть элементов, у которых нет дочерних элементов) из указанного элемента. Например, я хочу использовать выражение XPath для возврата только дочерних элементов TABLE, выделенных красным ниже:

Ответ 1

Возможное решение заключается в следующем:

Ответ 2

Требуемое выражение:

Вы можете опустить дочернюю ось, поэтому приведенное выше выражение будет таким же, как:

Дочерние атрибуты не возвращаются после применения таблицы стилей XSL

Мы объединяем XML-документ с его таблицей стилей XSL. Дочерние атрибуты не возвращаются, если они используют синтаксис типа:

в документе XSL. Кажется, это нормально работает в других парсерах XML, включая XML Spy и Stylus.

Ответить

Выражение XPath Foo/Bar предназначено только для выбора значения элемента, содержащегося в элементе. Он вернет конкатенацию всех текстовых узлов во вложенном содержимом этого элемента, но, конечно, не предназначен для выбора каких-либо текстовых значений в атрибутах. Для этого вам понадобится синтаксис: Foo/Bar/@SomeAttr для выбора одного атрибута и.

Читайте также: