+\r
+#if NET_2_0 \r
+ [Test] \r
+ public void Bug501814 ()\r
+ {\r
+ string xsd = @"\r
+ <xs:schema id='Layout'\r
+ targetNamespace='foo'\r
+ elementFormDefault='qualified'\r
+ xmlns='foo' \r
+ xmlns:xs='http://www.w3.org/2001/XMLSchema'>\r
+\r
+ <xs:element name='Layout' type='Layout' />\r
+\r
+ <xs:complexType name='Layout'>\r
+ <xs:group ref='AnyLayoutElement' minOccurs='0' maxOccurs='unbounded' />\r
+ </xs:complexType>\r
+\r
+ <xs:group name='AnyLayoutElement'>\r
+ <xs:choice> \r
+ <xs:element name='Label' type='Label' /> \r
+ </xs:choice>\r
+ </xs:group>\r
+ \r
+ <xs:complexType name='LayoutElement' abstract='true'>\r
+ <xs:attribute name='id' type='xs:ID' use='optional' />\r
+ <xs:attribute name='visible' type='xs:boolean' use='optional' default='true' />\r
+ </xs:complexType>\r
+ \r
+ <xs:complexType name='Label'>\r
+ <xs:complexContent mixed='true'>\r
+ <xs:extension base='LayoutElement'>\r
+ <xs:attribute name='bold' type='xs:boolean' use='required'/>\r
+ </xs:extension>\r
+ </xs:complexContent>\r
+ </xs:complexType>\r
+ </xs:schema>";\r
+ \r
+ XmlDocument doc = new XmlDocument ();\r
+ \r
+ XmlSchema schema = XmlSchema.Read (XmlReader.Create (new StringReader (xsd)), null); \r
+ \r
+ doc.LoadXml (@"\r
+ <Layout xmlns='foo'>\r
+ <Label bold='false'>Text inside label</Label>\r
+ </Layout>");\r
+ doc.Schemas.Add (schema);\r
+ doc.Validate (null);\r
+ }\r
+#endif\r
+ \r
+#if NET_2_0\r
+ [Test] \r
+ public void Bug502168 ()\r
+ {\r
+ string xsd = @"<xs:schema id='Layout'\r
+ targetNamespace='foo'\r
+ elementFormDefault='qualified'\r
+ xmlns='foo' \r
+ xmlns:xs='http://www.w3.org/2001/XMLSchema'>\r
+\r
+ <xs:element name='Layout' type='Layout' />\r
+ \r
+ <xs:complexType name='Layout'>\r
+ <xs:group ref='AnyLayoutElement' minOccurs='0' maxOccurs='unbounded' />\r
+ </xs:complexType>\r
+ \r
+ <xs:group name='AnyLayoutElement'>\r
+ <xs:choice>\r
+ <xs:element name='Layout' type='Layout' /> \r
+ <xs:element name='ImageContainer' type='ImageContainer' />\r
+ <xs:element name='VideoInstance' type='VideoInstance'/>\r
+ </xs:choice>\r
+ </xs:group>\r
+ \r
+ <xs:complexType name='ImageDummy'>\r
+ </xs:complexType>\r
+ \r
+ <xs:complexType name='LayoutElement' abstract='true'> \r
+ </xs:complexType>\r
+ \r
+ <xs:group name='AnyImageElement'>\r
+ <xs:choice>\r
+ <xs:element name='ImageDummy' type='ImageDummy' />\r
+ </xs:choice>\r
+ </xs:group>\r
+ \r
+ <xs:complexType name='ImageContainer'>\r
+ <xs:complexContent>\r
+ <xs:extension base='LayoutElement'>\r
+ <xs:choice minOccurs='1' maxOccurs='1'>\r
+ <xs:element name='Content' type='SingleImage' minOccurs='1' maxOccurs='1'\r
+ nillable='false'/>\r
+ </xs:choice> \r
+ </xs:extension>\r
+ </xs:complexContent>\r
+ </xs:complexType>\r
+ \r
+ <xs:complexType name='SingleImage'>\r
+ <xs:group ref='AnyImageElement' minOccurs='1' maxOccurs='1'/>\r
+ </xs:complexType>\r
+ \r
+ <xs:complexType name='VideoApplicationFile'>\r
+ <xs:complexContent>\r
+ <xs:extension base='VideoInstance'>\r
+ <xs:attribute name='fileName' type='xs:string' use='optional'/>\r
+ </xs:extension>\r
+ </xs:complexContent>\r
+ </xs:complexType>\r
+ \r
+ <xs:complexType abstract='true' name='Video'>\r
+ <xs:complexContent>\r
+ <xs:extension base='LayoutElement'>\r
+ <xs:group ref='AnyImageElement' minOccurs='0' maxOccurs='1'/> \r
+ </xs:extension>\r
+ </xs:complexContent>\r
+ </xs:complexType>\r
+ \r
+ <xs:complexType abstract='true' name='VideoInstance'>\r
+ <xs:complexContent>\r
+ <xs:extension base='Video'>\r
+ <xs:attribute name='name' type='xs:string' use='optional'/>\r
+ </xs:extension>\r
+ </xs:complexContent>\r
+ </xs:complexType>\r
+ </xs:schema>";\r
+\r
+\r
+ XmlDocument doc = new XmlDocument ();\r
+ XmlSchema schema = XmlSchema.Read (XmlReader.Create (new StringReader (xsd)), null);\r
+ doc.LoadXml (@"<Layout xmlns='foo' />");\r
+ doc.Schemas.Add(schema);\r
+ doc.Validate(null);\r
+ }\r
+#endif \r