Ваша главная проблема в том, что ваша таблица стилей слишком специфична для домена. RDF / XML - это очень сложная сериализация, которая позволяет заявлять о себе несколькими способами. Ваша таблица стилей ссылается на очень конкретные имена элементов, которые действительны только в очень узком диапазоне документов RDF / XML, например
<xsl:template match="/rdf:RDF/foo:item">
Вышеприведенная попытка сопоставить элементы корневого уровня <rdf:RDF>
, что на самом деле не является обязательным - допустимо использование альтернативных корневых элементов или добавление <rdf:RDF>
в другие элементы XML при условии, что имеется только один.
Затем он пытается сопоставить элемент <foo:item>
, который является идентификатором, специфичным для документа, это имя элемента может быть абсолютно любым от общего <rdf:Description>
до предыдущего примера.
Решение
Не пытайтесь преобразовать RDF / XML с помощью таблицы стилей, так как любая написанная вами таблица стилей, которая может преобразовать полный диапазон документов RDF / XML, будет настолько нелепо сложна, что не будет иметь никакого смысла.
Вместо найдите себе хорошую библиотеку RDF (для большинства основных языков есть одна или несколько), которая предоставляет анализатор RDF / XML и средство записи HTML или HTML + RDFa и использует их. Если вы хотите управлять выводом HTML в качестве основы, используйте средство записи HTML-библиотеки в качестве руководства и адаптируйте его или просто примените таблицу стилей CSS к выводу.