OptimizedParticle = OptimizedParticle.GetOptimizedParticle (isTop);
if (OptimizedParticle != XmlSchemaParticle.Empty && (ValidatedMinOccurs != 1 || ValidatedMaxOccurs != 1)) {
OptimizedParticle = OptimizedParticle.GetShallowClone ();
+ OptimizedParticle.OptimizedParticle = null;
OptimizedParticle.MinOccurs = this.MinOccurs;
OptimizedParticle.MaxOccurs = this.MaxOccurs;
OptimizedParticle.CompileOccurence (null, null);
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
}\r
}\r