Я хочу реализовать intellisense в редакторе xml, используя XmlSchemaValidator.
Пользователь вводит «<», и я хочу предложить разрешенные элементы на основе файла XSD.
Для этого мне нужно проверить типизированный XML-контент, который, конечно, не завершен.
Пример: </p>
<element1 atb="1">
<element2>
< ==> suggest element3
Таким образом, валидатору нужно проверить element1, atb и element2. Тогда я могу использовать validator.GetExpectedParticles.
Так как я не хочу анализировать контент для себя, я хочу использовать XmlReader. Но XmlReader не может сказать мне, когда он в EOF (просто предоставив ему строку xml без последнего «<» в образце). </p>
string s = "<element1 atb='1'><element2>";
StringReader sr = new StringReader(s);
XmlReader xr = XmlReader.Create(sr);
while (!xr.EOF)
{
xr.Read();
// ... validate element, attributes ... //
}
Моя проблема в том, что xr.EOF () никогда не возвращает true, поэтому я не могу знать, когда прекратить чтение и проверку.
Есть идеи?
Спасибо