Linq To XSD во время выполнения

2

Я пытаюсь получить представление объекта .NET некоторого XSD (элемента) во время выполнения.

Как я могу использовать Linq для XSD для выполнения во время выполнения в отличие от времени разработки?

Спасибо, --Ran.

  • 0
    Между XSD и Xml.Linq нет связи. Что заставляет вас думать, что есть даже во время разработки?
  • 0
    Этот блог, например: weblogs.asp.net/fmarguerie/archive/2007/01/15/…
Показать ещё 3 комментария
Теги:
linq
xsd
linq-to-xml

1 ответ

1

Я использую его в нескольких проектах.

Вы должны добавить его в качестве цели, вручную отредактировав файл проекта. Я согласен с некоторыми комментариями, что информации мало.

сначала вам нужно ссылаться на dll в ссылках на проект

второй вам нужно "выгрузить" проект (щелкните правой кнопкой мыши файл проекта)

затем отредактируйте файл проекта (щелкните правой кнопкой мыши еще раз)

добавить в файл проекта xml

следующее:
</PropertyGroup> // End of other property groups
<PropertyGroup>
    <TXLINQBinDir Condition="'$(TXLINQBinDir)' == ''">$(ProgramFiles)\LINQ to XSD Preview\Bin</TXLINQBinDir>
</PropertyGroup>
<ItemGroup>
    <Reference Include="Microsoft.Xml.Schema.Linq, Version=0.10.1000.0, Culture=neutral, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\..\..\..\Program Files\LINQ to XSD Preview\Bin\Microsoft.Xml.Schema.Linq.DLL</HintPath>
    </Reference>
<Reference Include="XOTask, Version=0.10.1000.0, Culture=neutral, processorArchitecture=MSIL">
    <SpecificVersion>False</SpecificVersion>
    <HintPath>..\..\..\..\Program Files\LINQ to XSD Preview\Bin\XOTask.dll</HintPath>
</Reference>
<Reference> // Other references 

<ItemGroup>
// Other item groups
</ItemGroup>
<ItemGroup>
    <LinqToXsdSchema Include="Schema\YourSchema.xsd" />
</ItemGroup>

<Import Project="$(TXLINQBinDir)\LinqToXsd.targets" />

Вероятно, вы можете заменить.... \nonsense ссылкой $(ProgramFiles), но я ее не тестировал. Также вы можете опустить часть ItemGroup, если перейти к свойствам файла xsd, одним из действий сборки должно быть "LinqToXsdSchema" (только после установки LinqToXsd.targets).

Теперь вы можете использовать свой xsd файл как полностью заполненный объект, используя метод Parse

Мой корневой элемент Xsd

 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <xs:element name="AlertData">
      </xs:element>

Итак, в коде я могу получить доступ к нему, как это

// Parse the xml doc as my LinqToXsd object    
AlertData XmlSource = AlertData.Parse(xmlSource.ToString());

// Start accessing xelements
XmlSource.waalert.waa_alert

Ещё вопросы

Сообщество Overcoder
Наверх
Меню