From: Oleg T. <he...@us...> - 2004-10-11 20:57:05
|
Update of /cvsroot/mvp-xml/XPointer/v1/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30026/v1/src Modified Files: XPointer.csproj XPointerReader.cs Log Message: Added support for schema-determined IDs. Index: XPointer.csproj =================================================================== RCS file: /cvsroot/mvp-xml/XPointer/v1/src/XPointer.csproj,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- XPointer.csproj 9 Oct 2004 19:52:19 -0000 1.3 +++ XPointer.csproj 11 Oct 2004 20:56:47 -0000 1.4 @@ -98,6 +98,11 @@ BuildAction = "Compile" /> <File + RelPath = "IDAssuredValidatingReader.cs" + SubType = "Code" + BuildAction = "Compile" + /> + <File RelPath = "LexUtils.cs" SubType = "Code" BuildAction = "Compile" Index: XPointerReader.cs =================================================================== RCS file: /cvsroot/mvp-xml/XPointer/v1/src/XPointerReader.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- XPointerReader.cs 9 Oct 2004 19:52:19 -0000 1.2 +++ XPointerReader.cs 11 Oct 2004 20:56:47 -0000 1.3 @@ -24,7 +24,7 @@ //Underlying reader private XmlReader _reader; - private XPathNodeIterator _pointedNodes; + private XPathNodeIterator _pointedNodes; /// <summary> /// Initializes the <c>XPointerReader</c>. @@ -44,8 +44,7 @@ //do nothing } - - #endregion + #endregion #region constructors @@ -65,19 +64,52 @@ : this (new XmlTextReader(uri.AbsoluteUri, stream, nt), xpointer) {} /// <summary> + /// Creates <c>XPointerReader</c> instance with given uri, stream, nametable and xpointer. + /// Additionally sets a flag whether to support schema-determined IDs. + /// </summary> + public XPointerReader(Uri uri, Stream stream, XmlNameTable nt, string xpointer, + bool supportSchemaDeterminedIDs) + : this (new XmlTextReader(uri.AbsoluteUri, stream, nt), xpointer, supportSchemaDeterminedIDs) {} + + /// <summary> /// Creates <c>XPointerReader</c> instance with given uri, stream and xpointer. /// </summary> public XPointerReader(Uri uri, Stream stream, string xpointer) : this (uri, stream, new NameTable(), xpointer) {} + + /// <summary> + /// Creates <c>XPointerReader</c> instance with given uri, stream and xpointer. + /// Additionally sets a flag whether to support schema-determined IDs. + /// </summary> + public XPointerReader(Uri uri, Stream stream, string xpointer, + bool supportSchemaDeterminedIDs) + : this (uri, stream, new NameTable(), xpointer, supportSchemaDeterminedIDs) {} + + /// <summary> + /// Creates <c>XPointerReader</c> instance with given XmlReader and xpointer. + /// Additionally sets a flag whether to support schema-determined IDs. + /// </summary> + public XPointerReader(XmlReader reader, string xpointer) + : this (reader, xpointer, false) {} /// <summary> /// Creates <c>XPointerReader</c> instance with given XmlReader and xpointer. + /// Additionally sets a flag whether to support schema-determined IDs. /// </summary> - public XPointerReader(XmlReader reader, string xpointer) + public XPointerReader(XmlReader reader, string xpointer, bool supportSchemaDeterminedIDs) { - XmlValidatingReader vr = new XmlValidatingReader(reader); + XmlValidatingReader vr = null; + if (supportSchemaDeterminedIDs) + { + vr = new IdAssuredValidatingReader(reader); + vr.ValidationType = ValidationType.Auto; + } + else + { + vr = new XmlValidatingReader(reader); + vr.ValidationType = ValidationType.None; + } vr.EntityHandling = EntityHandling.ExpandEntities; - vr.ValidationType = ValidationType.None; vr.ValidationEventHandler += new System.Xml.Schema.ValidationEventHandler(ValidationCallback); XPathDocument doc = new XPathDocument(vr, XmlSpace.Preserve); Init(doc, xpointer); |