void DoResolveEntity() { if (entity != null) { entity.ResolveEntity(); } else { if (source.NodeType != XmlNodeType.EntityReference) { throw new InvalidOperationException("The current node is not an Entity Reference"); } if (ParserContext.Dtd == null) { throw new XmlException(this as IXmlLineInfo, this.BaseURI, String.Format("Cannot resolve entity without DTD: '{0}'", source.Name)); } XmlReader entReader = ParserContext.Dtd.GenerateEntityContentReader( source.Name, ParserContext); if (entReader == null) { throw new XmlException(this as IXmlLineInfo, this.BaseURI, String.Format("Reference to undeclared entity '{0}'.", source.Name)); } entity = new EntityResolvingXmlReader( entReader, inside_attr); entity.CopyProperties(this); } }
public override void MoveToAttribute(int i) { if (entity != null && entity_inside_attr) { entity.Close(); entity = null; } Current.MoveToAttribute(i); inside_attr = true; }
public override void MoveToAttribute(int i) { if (this.entity != null && this.entity_inside_attr) { this.entity.Close(); this.entity = null; } this.Current.MoveToAttribute(i); this.inside_attr = true; }
public override bool MoveToElement() { if (this.entity != null && this.entity_inside_attr) { this.entity.Close(); this.entity = null; } if (!this.Current.MoveToElement()) { return(false); } this.inside_attr = false; return(true); }
public override bool ReadAttributeValue() { if (this.entity != null && this.entity_inside_attr) { if (!this.entity.EOF) { this.entity.Read(); return(true); } this.entity.Close(); this.entity = null; } return(this.Current.ReadAttributeValue()); }
public override bool MoveToElement() { if (entity != null && entity_inside_attr) { entity.Close(); entity = null; } if (!Current.MoveToElement()) { return(false); } inside_attr = false; return(true); }
public override bool Read() { if (do_resolve) { DoResolveEntity(); do_resolve = false; } inside_attr = false; if (entity != null && (entity_inside_attr || entity.EOF)) { entity.Close(); entity = null; } if (entity != null) { if (entity.Read()) { return(true); } if (EntityHandling == EntityHandling.ExpandEntities) { // EndEntity must be skipped entity.Close(); entity = null; return(Read()); } else { return(true); // either success or EndEntity } } else { if (!source.Read()) { return(false); } if (EntityHandling == EntityHandling.ExpandEntities && source.NodeType == XmlNodeType.EntityReference) { ResolveEntity(); return(Read()); } return(true); } }
public override bool ReadAttributeValue() { if (entity != null && entity_inside_attr) { if (entity.EOF) { entity.Close(); entity = null; } else { entity.Read(); return(true); // either success or EndEntity } } return(Current.ReadAttributeValue()); }
public override bool MoveToNextAttribute() { if (this.entity != null && !this.entity_inside_attr) { return(this.entity.MoveToNextAttribute()); } if (!this.source.MoveToNextAttribute()) { return(false); } if (this.entity != null && this.entity_inside_attr) { this.entity.Close(); this.entity = null; } this.inside_attr = true; return(true); }
public override bool MoveToAttribute(string localName, string namespaceName) { if (entity != null && !entity_inside_attr) { return(entity.MoveToAttribute(localName, namespaceName)); } if (!source.MoveToAttribute(localName, namespaceName)) { return(false); } if (entity != null && entity_inside_attr) { entity.Close(); entity = null; } inside_attr = true; return(true); }
public override bool MoveToNextAttribute() { if (entity != null && !entity_inside_attr) { return(entity.MoveToNextAttribute()); } if (!source.MoveToNextAttribute()) { return(false); } if (entity != null && entity_inside_attr) { entity.Close(); entity = null; } inside_attr = true; return(true); }
public override bool Read() { if (this.do_resolve) { this.DoResolveEntity(); this.do_resolve = false; } this.inside_attr = false; if (this.entity != null && (this.entity_inside_attr || this.entity.EOF)) { this.entity.Close(); this.entity = null; } if (this.entity != null) { if (this.entity.Read()) { return(true); } if (this.EntityHandling == EntityHandling.ExpandEntities) { this.entity.Close(); this.entity = null; return(this.Read()); } return(true); } else { if (!this.source.Read()) { return(false); } if (this.EntityHandling == EntityHandling.ExpandEntities && this.source.NodeType == XmlNodeType.EntityReference) { this.ResolveEntity(); return(this.Read()); } return(true); } }
// non-overrides private void CopyProperties (EntityResolvingXmlReader other) { context = other.context; resolver = other.resolver; entity_handling = other.entity_handling; }
public override bool MoveToAttribute (string localName, string namespaceName) { if (entity != null && !entity_inside_attr) return entity.MoveToAttribute (localName, namespaceName); if (!source.MoveToAttribute (localName, namespaceName)) return false; if (entity != null && entity_inside_attr) { entity.Close (); entity = null; } inside_attr = true; return true; }
public override bool MoveToElement () { if (entity != null && entity_inside_attr) { entity.Close (); entity = null; } if (!Current.MoveToElement ()) return false; inside_attr = false; return true; }
public override bool MoveToNextAttribute () { if (entity != null && !entity_inside_attr) return entity.MoveToNextAttribute (); if (!source.MoveToNextAttribute ()) return false; if (entity != null && entity_inside_attr) { entity.Close (); entity = null; } inside_attr = true; return true; }
public override bool Read () { if (do_resolve) { DoResolveEntity (); do_resolve = false; } inside_attr = false; if (entity != null && (entity_inside_attr || entity.EOF)) { entity.Close (); entity = null; } if (entity != null) { if (entity.Read ()) return true; if (EntityHandling == EntityHandling.ExpandEntities) { // EndEntity must be skipped entity.Close (); entity = null; return Read (); } else return true; // either success or EndEntity } else { if (!source.Read ()) return false; if (EntityHandling == EntityHandling.ExpandEntities && source.NodeType == XmlNodeType.EntityReference) { ResolveEntity (); return Read (); } return true; } }
// non-overrides private void CopyProperties(EntityResolvingXmlReader other) { context = other.context; resolver = other.resolver; entity_handling = other.entity_handling; }
public override bool ReadAttributeValue () { if (entity != null && entity_inside_attr) { if (entity.EOF) { entity.Close (); entity = null; } else { entity.Read (); return true; // either success or EndEntity } } return Current.ReadAttributeValue (); }
public override void MoveToAttribute (int i) { if (entity != null && entity_inside_attr) { entity.Close (); entity = null; } Current.MoveToAttribute (i); inside_attr = true; }
void DoResolveEntity () { if (entity != null) entity.ResolveEntity (); else { if (source.NodeType != XmlNodeType.EntityReference) throw new InvalidOperationException ("The current node is not an Entity Reference"); if (ParserContext.Dtd == null) throw new XmlException (this as IXmlLineInfo, this.BaseURI, String.Format ("Cannot resolve entity without DTD: '{0}'", source.Name)); XmlReader entReader = ParserContext.Dtd.GenerateEntityContentReader ( source.Name, ParserContext); if (entReader == null) throw new XmlException (this as IXmlLineInfo, this.BaseURI, String.Format ("Reference to undeclared entity '{0}'.", source.Name)); entity = new EntityResolvingXmlReader ( entReader, inside_attr); entity.CopyProperties (this); } }