public IDocumentWriter SetResourceIdentifier <TResource, TResourceId>(IResourceIdentifierSource <TResourceId> resourceIdentifierSource)
            where TResource : class, IResource
        {
            Contract.Requires(resourceIdentifierSource != null);

            var primaryResourceIdentifierBuilder = this.ResourceIdentifier <TResource, TResourceId>(resourceIdentifierSource);

            return(primaryResourceIdentifierBuilder.ResourceIdentifierEnd());
        }
        public IPrimaryResourceIdentifierBuilder <TResource> ResourceIdentifier <TResource, TResourceId>(IResourceIdentifierSource <TResourceId> resourceIdentifierSource)
            where TResource : class, IResource
        {
            Contract.Requires(resourceIdentifierSource != null);

            var primaryResourceIdentifierBuilder = new PrimaryResourceIdentifierBuilder <TResource>(this, this.ServiceModel, this.DomDocument);
            var resourceId = resourceIdentifierSource.GetResourceId();

            primaryResourceIdentifierBuilder.SetId(resourceId);
            return(primaryResourceIdentifierBuilder);
        }