From: Oleg T. <he...@us...> - 2004-11-02 16:49:55
|
Update of /cvsroot/mvp-xml/XInclude/v1/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9804/v1/src Modified Files: XIncludingReader.cs XIncludingReaderState.cs Log Message: Code review Index: XIncludingReader.cs =================================================================== RCS file: /cvsroot/mvp-xml/XInclude/v1/src/XIncludingReader.cs,v retrieving revision 1.24 retrieving revision 1.25 diff -u -d -r1.24 -r1.25 --- XIncludingReader.cs 2 Nov 2004 14:31:56 -0000 1.24 +++ XIncludingReader.cs 2 Nov 2004 16:49:39 -0000 1.25 @@ -26,7 +26,6 @@ /// Open Issues: /// o GetAttribute(int i)? /// o MoveToAttribute(int i)? - /// o GetEntity on custom XmlResolver ///</remarks> public class XIncludingReader : XmlReader { @@ -202,7 +201,7 @@ int ac = _reader.AttributeCount; if (_reader.GetAttribute(_keywords.XmlBase)==null) ac++; - if (_differentLang && _reader.GetAttribute(_keywords.XmlLang)==null) + if (_differentLang) ac++; return ac; } @@ -222,16 +221,10 @@ { get { - switch (_state) - { - case XIncludingReaderState.ExposingXmlBaseAttr: - case XIncludingReaderState.ExposingXmlBaseAttrValue: - case XIncludingReaderState.ExposingXmlLangAttr: - case XIncludingReaderState.ExposingXmlLangAttrValue: - return true; - default: - return _reader.HasValue; - } + if (_state == XIncludingReaderState.Default) + return _reader.HasValue; + else + return true; } } @@ -240,17 +233,12 @@ { get { - switch (_state) - { - case XIncludingReaderState.ExposingXmlBaseAttr: - case XIncludingReaderState.ExposingXmlBaseAttrValue: - case XIncludingReaderState.ExposingXmlLangAttr: - case XIncludingReaderState.ExposingXmlLangAttrValue: - //TODO: May be wrong if xml:base or xml:lang exists and it does default - return false; - default: - return _reader.IsDefault; - } + if (_state == XIncludingReaderState.Default) + return _reader.IsDefault; + else + //TODO: It might be wrong if xml:base or xml:lang + //are default + return false; } } @@ -376,12 +364,14 @@ /// <summary>See <see cref="XmlReader.Close"/></summary> public override void Close() { - _reader.Close(); + if (_reader != null) + _reader.Close(); //Close all readers in the stack while (_readers.Count>0) { _reader = (XmlReader)_readers.Pop(); - _reader.Close(); + if (_reader != null) + _reader.Close(); } } @@ -392,6 +382,7 @@ if (_readers.Count == 0) return _reader.Depth; else + //TODO: that might be way ineffective return ((XmlReader)_readers.Peek()).Depth + _reader.Depth; } } @@ -411,29 +402,29 @@ /// <summary>See <see cref="XmlReader.GetAttribute"/></summary> public override string GetAttribute(string name) { - if (_topLevel && - XIncludeKeywords.Equals(name, _keywords.XmlBase)) - return _reader.BaseURI; - else if (_topLevel && - XIncludeKeywords.Equals(name, _keywords.XmlLang)) - return _reader.XmlLang; - else - return _reader.GetAttribute(name); + if (_topLevel) + { + if (XIncludeKeywords.Equals(name, _keywords.XmlBase)) + return _reader.BaseURI; + else if (XIncludeKeywords.Equals(name, _keywords.XmlLang)) + return _reader.XmlLang; + } + return _reader.GetAttribute(name); } /// <summary>See <see cref="XmlReader.GetAttribute"/></summary> public override string GetAttribute(string name, string namespaceURI) { - if (_topLevel && - XIncludeKeywords.Equals(name, _keywords.Base) && - XIncludeKeywords.Equals(namespaceURI, _keywords.XmlNamespace)) - return _reader.BaseURI; - else if (_topLevel && - XIncludeKeywords.Equals(name, _keywords.Lang) && - XIncludeKeywords.Equals(namespaceURI, _keywords.XmlNamespace)) - return _reader.XmlLang; - else - return _reader.GetAttribute(name, namespaceURI); + if (_topLevel) + { + if (XIncludeKeywords.Equals(name, _keywords.Base) && + XIncludeKeywords.Equals(namespaceURI, _keywords.XmlNamespace)) + return _reader.BaseURI; + else if (XIncludeKeywords.Equals(name, _keywords.Lang) && + XIncludeKeywords.Equals(namespaceURI, _keywords.XmlNamespace)) + return _reader.XmlLang; + } + return _reader.GetAttribute(name, namespaceURI); } /// <summary>See <see cref="XmlReader.IsEmptyElement"/></summary> @@ -457,41 +448,41 @@ /// <summary>See <see cref="XmlReader.MoveToAttribute"/></summary> public override bool MoveToAttribute(string name) { - if (_topLevel && - XIncludeKeywords.Equals(name, _keywords.XmlBase)) - { - _state = XIncludingReaderState.ExposingXmlBaseAttr; - return true; - } - else if (_topLevel && - XIncludeKeywords.Equals(name, _keywords.XmlLang)) + if (_topLevel) { - _state = XIncludingReaderState.ExposingXmlLangAttr; - return true; + if (XIncludeKeywords.Equals(name, _keywords.XmlBase)) + { + _state = XIncludingReaderState.ExposingXmlBaseAttr; + return true; + } + else if (XIncludeKeywords.Equals(name, _keywords.XmlLang)) + { + _state = XIncludingReaderState.ExposingXmlLangAttr; + return true; + } } - else - return _reader.MoveToAttribute(name); + return _reader.MoveToAttribute(name); } /// <summary>See <see cref="XmlReader.MoveToAttribute"/></summary> public override bool MoveToAttribute(string name, string ns) { - if (_topLevel && - XIncludeKeywords.Equals(name, _keywords.Base) && - XIncludeKeywords.Equals(ns, _keywords.XmlNamespace)) - { - _state = XIncludingReaderState.ExposingXmlBaseAttr; - return true; - } - else if (_topLevel && - XIncludeKeywords.Equals(name, _keywords.Lang) && - XIncludeKeywords.Equals(ns, _keywords.XmlNamespace)) + if (_topLevel) { - _state = XIncludingReaderState.ExposingXmlLangAttr; - return true; - } - else - return _reader.MoveToAttribute(name, ns); + if (XIncludeKeywords.Equals(name, _keywords.Base) && + XIncludeKeywords.Equals(ns, _keywords.XmlNamespace)) + { + _state = XIncludingReaderState.ExposingXmlBaseAttr; + return true; + } + else if (XIncludeKeywords.Equals(name, _keywords.Lang) && + XIncludeKeywords.Equals(ns, _keywords.XmlNamespace)) + { + _state = XIncludingReaderState.ExposingXmlLangAttr; + return true; + } + } + return _reader.MoveToAttribute(name, ns); } /// <summary>See <see cref="XmlReader.MoveToElement"/></summary> @@ -524,10 +515,7 @@ } } - else - { - return _reader.MoveToFirstAttribute(); - } + return _reader.MoveToFirstAttribute(); } /// <summary>See <see cref="XmlReader.MoveToNextAttribute"/></summary> @@ -578,10 +566,7 @@ } } - else - { - return _reader.MoveToNextAttribute(); - } + return _reader.MoveToNextAttribute(); } /// <summary>See <see cref="XmlReader.ReadAttributeValue"/></summary> Index: XIncludingReaderState.cs =================================================================== RCS file: /cvsroot/mvp-xml/XInclude/v1/src/XIncludingReaderState.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- XIncludingReaderState.cs 2 Nov 2004 14:31:56 -0000 1.4 +++ XIncludingReaderState.cs 2 Nov 2004 16:49:39 -0000 1.5 @@ -1,6 +1,5 @@ -namespace Mvp.Xml.XInclude { - - //TODO: why not class? +namespace Mvp.Xml.XInclude +{ internal struct FallbackState { //Fallback is being processed @@ -26,5 +25,5 @@ ExposingXmlLangAttr, //xml:lang attribute value is being exposed ExposingXmlLangAttrValue - } + } } |