use of lucee.runtime.exp.XMLException in project Lucee by lucee.
the class XMLCaster method toElementArray.
/**
* casts a value to a XML Element Array
* @param doc XML Document
* @param o Object to cast
* @return XML Comment Array
* @throws PageException
*/
public static Element[] toElementArray(Document doc, Object o) throws PageException {
// Node[]
if (o instanceof Node[]) {
Node[] nodes = (Node[]) o;
if (_isAllOfSameType(nodes, Node.ELEMENT_NODE))
return (Element[]) nodes;
Element[] elements = new Element[nodes.length];
for (int i = 0; i < nodes.length; i++) {
elements[i] = toElement(doc, nodes[i]);
}
return elements;
} else // Collection
if (o instanceof Collection) {
Collection coll = (Collection) o;
Iterator<Object> it = coll.valueIterator();
List<Element> elements = new ArrayList<Element>();
while (it.hasNext()) {
elements.add(toElement(doc, it.next()));
}
return elements.toArray(new Element[elements.size()]);
}
// Node Map and List
Node[] nodes = _toNodeArray(doc, o);
if (nodes != null)
return toElementArray(doc, nodes);
// Single Text Node
try {
return new Element[] { toElement(doc, o) };
} catch (ExpressionException e) {
throw new XMLException("can't cast Object of type " + Caster.toClassName(o) + " to a XML Element Array");
}
}
use of lucee.runtime.exp.XMLException in project Lucee by lucee.
the class XMLValidator method validate.
public Struct validate(InputSource xml) throws XMLException {
warnings = new ArrayImpl();
errors = new ArrayImpl();
fatals = new ArrayImpl();
try {
XMLReader parser = XMLUtil.createXMLReader();
parser.setContentHandler(this);
parser.setErrorHandler(this);
parser.setEntityResolver(this);
parser.setFeature("http://xml.org/sax/features/validation", true);
parser.setFeature("http://apache.org/xml/features/validation/schema", true);
parser.setFeature("http://apache.org/xml/features/validation/schema-full-checking", true);
// if(!validateNamespace)
if (!StringUtil.isEmpty(strSchema))
parser.setProperty("http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation", strSchema);
parser.parse(xml);
} catch (SAXException e) {
} catch (IOException e) {
throw new XMLException(e.getMessage());
}
// result
Struct result = new StructImpl();
result.setEL("warnings", warnings);
result.setEL("errors", errors);
result.setEL("fatalerrors", fatals);
result.setEL("status", Caster.toBoolean(!hasErrors));
release();
return result;
}
Aggregations