private void Join(ArrayList terminalNodes, BitSet lset, NamespaceList lany, BitSet rset, NamespaceList rany, out BitSet set, out NamespaceList any) { if (lset != null) { if (rset != null) { set = lset.Clone(); set.And(rset); if (!set.IsEmpty) { goto error; } set.Or(lset); set.Or(rset); } else { set = lset; } } else { set = rset; } if (lany != null) { if (rany != null) { NamespaceList list = NamespaceList.Intersection(rany, lany); if (list == null || list.IsEmpty()) { any = NamespaceList.Union(rany, lany); } else { goto error; } } else { any = lany; } } else { any = rany; } if (any != null && set != null) { for (int i = 0; i < set.Count; i++) { if (set.Get(i) && any.Allows(((TerminalNode)terminalNodes[i]).Name)) { goto error; } } } return; error: throw new XmlSchemaException(Res.Sch_NonDeterministicAny); }