/// <summary>just go down the child collections</summary>
        /// <param name="uriBase"> as currently calculated</param>
        internal override void BaseUriChanged(AtomUri uriBase)
        {
            base.BaseUriChanged(uriBase);
            // now pass it to the properties.
            uriBase = new AtomUri(Utilities.CalculateUri(Base, uriBase, null));

            if (Title != null)
            {
                Title.BaseUriChanged(uriBase);
            }

            if (Id != null)
            {
                Id.BaseUriChanged(uriBase);
            }

            foreach (AtomLink link in Links)
            {
                link.BaseUriChanged(uriBase);
            }

            foreach (AtomPerson person in Authors)
            {
                person.BaseUriChanged(uriBase);
            }

            foreach (AtomPerson person in Contributors)
            {
                person.BaseUriChanged(uriBase);
            }

            foreach (AtomCategory category in Categories)
            {
                category.BaseUriChanged(uriBase);
            }

            if (Rights != null)
            {
                Rights.BaseUriChanged(uriBase);
            }

            if (Summary != null)
            {
                Summary.BaseUriChanged(uriBase);
            }

            if (Content != null)
            {
                Content.BaseUriChanged(uriBase);
            }

            if (Source != null)
            {
                Source.BaseUriChanged(uriBase);
            }
        }