제가 예전에 썼던 "zbxe를 사용 … 부조리들"의 6번째 문제점으로 지적한 innerHTML을 이용한 XHTML에 맞지 않는 코드 생성 방지 작업을 위해 DOM 트리를 따라 해석하고 whitelist 식의 validation을 적용하여 맞는 태그와 속성만을 통과시키려고 합니다. (DecorateHTMLCode 확장)

헌데, 위 글에서도 썼지만 위젯과 에디터 컴포넌트에서 사용하는 img와 div의 사용자 정의 속성에 상당한 난항을 겪고 있습니다. 위젯이나 에디터 컴포넌트에 따라 천차만별의 속성들이 적용되어서 그렇습니다.

표준에 정의되어 있는 속성을 재사용할 수 있는 방법은 없으므로 사용자 정의 태그가 되어야 합니다만, 이를 일원화 또는 이원화해서 적용하는 것이 좋을 것 같습니다. 예를 들어서,

Editor Component Attributes
<div editor_component="code_highlighter" code_type="Php"
file_path="/modules/editor/components/latexrender/latexrender.class.php"
description="LaTeXRender의 일부분" first_line="124" collapse="false"
nogutter="false" nocontrols="false" style="border-style: dotted dotted dotted solid;
border-color: rgb(102, 102, 102) rgb(102, 102, 102) rgb(102, 102, 102) rgb(34, 170, 238);
border-width: 1px 1px 1px 5px; padding: 5px; background: rgb(250, 250, 250)
url(./modules/editor/components/code_highlighter/code.png)
no-repeat scroll right top;">&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; if(!@file_exists($file_path))<br />

이와 같은 코드가 있다면 속성들을 간결화하여서

Example of Collapsing Editor Component Attributes
<div zbxe_module="editor_component:code_highlighter"
zbxe_vars="code_type=Php&amp;file_path=/modules/editor/components/latexrender/latexrender.class.php&amp;description=LaTeXRender의+일부분&amp;first_line=124&amp;collapse=false&amp;nogutter=false&amp;nocontrols=false"
style="border-style: dotted dotted dotted solid; border-color: rgb(102, 102, 102)
rgb(102, 102, 102) rgb(102, 102, 102) rgb(34, 170, 238);
border-width: 1px 1px 1px 5px; padding: 5px; background: rgb(250, 250, 250)
url(./modules/editor/components/code_highlighter/code.png)
no-repeat scroll right top;">&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; if(!@file_exists($file_path))<br />

물론 큰 변화이기에 당장 적용되는 것은 불가능하겠습니다만, 이와 같이 사용하게 된다면 코딩, 사용, 에디터에서의 xhtml validation, 그리고 추후에 도움이 될 것이라 생각합니다.