Beispiel #1
0
        internal void AddElement(string prefix, string ns, string localName)
        {
            var qname = new QNameIndex();

            qname.Init(prefix, ns, localName);
            AddQName(qname, _elementNamesMap);
        }
Beispiel #2
0
		internal void AddQName(QNameIndex qnameIndex, QNameArray mapQNames)
		{
			int index;
			if (mapQNames.TryAddQName(qnameIndex, out index))
			{
				// value was added

				int prefixIndex = 0;
				int namespaceIndex = 0;
				int localNameIndex = 0;

				if (!string.IsNullOrEmpty(qnameIndex.Qname.Prefix))
				{
					if (!FindPrefixNameIndex(qnameIndex.Qname.Prefix, out prefixIndex))
						AddPrefixName(qnameIndex.Qname.Prefix);
				}

				if (!string.IsNullOrEmpty(qnameIndex.Qname.Ns))
				{
					if (!FindNamespaceNameIndex(qnameIndex.Qname.Ns, out namespaceIndex))
						AddNamespaceName(qnameIndex.Qname.Ns);
				}

				if (!FindLocalNameIndex(qnameIndex.Qname.LocalName, out localNameIndex))
					AddLocalName(qnameIndex.Qname.LocalName);
			}
		}
Beispiel #3
0
        internal void AddAttribute(string prefix, string ns, string localName)
        {
            var qname = new QNameIndex();

            qname.Init(prefix, ns, localName);
            AddQName(qname, _attributeNamesMap);
        }
Beispiel #4
0
            internal bool TryAddQName(QNameIndex qnameIndex, out int index)
            {
                QNameIndexLookup qnameLookup;

                if (_nameQNameIndexLookupMap.TryGetValue(qnameIndex.Qname.LocalName, out qnameLookup))
                {
                    // found QNameIndexLookup for localName, so try match prfix and namespace
                    if (qnameLookup.TryGetIndex(qnameIndex.Qname.Prefix, qnameIndex.Qname.Ns, out index))
                    {
                        return(false);
                    }

                    // match not found, so add a new entry
                    _lastIndex++;
                    qnameIndex.Index = _lastIndex;
                    qnameLookup.AddQNameIndex(qnameIndex);
                }
                else
                {
                    // match not found, so add a new lookup entry for localName
                    _lastIndex++;
                    qnameIndex.Index = _lastIndex;
                    _nameQNameIndexLookupMap.Add(qnameIndex.Qname.LocalName, new QNameIndexLookup(qnameIndex));
                }

                index = -1;
                return(true);
            }
Beispiel #5
0
            internal void AddQNameIndex(QNameIndex qname)
            {
                int len = _qnames.Length;

                QNameIndex[] buffer = new QNameIndex[len + 1];
                Array.Copy(_qnames, buffer, len);
                _qnames      = buffer;
                _qnames[len] = qname;
            }
Beispiel #6
0
            internal bool Contains(QNameIndex qnameIndex)
            {
                QNameIndexLookup qnameLookup;

                if (_nameQNameIndexLookupMap.TryGetValue(qnameIndex.Qname.LocalName, out qnameLookup))
                {
                    // found QNameIndexLookup
                    return(qnameLookup.Contains(qnameIndex.Qname.Prefix, qnameIndex.Qname.Ns));
                }

                return(false);
            }
            internal bool Contains(string prefix, string ns)
            {
                for (int n = 0; n < _qnames.Length; n++)
                {
                    QNameIndex qnameIndex = _qnames[n];
                    if ((qnameIndex.qname.prefix == prefix) && (qnameIndex.qname.ns == ns))
                    {
                        return(true);
                    }
                }

                return(false);
            }
Beispiel #8
0
            internal bool TryGetIndex(string prefix, string ns, out int index)
            {
                for (int n = 0; n < _qnames.Length; n++)
                {
                    QNameIndex qnameIndex = _qnames[n];
                    if ((qnameIndex.Qname.Prefix == prefix) && (qnameIndex.Qname.Ns == ns))
                    {
                        index = qnameIndex.Index;
                        return(true);
                    }
                }

                index = -1;
                return(false);
            }
Beispiel #9
0
 internal QNameIndexLookup(QNameIndex qname)
 {
     _qnames    = new QNameIndex[1];
     _qnames[0] = qname;
 }