// Constructor.
	internal XmlElement(XmlNode parent, NameCache.NameInfo name)
			: base(parent)
			{
				this.name = name;
				this.attributes = null;
				this.isEmpty = true;
			}
	protected internal XmlAttribute(String prefix, String localName,
									String namespaceURI, XmlDocument doc)
			: base(doc)
			{
				this.name = doc.nameCache.Add(localName, prefix, namespaceURI);
				this.isDefault = false;
			}
	protected internal XmlElement(String prefix, String localName,
								  String namespaceURI, XmlDocument doc)
			: base(doc)
			{
				this.name = doc.nameCache.Add(localName, prefix, namespaceURI);
			}
	// Get a list of all descendents that match a particular name.
	public virtual XmlNodeList GetElementsByTagName(String name)
			{
				name = (FindOwnerQuick()).NameTable.Add(name);
				return new ElementList(this, name);
			}
	// Constructors.
	internal XmlAttribute(XmlNode parent, NameCache.NameInfo name)
			: base(parent)
			{
				this.name = name;
				this.isDefault = false;
			}