"Элемент отсутствует.." пытается создать класс с помощью <element ref = />

Используя инструмент XSD, включенный в VS 2013, я получаю следующее сообщение о попытке создать класс из xsd, который содержит <xsd:element ref=.../> -

Предупреждение о проверке схемы: элемент ' http://www.w3.org/2000/09/xmldsig' не объявлен. Строка 14, позиция 8.

Предупреждение: схема не может быть проверена. Генерация классов может дать сбой или может привести к неверным результатам.

Ошибка: Ошибка генерации классов для схемы "тест". - Элемент " http://www.w3.org/2000/09/xmldsig" отсутствует.

Это сокращенный xsd, который демонстрирует проблему:

<?xml version="1.0" encoding="utf-8"?>
<xsd:schema id="test"
    targetNamespace="http://tempuri.org/test.xsd"
    elementFormDefault="qualified"
    xmlns="http://tempuri.org/test.xsd"
    xmlns:mstns="http://tempuri.org/test.xsd"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:sig="http://www.w3.org/2000/09/xmldsig#"
>
  <xsd:import schemaLocation="xmldsig-core-schema.xsd" namespace="http://www.w3.org/2000/09/xmldsig#" />

  <xsd:complexType name="test" >
    <xsd:sequence >
      <xsd:element ref="sig:Signature" minOccurs="0" maxOccurs="unbounded"></xsd:element>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:element type="test" name="top"/>
</xsd:schema>

Я уверен, что с импортом и пространствами имен все в порядке. Решарпер и VS Schema Designer не жалуются. Я подозреваю, что это то, что инструмент просто не делает.

Есть идеи, как мне поступить?

1 ответ

Решение

Оказывается, на это уже здесь ответили.

/questions/42307250/generatsiya-klassov-c-iz-xsd/42307268#42307268

Мне нужно добавить импортированный файл в список файлов параметров командной строки xsd:

xsd test.xsd xmldsig-core-schema.xsd /c

Другие вопросы по тегам