Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by [EMAIL PROTECTED]

http://bugzilla.ximian.com/show_bug.cgi?id=77685

--- shadow/77685        2006-03-01 14:09:12.000000000 -0500
+++ shadow/77685.tmp.12294      2006-03-01 14:09:12.000000000 -0500
@@ -0,0 +1,123 @@
+Bug#: 77685
+Product: Mono: Class Libraries
+Version: 1.1
+OS: All
+OS Details: 
+Status: NEW   
+Resolution: 
+Severity: 
+Priority: Minor
+Component: Sys.XML
+AssignedTo: [EMAIL PROTECTED]                            
+ReportedBy: [EMAIL PROTECTED]               
+QAContact: [EMAIL PROTECTED]
+TargetMilestone: ---
+URL: 
+Cc: 
+Summary: XmlSchemaAnnotation.Markup returns null when the xs:documentation 
schema element is an empty element
+
+Description of Problem:
+
+The XmlSchemaAnnotation.Markup property returns null when the
+xs:documentation schema element is an empty element.  The Microsoft .NET
+frameworks 1.1 and 2.0 return an empty XmlNode array not null.
+
+An example schema:
+
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";
+    elementFormDefault="qualified"
+    targetNamespace="http://go-mono.com/tests";>
+    <xs:element name="choice">
+        <xs:annotation>
+        <xs:documentation 
+            source="http://go-mono.com/tests/docs/#element-choice"/>
+        </xs:annotation>
+    </xs:element>
+</xs:schema>
+
+
+
+Steps to reproduce the problem:
+
+
+using NUnit.Framework;
+using System;
+using System.Collections;
+using System.IO;
+using System.Xml;
+using System.Xml.Schema;
+
+namespace XmlSchemaTests
+{
+       /// <summary>
+       /// Tests that the XmlSchemaAnnotation.Markup is not null when a schema 
has
+       /// annotation, but the documentation element is an empty element.  
+       /// Under .NET 1.1 and .NET 2.0 this test passes, but under Mono 1.1 the
+markup 
+       /// is null.
+       /// </summary>
+       [TestFixture]
+       public class SchemaAnnotationTestFixture
+       {
+               const string namespaceUri = "http://go-mono.com/tests";;
+               XmlNode[] markupNodes;
+               
+               [SetUp]
+               public void Init()
+               {
+                       StringReader sr = new StringReader(GetSchemaXml());
+                       XmlTextReader tr = new XmlTextReader(sr);
+
+                       XmlSchema schema = XmlSchema.Read(tr, new
+ValidationEventHandler(SchemaValidation));
+                       schema.Compile(new 
ValidationEventHandler(SchemaValidation));
+                       tr.Close();
+                       
+                       XmlQualifiedName name = new XmlQualifiedName("choice", 
namespaceUri);
+                       XmlSchemaElement element = FindElement(schema, name);
+                       XmlSchemaAnnotation annotation = element.Annotation;
+                       XmlSchemaDocumentation doc = annotation.Items[0] as 
XmlSchemaDocumentation;
+                       markupNodes = doc.Markup;
+               }
+               
+               [Test]
+               public void MarkupIsNotNull()
+               {
+                       Assert.IsNotNull(markupNodes);
+               }
+               
+               /// <summary>
+               /// Finds an element in the XmlSchema.Elements.Values that 
matches the
+specified
+               /// name.
+               /// </summary>
+               static XmlSchemaElement FindElement(XmlSchema schema, 
XmlQualifiedName name)
+               {
+                       foreach (XmlSchemaElement element in 
schema.Elements.Values) {
+                               if (name == element.QualifiedName) {
+                                       return element;
+                               }
+                       }
+                       return null;
+               }       
+               
+               string GetSchemaXml()
+               {
+                       return "<xs:schema 
xmlns:xs=\"http://www.w3.org/2001/XMLSchema\";
+elementFormDefault=\"qualified\"
+targetNamespace=\"http://go-mono.com/tests\";>\r\n" +
+                                       "\t<xs:element name=\"choice\">\r\n" +
+                                       "\t\t<xs:annotation>\r\n" +
+                                       "\t\t\t<xs:documentation
+source=\"http://go-mono.com/tests/docs/#element-choice\"/>\r\n" +
+                                       "\t\t</xs:annotation>\r\n" +
+                                       "\t</xs:element>\r\n" +
+                                       "</xs:schema>";
+               }
+               
+               void SchemaValidation(object source, ValidationEventArgs e)
+               {
+                       // Do nothing.
+               }
+       }
+}
_______________________________________________
mono-bugs maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-bugs

Reply via email to