Don't add IDREFs to set of missing IDs multiple times
[mono.git] / mcs / class / System.XML / Mono.Xml.Schema / XsdValidatingReader.cs
index f6ae29c20da7cba7df7bfc9264cec8a1ee4931f2..8eea3d30a2aa07cfed6f729da274dd2dc59f5487 100644 (file)
@@ -1809,14 +1809,14 @@ namespace Mono.Xml.Schema
                                        MissingIDReferences.Remove (str);
                                break;
                        case XmlTokenizedType.IDREF:
-                               if (!idList.Contains (str))
+                               if (!idList.Contains (str) && !MissingIDReferences.Contains (str))
                                        MissingIDReferences.Add (str);
                                break;
                        case XmlTokenizedType.IDREFS:
                                string [] idrefs = (string []) parsedValue;
                                for (int i = 0; i < idrefs.Length; i++) {
                                        string id = idrefs [i];
-                                       if (!idList.Contains (id))
+                                       if (!idList.Contains (id) && !MissingIDReferences.Contains (str))
                                                MissingIDReferences.Add (id);
                                }
                                break;