void SaveReference(bool hasNamespace, Span namespaceSpan, Span nameSpan, XmlNameReferenceKind refKind, bool findDefsOnly) { var aliasSpan = hasNamespace ? namespaceSpan : new Span(0, 0); XmlNamespaceReference nsRef; if (findDefsOnly) { var alias = GetSubstring(aliasSpan); var def = xmlNamespaces.GetOrCreate(alias); nsRef = new XmlNamespaceReference(alias) { Definition = def }; } else { nsRef = GetAttributeNamespaceReference(aliasSpan); } if (hasNamespace) { var @ref = new XmlNamespaceTextViewerReference(nsRef); references.Add(new ReferenceInfo(namespaceSpan, @ref, false)); } var nameRef = new XmlNameTextViewerReference(nsRef, GetSubstring(nameSpan), refKind); references.Add(new ReferenceInfo(nameSpan, nameRef, false)); }
void SaveReference(NameToken name, bool findDefsOnly) { var aliasSpan = name.HasNamespace ? name.Namespace.Span : new Span(0, 0); XmlNamespaceReference nsRef; if (findDefsOnly) { var alias = string.Intern(text.Substring(aliasSpan.Start, aliasSpan.Length)); var def = xmlNamespaces.GetOrCreate(alias); nsRef = new XmlNamespaceReference(alias) { Definition = def }; } else { nsRef = GetAttributeNamespaceReference(aliasSpan); } if (name.HasNamespace) { var @ref = new XmlNamespaceTextViewerReference(nsRef); references.Add(new ReferenceInfo(name.Namespace.Span, @ref, false)); } var tagRef = new XmlTagTextViewerReference(nsRef, text.Substring(name.Name.Span.Start, name.Name.Span.Length)); references.Add(new ReferenceInfo(name.Name.Span, tagRef, false)); }
public XmlNamespaceTextViewerReference(XmlNamespaceReference nsRef) { if (nsRef == null) { throw new ArgumentNullException(nameof(nsRef)); } XmlNamespaceReference = nsRef; }
public XmlTagTextViewerReference(XmlNamespaceReference nsRef, string name) { if (nsRef == null) { throw new ArgumentNullException(nameof(nsRef)); } if (name == null) { throw new ArgumentNullException(nameof(name)); } this.nsRef = nsRef; this.name = string.Intern(name); }
XmlNamespaceReference GetAttributeNamespaceReference(Span aliasSpan) { var nsRef = TryGetAttributeNamespaceReference(aliasSpan); if (nsRef != null) { return(nsRef); } var nsName = GetSubstring(aliasSpan); nsRef = new XmlNamespaceReference(nsName); xmlNamespaceReferences.Add(nsRef); return(nsRef); }
public XmlNameTextViewerReference(XmlNamespaceReference nsRef, string name, XmlNameReferenceKind refKind) { if (nsRef == null) { throw new ArgumentNullException(nameof(nsRef)); } if (name == null) { throw new ArgumentNullException(nameof(name)); } this.nsRef = nsRef; this.name = name; this.refKind = refKind; }
public override int GetHashCode() => XmlNamespaceReference.GetHashCode();
public override bool Equals(object obj) { var other = obj as XmlNamespaceTextViewerReference; return(other != null && XmlNamespaceReference.Equals(other.XmlNamespaceReference)); }
public XmlNamespaceTextViewerReference(XmlNamespaceReference nsRef) => XmlNamespaceReference = nsRef ?? throw new ArgumentNullException(nameof(nsRef));