docs: public static String expandUrlString(
              final String urlString,
              final MultiDataContext<ContextView, DataContext> dataContext,
              final String nodename
      )
      {
          final int qindex = urlString.indexOf('?');
          final StringBuilder builder = new StringBuilder();
  
          builder.append(
                  SharedDataContextUtils.replaceDataReferences(
                          qindex > 0 ? urlString.substring(0, qindex) : urlString,
                          dataContext,
                          ContextView.node(nodename),
                          ContextView::nodeStep,
                          urlPathEncoder,
                          true,
                          false
                  ));
          if (qindex > 0) {
              builder.append("?");
              if (qindex < urlString.length() - 1) {
                  builder.append(SharedDataContextUtils.replaceDataReferences(
                          urlString.substring(qindex + 1),
                          dataContext,
                          ContextView.node(nodename),
                          ContextView::nodeStep,
                          urlQueryEncoder,
                          true,
                          false
                  ));
              }
  
          }
  
          return builder.toString();
      }