import org.w3c.dom.Element;
final class LeafNodeDomParser extends LeafNodeBaseParser<Element> {
-
private final XmlCodecProvider codecProvider;
private final SchemaContext ctx;
@Override
protected Object parseLeaf(final Element xmlElement, final LeafSchemaNode schema) {
- return ctx == null ? DomUtils.parseXmlValue(xmlElement, codecProvider, schema.getType())
- : DomUtils.parseXmlValue(xmlElement, codecProvider, schema, schema.getType(), ctx);
+ try {
+ return ctx == null ? DomUtils.parseXmlValue(xmlElement, codecProvider, schema.getType())
+ : DomUtils.parseXmlValue(xmlElement, codecProvider, schema, schema.getType(), ctx);
+ } catch (IllegalArgumentException e) {
+ throw new IllegalArgumentException(String.format("Failed to parse element %s as leaf %s",
+ xmlElement, schema.getPath()), e);
+ }
}
@Override
protected Map<QName, String> getAttributes(final Element element) {
return DomUtils.toAttributes(element.getAttributes());
}
-
}