001    package railo.runtime.functions.xml;
002    
003    import org.xml.sax.InputSource;
004    
005    import railo.commons.lang.StringUtil;
006    import railo.runtime.PageContext;
007    import railo.runtime.exp.PageException;
008    import railo.runtime.ext.function.Function;
009    import railo.runtime.op.Caster;
010    import railo.runtime.text.xml.XMLUtil;
011    import railo.runtime.type.Struct;
012    
013    /**
014     * 
015     */
016    public final class XmlValidate implements Function {
017    
018            public static Struct call(PageContext pc, String strXml) throws PageException {
019                    return call(pc,strXml,null);
020            }
021            public static Struct call(PageContext pc, String strXml, String strValidator) throws PageException {
022                    strXml=strXml.trim();
023                    try {
024                            InputSource xml = XMLUtil.toInputSource(pc,strXml);
025                            InputSource validator = StringUtil.isEmpty(strValidator)?null:XMLUtil.toInputSource(pc,strValidator);
026                            return XMLUtil.validate(xml, validator,strValidator);
027                    } 
028                    catch (Exception e) {
029                            throw Caster.toPageException(e);
030                    }
031                    
032            }
033    }