From: Oleg T. <he...@us...> - 2004-10-18 19:31:34
|
Update of /cvsroot/mvp-xml/XInclude/v1/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9039/v1/src Modified Files: XIncludingReader.cs Log Message: Working on xml:lang. Index: XIncludingReader.cs =================================================================== RCS file: /cvsroot/mvp-xml/XInclude/v1/src/XIncludingReader.cs,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- XIncludingReader.cs 18 Oct 2004 18:19:21 -0000 1.10 +++ XIncludingReader.cs 18 Oct 2004 19:31:24 -0000 1.11 @@ -146,9 +146,10 @@ { get { - if (_topLevel && - _reader.GetAttribute(_keywords.Base, _keywords.XmlNamespace)==null) - return _reader.AttributeCount+1; + if (_topLevel) + return _reader.AttributeCount + + _reader.GetAttribute(_keywords.XmlBase)==null?1:0 + + _reader.GetAttribute(_keywords.XmlLang)==null?1:0; else return _reader.AttributeCount; } @@ -167,6 +168,8 @@ { case XIncludingReaderState.ExposingXmlBaseAttr: case XIncludingReaderState.ExposingXmlBaseAttrValue: + case XIncludingReaderState.ExposingXmlLangAttr: + case XIncludingReaderState.ExposingXmlLangAttrValue: return true; default: return _reader.HasValue; @@ -182,7 +185,9 @@ { case XIncludingReaderState.ExposingXmlBaseAttr: case XIncludingReaderState.ExposingXmlBaseAttrValue: - //TODO: May be wrong if xml:base exists and it does default + case XIncludingReaderState.ExposingXmlLangAttr: + case XIncludingReaderState.ExposingXmlLangAttrValue: + //TODO: May be wrong if xml:base or xml:lang exist and it does default return false; default: return _reader.IsDefault; @@ -199,7 +204,10 @@ case XIncludingReaderState.ExposingXmlBaseAttr: return _keywords.XmlBase; case XIncludingReaderState.ExposingXmlBaseAttrValue: + case XIncludingReaderState.ExposingXmlLangAttrValue: return String.Empty; + case XIncludingReaderState.ExposingXmlLangAttr: + return _keywords.XmlLang; default: return _reader.Name; } @@ -215,7 +223,10 @@ case XIncludingReaderState.ExposingXmlBaseAttr: return _keywords.Base; case XIncludingReaderState.ExposingXmlBaseAttrValue: + case XIncludingReaderState.ExposingXmlLangAttrValue: return String.Empty; + case XIncludingReaderState.ExposingXmlLangAttr: + return _keywords.Lang; default: return _reader.LocalName; } @@ -229,8 +240,10 @@ switch (_state) { case XIncludingReaderState.ExposingXmlBaseAttr: + case XIncludingReaderState.ExposingXmlLangAttr: return _keywords.XmlNamespace; case XIncludingReaderState.ExposingXmlBaseAttrValue: + case XIncludingReaderState.ExposingXmlLangAttrValue: return String.Empty; default: return _reader.NamespaceURI; @@ -250,8 +263,10 @@ switch (_state) { case XIncludingReaderState.ExposingXmlBaseAttr: + case XIncludingReaderState.ExposingXmlLangAttr: return XmlNodeType.Attribute; case XIncludingReaderState.ExposingXmlBaseAttrValue: + case XIncludingReaderState.ExposingXmlLangAttrValue: return XmlNodeType.Text; default: return _reader.NodeType; @@ -266,8 +281,10 @@ switch (_state) { case XIncludingReaderState.ExposingXmlBaseAttr: + case XIncludingReaderState.ExposingXmlLangAttr: return _keywords.Xml; case XIncludingReaderState.ExposingXmlBaseAttrValue: + case XIncludingReaderState.ExposingXmlLangAttrValue: return String.Empty; default: return _reader.Prefix; @@ -282,6 +299,7 @@ switch (_state) { case XIncludingReaderState.ExposingXmlBaseAttr: + case XIncludingReaderState.ExposingXmlLangAttr: return '"'; default: return _reader.QuoteChar; @@ -320,6 +338,9 @@ 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); } @@ -330,6 +351,10 @@ 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); } @@ -356,7 +381,13 @@ { _state = XIncludingReaderState.ExposingXmlBaseAttr; return true; - } + } + else if (_topLevel && + XIncludeKeywords.Equals(name, _keywords.XmlLang)) + { + _state = XIncludingReaderState.ExposingXmlLangAttr; + return true; + } else return _reader.MoveToAttribute(name); } @@ -370,6 +401,13 @@ _state = XIncludingReaderState.ExposingXmlBaseAttr; return true; } + else if (_topLevel && + XIncludeKeywords.Equals(name, _keywords.Lang) && + XIncludeKeywords.Equals(ns, _keywords.XmlNamespace)) + { + _state = XIncludingReaderState.ExposingXmlLangAttr; + return true; + } else return _reader.MoveToAttribute(name, ns); } |