void replaceChild (Node oldChild, Node newChild)
    {
        if (_occursFixedOrVariable_ == oldChild)
        {
            setOccursFixedOrVariable ((POccursFixedOrVariable) newChild);

            return;
        }

        for (ListIterator i = _ascendingOrDescendingKeyPhrase_.listIterator ();
                i.hasNext ();)
        {
            if (i.next () == oldChild)
            {
                if (newChild != null)
                {
                    i.set (newChild);
                    oldChild.parent (null);

                    return;
                }

                i.remove ();
                oldChild.parent (null);

                return;
            }
        }

        for (ListIterator i = _indexedByPhrase_.listIterator (); i.hasNext ();)
        {
            if (i.next () == oldChild)
            {
                if (newChild != null)
                {
                    i.set (newChild);
                    oldChild.parent (null);

                    return;
                }

                i.remove ();
                oldChild.parent (null);

                return;
            }
        }
    }