2014-04-04 31 views
0

我在.Net項目中使用AntiSamy。我想保留<span>標籤的樣式屬性不變。我試圖修改政策,但無論我做什麼,我得到同樣的結果......從這:.NET中的AntiSamy樣式屬性

<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 --> 

這裏我有一些問題...

什麼在p這個註釋行olicy xml文件是什麼意思?

是否必須對<common-attributes>中的樣式屬性進行更改,或者這不會觸及<span>標籤中的樣式屬性?

我是否只需在<tag name="span" action="validate"/><tag-rules>下進行更改,以使樣式屬性內容保持完整?

預先感謝您。

回答

1

「style」屬性是AntiSamy中的特例(因爲樣式屬性的值由屬性值對列表組成)。

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

樣式屬性的值是由特殊的掃描器內嵌樣式表的掃描儀掃描。這種驗證對其他標籤屬性來說並不重要,因爲「樣式」本身中的每個屬性都應遵循一些規則。甲部分具有用於這些規則例如被定義,

<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> 

CSS屬性字體大小將針對在CSS規則定義的規則進行驗證。這裏正則表達式的長度一般在普通的正則表達式部分定義爲

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

有一個在共同的屬性或標籤規則部分沒有變化。