Fixed bug #341150, reported by Michael Romer. In

* xmlschemas.c: Fixed bug #341150, reported by Michael Romer.
  In xmlSchemaBuildContentModelForSubstGroup(),
  xmlAutomataNewOnceTrans2() was incorrectly used instead of
  xmlAutomataNewTransition2() to mimic a xs:choice for
  substitution-groups.
* test/schemas/subst-group-1_1.xsd
  test/schemas/subst-group-1_0.xml
  result/schemas/subst-group-1_0_1
  result/schemas/subst-group-1_0_1.err: Added regression test
  supplied by Michael Romer for bug #341150.
diff --git a/xmlschemas.c b/xmlschemas.c
index 6f8a39e..164191d 100644
--- a/xmlschemas.c
+++ b/xmlschemas.c
@@ -12551,9 +12551,21 @@
 	*/
 	for (i = 0; i < substGroup->members->nbItems; i++) {
 	    member = (xmlSchemaElementPtr) substGroup->members->items[i];
-	    tmp = xmlAutomataNewOnceTrans2(pctxt->am, start, NULL,
-		               member->name, member->targetNamespace,
-			       1, 1, member);
+	    /*
+	    * NOTE: This fixes bug #341150. xmlAutomataNewOnceTrans2()
+	    *  was incorrectly used instead of xmlAutomataNewTransition2()
+	    *  (seems like a copy&paste bug from the XML_SCHEMA_TYPE_ALL
+	    *  section in xmlSchemaBuildAContentModel() ).
+	    * TODO: Check if xmlAutomataNewOnceTrans2() was instead 
+	    *  intended for the above "counter" section originally. I.e.,
+	    *  check xs:all with subst-groups.
+	    *
+	    * tmp = xmlAutomataNewOnceTrans2(pctxt->am, start, NULL,
+	    *	               member->name, member->targetNamespace,
+	    *		       1, 1, member);
+	    */
+	    tmp = xmlAutomataNewTransition2(pctxt->am, start, NULL,
+		member->name, member->targetNamespace, member);	    
 	    xmlAutomataNewEpsilon(pctxt->am, tmp, end);
 	}
     } else {