ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 

  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА














     АРХИВ :: Apache-Talk
Apache-Talk mailing list archive (apache-talk@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [apache-talk] Re: [apache-talk] Upload rtf (=?koi8-r?Q?=D7=C1=D2=C9=C1=CE=D4=20=D2=C5=DB=C5=CE=C9=D1?=)



Artem Chuprina wrote:
> 
> > > <OBJECT>, <SCRIPT>. С лёгкостью.
> > И что? Это в HTML браузер как бы обязан <SCRIPT> выполнять, да и то,
> > если захочет. А в XML никто никому и ничего не обязан.
> 
> Вот именно: если захочет.
'Если' относилось к HTML-браузеру.

> IE в последнее время так хочет, что и не
> оторвёшь ему это хотение. И Шкаф тоже по умолчанию выполняет.
Блин. Ну не путай ты это с XML-ем - ничего общего это не имеет. Какое
мне дело до IE, если до него дойдет уже распарсенный и преобразованный
голый HTML? Он про XML даже не узнает ничего. Нафиг кому его кривая
устаревшая реализация XML сдалась?

> И с XML то же будет, нес па?
Да ничего не будет. Пальцем покажи, где и в каком стандарте на XML
написано <OBJECT>? Нету такого. На XML нету никакого стандартного DTD,
как это есть для HTML. Поэтому и нечего там выполнять - нету объектов и
нету скриптов. Вот у меня прайсы будут примерно в таком виде (это
присылает юзер, грубо говоря):

<?xml version="1.0"?> 

<prices>
  <price currency="FF">100</price>
  <price currency="USD">34</price>
  <price currency="FF">300</price>
  <price currency="FF">400</price>
</prices>

а стиль к ним - вот в таком (и это пишу я):

<?xml version="1.0"?> 

<xsl:stylesheet xmlns:xsl="http://www.w3.org/XSL/Transform/1.0";>

<xsl:variable name="rate">5.8</xsl:variable>

  <xsl:template match="/prices">
    <HTML>
      <H1>Price-list</H1>
      <xsl:apply-templates/>
    </HTML>
  </xsl:template>

  <xsl:template match="price[not(@currency='USD')]">
    <P><xsl:value-of select="number(./text())*number($rate)"/></P>
  </xsl:template>

  <xsl:template match="price[@currency='USD']">
    <P><xsl:value-of select="./text()"/></P>
  </xsl:template>
 
</xsl:stylesheet>

Ну и? Чего бы юзера в первый документ не насовали, а ктоме тэгов price и
атрибутов currency у них, этот стиль обрабатывать _не будет_. Он просто
не умеет. Логика в XML - не в браузере, пора про это давно забыть, она в
стилях. А стили - мои, а не MS-овские. Или твои. И если мы сами себе не
злобные Буратины - вирусов у нас не будет.
 
> А ты уверен, что ты вырезаешь из клиентских XML'ей _всё_ потенциально
> опасное содержимое?
А и и не вырезаю. Я интерпретирую только то, что мне нужно. Все
остальное выбрасывается автоматически. И я еще не сошел с ума, чтобьы в
своем стиле написать что-то типа eval, что выполнило бы скрипт. Так кто
его выполнит-то? Некому вроде.

> Что то, что ты оставляешь, существующие браузеры не
> могут попытаться исполнить сейчас, и не начнут этого делать, никому ни
> слова не говоря, через 2 месяца?
Для начала на это дело у меня есть DTD. Натравливаем верификатор, и все
что не соответствует - идет лесом еще до обработки.
=============================================================================
=               Apache-Talk@lists.lexa.ru mailing list                      =
Mail "unsubscribe apache-talk" to majordomo@lists.lexa.ru if you want to quit.
=       Archive avaliable at http://www.lexa.ru/apache-talk                 =



 




Copyright © Lexa Software, 1996-2009.