- @Nullable
- private NormalizedNode<?, ?> rpcToNNode(final XmlElement oElement, @Nullable final ContainerSchemaNode input) {
- return input == null ? null : DomToNormalizedNodeParserFactory
- .getInstance(DomUtils.defaultValueCodecProvider(), schemaContext.getCurrentContext())
- .getContainerNodeParser()
- .parse(Collections.singletonList(oElement.getDomElement()), input);
- }
+ private @Nullable ContainerNode rpcToNNode(final XmlElement element,
+ final RpcDefinition rpcDefinition) throws DocumentedException {
+ final NormalizedNodeResult resultHolder = new NormalizedNodeResult();
+ final NormalizedNodeStreamWriter writer = ImmutableNormalizedNodeStreamWriter.from(resultHolder);
+ final XmlParserStream xmlParser = XmlParserStream.create(writer, SchemaInferenceStack.of(
+ schemaContext.getCurrentContext(),
+ Absolute.of(rpcDefinition.getQName(), rpcDefinition.getInput().getQName())).toInference());
+
+ try {
+ xmlParser.traverse(new DOMSource(element.getDomElement()));
+ } catch (final XMLStreamException | URISyntaxException | IOException | SAXException ex) {
+ throw new NetconfDocumentedException("Error parsing input: " + ex.getMessage(), ex, ErrorType.PROTOCOL,
+ DocumentedException.MALFORMED_MESSAGE, ErrorSeverity.ERROR);
+ }