protected bool ReadReference(out string fixupReference)
{
string href = _soap12 ? _r.GetAttribute("ref", Soap12.Encoding) : _r.GetAttribute("href");
if (href == null)
{
fixupReference = null;
return false;
}
if (!_soap12)
{
// soap 1.1 href starts with '#'; soap 1.2 ref does not
if (!href.StartsWith("#", StringComparison.Ordinal)) throw new InvalidOperationException(SR.Format(SR.XmlMissingHref, href));
fixupReference = href.Substring(1);
}
else
fixupReference = href;
if (_r.IsEmptyElement)
{
_r.Skip();
}
else
{
_r.ReadStartElement();
ReadEndElement();
}
return true;
}