Нет таблицы стилей, связанной с этим 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 для выбора одного атрибута и.
Читайте также: