/// <summary>
 /// Creates a new documentation element.
 /// </summary>
 public XmlDocumentationElement(AXmlDocument document, ISymbol declaringEntity)
 {
     if (document == null)
     {
         throw new ArgumentNullException("document");
     }
     this.xmlObject       = document;
     this.declaringEntity = declaringEntity;
 }
Exemplo n.º 2
0
		IList<AXmlObject> CreatePublic(IList<InternalObject> internalObjects)
		{
			var publicObjects = new AXmlObject[internalObjects.Count];
			int pos = 0;
			for (int i = 0; i < internalObjects.Count; i++) {
				publicObjects[i] = internalObjects[i].CreatePublicObject(null, pos);
				pos += internalObjects[i].Length;
			}
			return publicObjects;
		}
        IList <AXmlObject> CreatePublic(IList <InternalObject> internalObjects)
        {
            var publicObjects = new AXmlObject[internalObjects.Count];
            int pos           = 0;

            for (int i = 0; i < internalObjects.Count; i++)
            {
                publicObjects[i] = internalObjects[i].CreatePublicObject(null, pos);
                pos += internalObjects[i].Length;
            }
            return(publicObjects);
        }
Exemplo n.º 4
0
 int GetAttributeIndex(string name, string ns)
 {
     if (attributes == null)
     {
         return(-1);
     }
     for (int i = 0; i < attributes.Count; i++)
     {
         if (AXmlObject.GetLocalName(attributes[i].Name) == name && (LookupNamespace(AXmlObject.GetNamespacePrefix(attributes[i].Name)) ?? string.Empty) == ns)
         {
             return(i);
         }
     }
     return(-1);
 }
		internal AXmlElement(AXmlObject parent, int startOffset, InternalElement internalObject)
			: base(parent, startOffset, internalObject)
		{
			Log.Assert(internalObject.NestedObjects[0] is InternalTag, "First child of element must be start tag");
		}
Exemplo n.º 6
0
		internal AXmlTag(AXmlObject parent, int startOffset, InternalTag internalObject)
			: base(parent, startOffset, internalObject)
		{
			this.internalObject = internalObject;
		}
		public override AXmlObject CreatePublicObject(AXmlObject parent, int parentStartOffset)
		{
			return new AXmlTag(parent, (parent != null ? parentStartOffset + StartRelativeToParent : parentStartOffset), this);
		}
		public abstract AXmlObject CreatePublicObject(AXmlObject parent, int parentStartOffset);
Exemplo n.º 9
0
 public override AXmlObject CreatePublicObject(AXmlObject parent, int parentStartOffset)
 {
     return(new AXmlText(parent, (parent != null ? parentStartOffset + StartRelativeToParent : parentStartOffset), this));
 }
Exemplo n.º 10
0
 public abstract AXmlObject CreatePublicObject(AXmlObject parent, int parentStartOffset);
		internal AXmlAttribute(AXmlObject parent, int startOffset, InternalAttribute internalObject)
			: base(parent, startOffset, internalObject)
		{
		}
Exemplo n.º 12
0
 internal AXmlAttribute(AXmlObject parent, int startOffset, InternalAttribute internalObject)
     : base(parent, startOffset, internalObject)
 {
 }
 internal AXmlDocument(AXmlObject parent, int startOffset, InternalDocument internalObject)
     : base(parent, startOffset, internalObject)
 {
 }
Exemplo n.º 14
0
		internal AXmlDocument(AXmlObject parent, int startOffset, InternalDocument internalObject)
			: base(parent, startOffset, internalObject)
		{
		}
Exemplo n.º 15
0
 internal AXmlTag(AXmlObject parent, int startOffset, InternalTag internalObject)
     : base(parent, startOffset, internalObject)
 {
     this.internalObject = internalObject;
 }
Exemplo n.º 16
0
 bool ReadCurrentPosition()
 {
     attributes       = null;
     attributeIndex   = -1;
     inAttributeValue = false;
     while (true)
     {
         var obj = objectIterator.CurrentObject;
         if (obj == null)
         {
             readState       = ReadState.EndOfFile;
             elementNodeType = XmlNodeType.None;
             return(false);
         }
         else if (objectIterator.IsAtElementEnd)
         {
             if (IsEmptyElement)
             {
                 // Don't report EndElement for empty elements
                 nsManager.PopScope();
             }
             else
             {
                 elementNodeType = XmlNodeType.EndElement;
                 return(true);
             }
         }
         else if (obj is InternalElement)
         {
             // element start
             elementNodeType = XmlNodeType.Element;
             InternalTag startTag = ((InternalTag)obj.NestedObjects[0]);
             nsManager.PushScope();
             if (startTag.NestedObjects != null)
             {
                 attributes = startTag.NestedObjects.OfType <InternalAttribute>().ToList();
                 for (int i = 0; i < attributes.Count; i++)
                 {
                     var attr = attributes[i];
                     if (attr.Name.StartsWith("xmlns:", StringComparison.Ordinal))
                     {
                         nsManager.AddNamespace(AXmlObject.GetLocalName(attr.Name), attr.Value);
                     }
                     else if (attr.Name == "xmlns")
                     {
                         nsManager.AddNamespace(string.Empty, attr.Value);
                     }
                 }
             }
             return(true);
         }
         else if (obj is InternalText)
         {
             InternalText text = (InternalText)obj;
             if (text.ContainsOnlyWhitespace)
             {
                 elementNodeType = XmlNodeType.Whitespace;
             }
             else
             {
                 elementNodeType = XmlNodeType.Text;
             }
             return(true);
         }
         else if (obj is InternalTag)
         {
             InternalTag tag = (InternalTag)obj;
             if (tag.IsStartOrEmptyTag || tag.IsEndTag)
             {
                 // start/end tags can be skipped as the parent InternalElement already handles them
             }
             else if (tag.IsComment && !settings.IgnoreComments)
             {
                 elementNodeType = XmlNodeType.Comment;
                 return(true);
             }
             else if (tag.IsProcessingInstruction && !settings.IgnoreProcessingInstructions)
             {
                 if (tag.Name == "xml")
                 {
                     elementNodeType = XmlNodeType.XmlDeclaration;
                     attributes      = tag.NestedObjects.OfType <InternalAttribute>().ToList();
                 }
                 else
                 {
                     elementNodeType = XmlNodeType.ProcessingInstruction;
                 }
                 return(true);
             }
             else if (tag.IsCData)
             {
                 elementNodeType = XmlNodeType.CDATA;
                 return(true);
             }
             else
             {
                 // TODO all other tags
             }
         }
         else
         {
             throw new NotSupportedException();
         }
         objectIterator.MoveInto();
     }
 }
Exemplo n.º 17
0
		internal AXmlText(AXmlObject parent, int startOffset, InternalText internalObject)
			: base(parent, startOffset, internalObject)
		{
		}
Exemplo n.º 18
0
		internal AXmlObject(AXmlObject parent, int startOffset, InternalObject internalObject)
		{
			this.parent = parent;
			this.startOffset = startOffset;
			this.internalObject = internalObject;
		}
Exemplo n.º 19
0
 internal AXmlElement(AXmlObject parent, int startOffset, InternalElement internalObject)
     : base(parent, startOffset, internalObject)
 {
     Log.Assert(internalObject.NestedObjects[0] is InternalTag, "First child of element must be start tag");
 }
 internal AXmlText(AXmlObject parent, int startOffset, InternalText internalObject)
     : base(parent, startOffset, internalObject)
 {
 }
Exemplo n.º 21
0
 internal AXmlObject(AXmlObject parent, int startOffset, InternalObject internalObject)
 {
     this.parent         = parent;
     this.startOffset    = startOffset;
     this.internalObject = internalObject;
 }
		/// <summary>
		/// Creates a new documentation element.
		/// </summary>
		public XmlDocumentationElement(AXmlDocument document, ISymbol declaringEntity)
		{
			if (document == null)
				throw new ArgumentNullException("document");
			this.xmlObject = document;
			this.declaringEntity = declaringEntity;
		}