- final PathArgument topLevelElement = it.next();
- final DataSchemaNode dataChildByName = ctx.getDataChildByName(topLevelElement.getNodeType());
- checkNotNull(dataChildByName,
- "Cannot find %s node in schema context. Instance identifier has to start from root", topLevelElement);
- final InstanceIdToNodes<?> instanceIdToNodes = InstanceIdToNodes.fromSchemaAndQNameChecked(ctx,
- topLevelElement.getNodeType());
- return instanceIdToNodes.create(topLevelElement, it, deepestElement, operation);
+ if (it.hasNext()) {
+ topLevelElement = it.next();
+ final DataSchemaNode dataChildByName = ctx.dataChildByName(topLevelElement.getNodeType());
+ checkNotNull(dataChildByName,
+ "Cannot find %s node in schema context. Instance identifier has to start from root", topLevelElement);
+ instanceIdToNodes = InstanceIdToNodes.fromSchemaAndQNameChecked(ctx, topLevelElement.getNodeType());
+ } else {
+ topLevelElement = SCHEMACONTEXT_NAME;
+ instanceIdToNodes = InstanceIdToNodes.fromDataSchemaNode(ctx);
+ }
+
+ return instanceIdToNodes.create(topLevelElement, it, deepestElement);