<!--
    Copyright (c) 2010-2014 SAP AG and others.
    All rights reserved. This program and the accompanying materials
    are made available under the terms of the Eclipse Public License v1.0
    which accompanies this distribution, and is available at
    http://www.eclipse.org/legal/epl-v10.html

    Contributors:
        SAP AG - initial API and implementation
 -->
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
    version="2.0">

    <tlib-version>1.0</tlib-version>
    <jsp-version>1.2</jsp-version>
    <uri>http://www.eclipse.org/skalli/taglib</uri>
    <function>
        <name>clean</name>
        <function-class>org.eclipse.skalli.commons.HtmlUtils</function-class>
        <function-signature>java.lang.String clean( java.lang.String )</function-signature>
    </function>
    <function>
        <name>escapeHtml</name>
        <function-class>org.apache.commons.lang.StringEscapeUtils</function-class>
        <function-signature>java.lang.String escapeHtml( java.lang.String )</function-signature>
    </function>
</taglib>