class XmlNodeConverter implements NodeConverter {

    @Override
    public NormalizedNode<?, ?> deserialize(final SchemaNode schemaNode, final Reader inputData)
            throws SerializationException {
        final XMLStreamReader reader;
        try {
            reader = XML_IN_FACTORY.createXMLStreamReader(inputData);
        } catch (XMLStreamException e) {
            throw new IllegalArgumentException(e);
        }
        final NormalizedNodeResult result = new NormalizedNodeResult();
        try (NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result);
                XmlParserStream xmlParser = XmlParserStream.create(streamWriter, this.schemaContext, schemaNode)) {
            xmlParser.parse(reader);
        } catch (XMLStreamException | URISyntaxException | IOException | SAXException e) {
            throw new SerializationException(e);
        } finally {
            closeQuietly(reader);
        }
        return result.getResult();
    }

    public  XmlNodeConverter(final SchemaContext schemaContext);

}