Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
 public XmlNamespaceTextViewerReference(XmlNamespaceReference nsRef)
 {
     if (nsRef == null)
     {
         throw new ArgumentNullException(nameof(nsRef));
     }
     XmlNamespaceReference = nsRef;
 }
Ejemplo n.º 4
0
 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);
 }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
 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;
 }
Ejemplo n.º 7
0
 public override int GetHashCode() => XmlNamespaceReference.GetHashCode();
Ejemplo n.º 8
0
            public override bool Equals(object obj)
            {
                var other = obj as XmlNamespaceTextViewerReference;

                return(other != null && XmlNamespaceReference.Equals(other.XmlNamespaceReference));
            }
Ejemplo n.º 9
0
 public XmlNamespaceTextViewerReference(XmlNamespaceReference nsRef) => XmlNamespaceReference = nsRef ?? throw new ArgumentNullException(nameof(nsRef));