code: private void _writeNodeList (@Nonnull final XMLEmitter aXMLWriter,
                                 @Nullable final IMicroNode aParentNode,
                                 @Nonnull final List <IMicroNode> aChildren)
    {
      final int nLastIndex = aChildren.size () - 1;
      for (int nIndex = 0; nIndex <= nLastIndex; ++nIndex)
      {
        emitNode (aXMLWriter,
                  aParentNode,
                  nIndex == 0 ? null : aChildren.get (nIndex - 1),
                  aChildren.get (nIndex),
                  nIndex == nLastIndex ? null : aChildren.get (nIndex + 1));
      }
    }
docs: Special helper method to write a list of nodes. This implementations is used
  to avoid calling {@link IMicroNode#getPreviousSibling()} and
  {@link IMicroNode#getNextSibling()} since there implementation is compute
  intensive since the objects are not directly linked. So to avoid this call,
  we're manually retrieving the previous and next sibling by their index in the
  list.
  
  @param aXMLWriter
  The XML writer to use. May not be <code>null</code>.
  @param aParentNode
  The parent node to be used. May not be <code>null</code>.
  @param aChildren
  The node list to be serialized. May not be <code>null</code>.