У меня есть следующий код, который я хочу использовать для выбора всех необходимых мне элементов в определенной последовательности. Вот фрагмент:
XmlDocument schema = new XmlDocument();
schema.Load(SchemaFileName);
XmlNamespaceManager xnm = new XmlNamespaceManager(schema.NameTable);
xnm.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema");
XmlNodeList list = schema.SelectNodes(Path);
Однако я не уверен, что я должен написать как путь. В идеале я хочу выбрать все дочерние узлы тега «sequence», но когда я устанавливаю Path в «sequence», это не дает мне ничего, когда я его запускаю. Список узлов просто пуст. То, что я пытаюсь сделать, это получить имена элементов, которые мне понадобятся (по порядку) для проверки XML-файла.
Кроме того, когда я устанавливаю Path как "// @ name", я, тем не менее, получаю что-то, что выбирает все элементы с "name" в качестве атрибута. Те, которые я хочу, специально после тега sequence.
Я также пытался установить путь как «xs: sequence», но это выдает мне ошибку: «Требуется менеджер пространства имен или XsltContext. Этот запрос имеет префикс, переменную или пользовательскую функцию». Что странно, потому что я думал, что уже настроил это ...
Любая помощь приветствуется! Спасибо! Если вам нужна дополнительная информация, я с радостью ее предоставлю.
С уважением,
tf.rz
РЕДАКТИРОВАТЬ: я использую
Visual Studio C # 2008.
.NET 3.5 SP1
Основная предпосылка связана с другим вопросом, который я разместил относительно переупорядочения столбцов с данными. Но чтобы сократить объяснение. Мне нужно только сказать, что мне просто нужны имена элементов, которые будут проверены схемой xsd (в правильном порядке). У меня есть несколько схем xsd, каждая из которых соответствует одному и тому же «формату» и представляет собой очень и очень статичные файлы. Таким образом, я знаю, что могу смело искать тег последовательности и получать все его дочерние узлы. Хотя Майкл упомянул, что существует множество способов написания схемы, все схемы, с которыми я работаю, похожи и статичны в этом отношении, поэтому, если я смогу это сделать, это будет работать 100% времени. =) * * 1 018