можно ли использовать URL в качестве ссылки xsl в XML - PullRequest
0 голосов
/ 09 декабря 2011

Быстрый вопрос относительно ссылки на таблицы стилей XSL из XML ...

До сих пор я всегда ссылался на таблицу стилей с помощью UNC, например:

<?xml-stylesheet type="text/xsl" href="\\test\...

Теперь я смотрю нассылка на XSL с использованием URL-адреса, например:

<?xml-stylesheet type="text/xsl" href="http://mysite.com/xsltest.xsl

, однако это происходит с ошибкой «доступ запрещен при обработке ресурса» (т. е. XSL)

Так что просто для подтверждения -можно ли использовать URL-адреса в качестве ссылки XSL в XML?

Ответы [ 2 ]

0 голосов
/ 09 декабря 2011

Поскольку псевдоатрибут href является IRI, который является интернационализированным URI - он должен работать.

Не следует помещать UNC в псевдоатрибут href (и в любом другом месте, ожидающем URI / IRI / URL), так какдаже не действительный URI.

редактировать примеры:

  1. URL в качестве атрибута href:

    <?xml-stylesheet type="application/xsl" href="http://www.domain.com/sheet.xsl" ?>. 
    
  2. URI (это не URL) в качестве атрибута href:

    <?xml-stylesheet type="application/xsl" href="urn:isbn:0451450523" ?>
    

    В этом случае это синтаксически правильно, но семантически это не имеет смысла (на таблицу стилей ссылается isbn;)) Кроме того, существуют URI, которые выглядят как URL (даже с http:// в начале) но ни на что не указывайте.Это законно.URI - это просто идентификатор, а не местоположение.

  3. IRI (это не URI) в качестве атрибута href

    <?xml-stylesheet type="application/xsl" href="urn:country:españa" ?> 
    

    также не имеет особого смысла, ноэто просто пример.IRI - это расширенный набор URI с поддержкой символов Юникода (в примере).

Неправильное использование UNC, где ожидается IRI

<?xml-stylesheet type="application/xsl" href="\\youserver\resource" ?>

Это незаконно.UNC (унифицированное соглашение об именах) строка не является IRI (и, следовательно, не URI или URL).Определение xml-stylesheet разрешает только IRI в качестве значений атрибута href, поэтому размещение строки UNC там некорректно, и вам просто повезло, что это сработало.Вероятно, это не сработает, если вы попытаетесь открыть xml в любой операционной системе, отличной от Windows.

0 голосов
/ 09 декабря 2011

Короткий ответ - да.Вы можете просто открыть этот XML в любом современном браузере и увидеть, как применяется XSL.

Но в целом все зависит от того, как вы обрабатываете свой XML - например, вы можете открыть этот URL в своем браузере, ноНапример, процессор XML не сможет этого сделать из-за прокси или брандмауэра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...