- final AnyXmlNode anyXmlNode = Builders.anyXmlBuilder()
- .withNodeIdentifier(NetconfMessageTransformUtil.NETCONF_DATA_NODEID)
- .withValue(new DOMSource(xmlData)).build();
- normalizedNode = Builders.containerBuilder().withNodeIdentifier(
- new YangInstanceIdentifier.NodeIdentifier(NetconfMessageTransformUtil.NETCONF_RPC_REPLY_QNAME))
- .withChild(anyXmlNode).build();
+ final ContainerSchemaNode schemaForDataRead =
+ NetconfMessageTransformUtil.createSchemaForDataRead(schemaContext);
+ final ContainerNode dataNode;
+
+ try {
+ final NormalizedNodeResult resultHolder = new NormalizedNodeResult();
+ final NormalizedNodeStreamWriter writer = ImmutableNormalizedNodeStreamWriter.from(resultHolder);
+ final XmlParserStream xmlParser = XmlParserStream.create(writer, schemaContext, schemaForDataRead,
+ strictParsing);
+ xmlParser.traverse(new DOMSource(xmlData));
+ dataNode = (ContainerNode) resultHolder.getResult();
+ } catch (XMLStreamException | URISyntaxException | IOException | SAXException e) {
+ throw new IllegalArgumentException(String.format("Failed to parse data response %s", xmlData), e);
+ }
+
+ normalizedNode = Builders.containerBuilder()
+ .withNodeIdentifier(NETCONF_RPC_REPLY_NODEID)
+ .withChild(dataNode).build();