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 }