2009-09-10 2 views
0

Я работаю с некоторыми файлами определения отчетов SQL (RDL), используя LINQ для извлечения операторов запроса компонента для проверки. Я пытаюсь извлечь элементы <DataSet> из-под элемента <DataSets>. Я, кажется, получать зацикливаться с одним из элементов под <DataSet> < Поля > < поля >, который имеет пространство имен Классификатор <-е: TypeName >извлечение данных RDL с использованием LINQ

Я использую LINQ к XML для других частей файлов где нет спецификаторов пространства имен без каких-либо проблем, указав пространство имен по умолчанию. RDL определяет два пространства:

xmlns="http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner"> 


Когда я пытаюсь получить <DataSets> элемент, однако, я получаю следующее сообщение об ошибке:

System.Xml.XmlException - «: ', шестнадцатеричное значение 0x3A, не может быть включено в имя.

Я знаю, что это связано с квалификатором пространства имен (rd :) в одном из дочерних элементов, но мне трудно получить выражение LINQ, которое работает. Любая помощь будет оценена по достоинству. Благодаря!

ответ

1

Вы используете C# или VB.NET? В VB вы можете импортировать пространства имен xml с операторами Imports так же, как вы ссылаетесь на другие пространства имен .NET.

Если вы используете C#, то LINQ to XML - это одно место, которое вы должны рассмотреть, добавив проект VB в свое решение C#.

В любом случае, у Beth Massi есть отличный How Do I Video Series covering LINQ to XML in VB.NET # 8 рассказывает об импорте пространств имен XML.

+0

Спасибо за ответ Деннис. Я видел, что некоторые синтаксические сахара VB имеют для LINQ/XML, и это выглядит хорошо. Я использую C# в основном. Я смог проработать это. Я подозревал, что это связано с пространствами имен, и оказалось, что я не правильно их квалифицировал. Для этого потребовалось немного проб и ошибок. Еще раз спасибо! – BobC