Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAtsushi Eno <atsushieno@gmail.com>2009-01-22 16:40:32 +0300
committerAtsushi Eno <atsushieno@gmail.com>2009-01-22 16:40:32 +0300
commit00fb04d6fdd35b7385cbdbbc206e5a055ad39bf3 (patch)
tree003fefb42b225c616f61cd179473ab4416ffef34
parentcd94cd2e94681f3a28b0219bc29a7a1f7c4a4163 (diff)
2009-01-22 Atsushi Enomoto <atsushi@ximian.com>
* XmlXapResolver.cs : new in 2.1. * XmlReaderSettings.cs : use above. * net_2_1_raw_System.Xml.dll.sources: added XmlXapResolver.cs. svn path=/trunk/mcs/; revision=124198
-rw-r--r--mcs/class/System.XML/ChangeLog4
-rw-r--r--mcs/class/System.XML/System.Xml/ChangeLog5
-rw-r--r--mcs/class/System.XML/System.Xml/XmlReaderSettings.cs6
-rw-r--r--mcs/class/System.XML/System.Xml/XmlXapResolver.cs56
-rw-r--r--mcs/class/System.XML/net_2_1_raw_System.Xml.dll.sources1
5 files changed, 70 insertions, 2 deletions
diff --git a/mcs/class/System.XML/ChangeLog b/mcs/class/System.XML/ChangeLog
index 7da1de9ac27..c53f59bc455 100644
--- a/mcs/class/System.XML/ChangeLog
+++ b/mcs/class/System.XML/ChangeLog
@@ -1,3 +1,7 @@
+2009-01-22 Atsushi Enomoto <atsushi@ximian.com>
+
+ * net_2_1_raw_System.Xml.dll.sources: added XmlXapResolver.cs.
+
2009-01-14 Sebastien Pouliot <sebastien@ximian.com>
* net_2_1_raw_System.Xml.dll.sources: Add NamespaceHandling
diff --git a/mcs/class/System.XML/System.Xml/ChangeLog b/mcs/class/System.XML/System.Xml/ChangeLog
index 3807976d01f..35e71177490 100644
--- a/mcs/class/System.XML/System.Xml/ChangeLog
+++ b/mcs/class/System.XML/System.Xml/ChangeLog
@@ -1,3 +1,8 @@
+2009-01-22 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlXapResolver.cs : new in 2.1.
+ * XmlReaderSettings.cs : use above.
+
2009-01-20 Atsushi Enomoto <atsushi@ximian.com>
* XmlDocumentNavigator.cs : in some corner cases an attribute
diff --git a/mcs/class/System.XML/System.Xml/XmlReaderSettings.cs b/mcs/class/System.XML/System.Xml/XmlReaderSettings.cs
index a24c85b28bb..98009c57125 100644
--- a/mcs/class/System.XML/System.Xml/XmlReaderSettings.cs
+++ b/mcs/class/System.XML/System.Xml/XmlReaderSettings.cs
@@ -90,15 +90,17 @@ namespace System.Xml
lineNumberOffset = 0;
linePositionOffset = 0;
prohibitDtd = true;
-#if !NET_2_1
+#if NET_2_1
+ xmlResolver = new XmlXapResolver ();
+#else
schemas = null;
schemasNeedsInitialization = true;
validationFlags =
XsValidationFlags.ProcessIdentityConstraints |
XsValidationFlags.AllowXmlAttributes;
validationType = ValidationType.None;
-#endif
xmlResolver = new XmlUrlResolver ();
+#endif
}
public bool CheckCharacters {
diff --git a/mcs/class/System.XML/System.Xml/XmlXapResolver.cs b/mcs/class/System.XML/System.Xml/XmlXapResolver.cs
new file mode 100644
index 00000000000..7b7527bcc78
--- /dev/null
+++ b/mcs/class/System.XML/System.Xml/XmlXapResolver.cs
@@ -0,0 +1,56 @@
+//
+// XmlXapResolver.cs
+//
+// Author:
+// Atsushi Enomoto (atsushi@ximian.com)
+//
+// (C) 2009 Novell Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System.IO;
+using System.Net;
+using System.Reflection;
+
+namespace System.Xml
+{
+ public class XmlXapResolver : XmlResolver
+ {
+ static readonly MethodInfo method = Type.GetType ("System.Windows.Application, System.Windows.dll").GetMethod ("GetResourceStream", new Type [0]);
+ static readonly PropertyInfo property = Type.GetType ("System.Windows.Resources, System.Windows.dll").GetProperty ("Stream");
+
+ // FIXME: remove this compromised part when this class got working
+ XmlUrlResolver url_resolver = new XmlUrlResolver ();
+
+ public override object GetEntity (Uri absoluteUri, string role, Type ofObjectToReturn)
+ {
+ try {
+ if (ofObjectToReturn != typeof (Stream))
+ throw new NotSupportedException (String.Format ("Not supported entity type '{0}'", ofObjectToReturn));
+ return property.GetValue (method.Invoke (null, new object [] {absoluteUri}), new object [0]);
+ } catch {
+ return url_resolver.GetEntity (absoluteUri, role, ofObjectToReturn);
+ }
+ }
+ }
+}
diff --git a/mcs/class/System.XML/net_2_1_raw_System.Xml.dll.sources b/mcs/class/System.XML/net_2_1_raw_System.Xml.dll.sources
index c76bed60983..ca414e0ec27 100644
--- a/mcs/class/System.XML/net_2_1_raw_System.Xml.dll.sources
+++ b/mcs/class/System.XML/net_2_1_raw_System.Xml.dll.sources
@@ -58,6 +58,7 @@ System.Xml/XmlTokenizedType.cs
System.Xml/XmlUrlResolver.cs
System.Xml/XmlWriter.cs
System.Xml/XmlWriterSettings.cs
+System.Xml/XmlXapResolver.cs
System.Xml.Schema/XmlSchemaDatatype_2_1.cs
System.Xml.Schema/XmlSchema_2_1.cs
System.Xml.Schema/XmlSchemaObject_2_1.cs