Атрибут стиля AntiSamy в.NET

Я использую AntiSamy в.Net проекте. Я хотел бы оставить атрибуты стиля для <span> метки, неповрежденные. Я пытался изменить политику, но все, что я делаю, я получаю тот же результат... Из этого:

<p><span style="font-size:10px"><span style="font-family:arial">Name here<br />

К этому:

<p><span style=""><span style="">Name here<br />

После просмотра файла политики я увидел этот комментарий там:

<!-- the "style" attribute will be validated by an inline stylesheet scanner, so no need to define anything here - i hate having to special case this but no other choice -->

Здесь у меня есть несколько вопросов...

Что означает эта закомментированная строка в XML-файле политики?

Должен ли я внести изменения для атрибута стиля в <common-attributes> или это не касается атрибутов стиля в <span> теги?

Нужно ли вносить изменения только в <tag name="span" action="validate"/> под <tag-rules> для содержимого атрибута стиля быть неповрежденным?

Заранее спасибо.

1 ответ

Решение

Атрибут "style" является особым случаем в AntiSamy (так как значение атрибута style состоит из списка пар свойство-значение).

style="font-size:10px; color:red;"

Значение атрибута style сканируется специальным сканером и встроенным сканером таблиц стилей. Эта проверка не является тривиальной, как для других атрибутов тега, так как каждое свойство в "стиле" само должно следовать некоторым правилам. Для этих правил должен быть определен раздел. Например,

<css-rules>
    <property name="font-size" >
        <category-list>
            <category value="visual" />
        </category-list>
        <literal-list>
            <literal value="inherit" />
        </literal-list>
        <regexp-list>
            <regexp name="length" />
        </regexp-list>
    </property>
</css-rules>

Свойство font-size свойства css будет проверено на соответствие правилам, определенным в css-rules. Здесь длина регулярного выражения определяется в разделе общих регулярных выражений как

<regexp name="length"
            value="((-|\+)?0|(-|\+)?([0-9]+(\.[0-9]+)?)(em|ex|px|in|cm|mm|pt|pc))" />

В разделе общих атрибутов или правил тегов нет изменений.

Другие вопросы по тегам