2014-09-23 3 views
1

У меня нет практического опыта работы с XSLT, поэтому мне нужна ваша «лучшая практика» по этой проблеме. XML автоматически генерируется и отправляется пользователю (электронные письма и т. Д.). Этот XML содержит следующий заголовок элемент (начальные и конечные теги элементов будут удалены из-за проблемы редакторов):Преобразование XML с общедоступным XSLT

xml-stylesheet type="text/xsl" href="http://example.com/myvisualisation.xslt" 

XSLT загружен и доступен в данном URL. Что такое «стандартный/нормальный» способ открытия пользователем принятого XML с применением этого преобразования? (когда я пытаюсь использовать браузер, я получаю междоменную ошибку). Возможно ли (и как) упорядочить вещи, чтобы пользователь мог просто дважды щелкнуть прикрепленный XML, и он/она увидит преобразованный документ?

Также, когда я пытаюсь открыть XML с помощью MS Excel (который дает мне возможность применить преобразование), это довольно «грязный» (отсутствующие границы и т. Д.) По сравнению с использованием браузера (выглядит нормально), хотя я использую очень стандартный и простой HTML .. никаких причудливых вещей.

ответ

0

Я не думаю, что отправка XML-файлов в «пользователей» - хорошая идея. Почему бы вам не сделать для них трансформацию и отправить им полученный HTML-файл - или (желательно, IMHO) использовать какой-либо другой общепринятый формат, такой как PDF?

Кроме того, когда я пытаюсь открыть XML с MS Excel (который дает мне возможность для применить преобразование) является довольно «грязный» (отсутствуют границы и т.д.) по сравнению с, если я использую браузер (выглядит нормально) хотя я использую очень стандартный и простой HTML. Никаких причудливых вещей.

Трудно сказать, основываясь на такой небольшой информации (нет, действительно), но это может иметь какое-то отношение к Excel, не являющемуся браузером.

+0

Я отправляю пакет конечному пользователю: PDF (моя печатная версия) + XML (необработанные данные для обработки) + визуализация (необработанных данных). Я должен следовать некоторым правилам, где требуется также включать визуализацию XSLT. Если я включу его или загружу его где-то в Интернет, пользователь все равно не может просто просто щелкнуть по XML и посмотреть, как он преобразуется - или он может? Это то, что я пытаюсь понять. – hpet

+0

@hpet Проблема здесь в стандартизации. Не существует общепринятого приложения по умолчанию для открытия XML-файлов (в отличие от HTML, например, которое вы можете предположить, будет открыто в браузере практически в любой системе). И это до проблемы безопасности браузера. Я не уверен, что говорят ваши правила, но поскольку конечный результат вашего процесса визуализации XSLT является HTML-документом, я не вижу причин, по которым вы не могли просто отправить это. –

+0

@hpet. Другой вопрос - вот что такое «пользователь»? Как пользователь сам, я не ожидаю, что кто-нибудь пришлет мне XML-файлы. Будучи «сложным пользователем», я ожидаю, что вы отправите мне как XML, так и XSLT-файлы в один и тот же пакет и оставите это мне для обработки преобразования. Связывание XML-файла с (локальным) XSLT было бы хорошим дополнением - в случае, если я захочу открыть XML в браузере. - Кстати, вы пробовали, включая ссылки на ** и ** местную и обслуживаемую таблицу стилей? –

0

Хотя браузеры поддерживают XSLT, на практике большинство XSLT, генерирующих HTML, запускаются на сервере или в автономных пакетных процессах - не в браузере. Если возможно, запустите XSLT на сервере или в автономном пакетном процессе, а не в браузере.

Если вы должны преобразовать XML в браузере, быть в курсе некоторых серьезных ограничений и проблем:

  1. XSLT 2.0 не поддерживается ни одним из ведущих браузеров.
  2. Модели безопасности браузера различаются способами, которые влияют на обработку XSLT. Это может быть основным источником разочарования при разработке или распространением документов, основанных на использовании XSLT на основе браузера.
    • Как вы уже сталкивались, междоменные ограничения могут быть проблемой .
    • В то время как Firefox разрешает запуск локально загружаемых XSLT-файлов, Chrome не будет; Chrome requires that XSLT be loaded from a server.

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

<?xml-stylesheet type="text/xsl" href="http://example.com/myvisualisation.xslt"?> 

Если документ вместо того, чтобы на самом деле представляют это как элемент [неправильно]

<xml-stylesheet type="text/xsl" href="http://example.com/myvisualisation.xslt"/> 

тогда ссылка на XSLT, безусловно, потерпит неудачу.

Заключительное примечание: Ваш вопрос в формате XML в MS Excel должен быть задан отдельно с добавлением существенно более подробной информации.

+0

Извините, я не смог правильно выразить себя с помощью этой команды заголовка/обработки. но все же, у меня все в порядке. PLease прочитал комментарий одного сообщения для более подробной информации о том, чего я пытаюсь выполнить. О Excel, мой плохой, это был просто побочный вопрос, не имеющий большого значения. Дело в том, что я думал, что XML + XSLT являются более «подключи и работай» и просты в применении также локально (в не-серверной среде) - – hpet

+0

Было время, когда XSLT выглядел так же, как plug-and-play для стилизация XML в браузере, поскольку CSS предназначен для стилизации HTML, но, увы, это не так. – kjhughes