Можно ли создать xsd, который поддерживает родительский узел и дочерний узел с одинаковыми именами? - PullRequest
1 голос
/ 30 июля 2010

Поэтому, прежде чем кто-нибудь скажет мне, что я не должен этого делать, я полностью согласен. Однако у меня есть xml DataFeed, поступающий от третьей стороны. Я уже обращаюсь к ним, чтобы посмотреть, смогут ли они это изменить, но я решил, что лучше атаковать его с обеих сторон.

Теги-нарушители в XML:

    <Tags>
      <TagDimension id="Topic">
        <ExternalId>Topic</ExternalId>
        <Tags>
          <Tag>
            <Label>awesome</Label>
          </Tag>
        </Tags>
      </TagDimension>
    </Tags>

Я ни в коем случае не одаренный XML / XSD. Мои навыки заключаются в запуске xsd.exe из командной строки VS, который принес мне:

C: \ temp> xsd sample.xml Утилита поддержки Microsoft (R) Xml Schemas / DataTypes [Microsoft (R) .NET Framework, версия 2.0.50727.3038] Авторское право (C) Microsoft Corporation. Все права защищены. Ошибка. Произошла ошибка при обработке файла sample.xml. - Таблица (Теги) не может быть дочерней таблицей к себе во вложенных отношениях.

Какой лучший способ справиться с этим?

1 Ответ

1 голос
/ 30 июля 2010

Ну, я нашел «путь», хотя я не уверен, что это хороший путь.Похоже, что XSD-файл не имеет проблем с рекурсивно названными узлами.Это просто инструмент xsd.exe.Я переименовал внутренний <Tag> узел в <Tag2>, что позволило мне сгенерировать файл xsd.Затем я открыл xsd в Visual Studio и переименовал его обратно в <Tag>.

Похоже, это скорее результат моей зависимости от инструментов и отсутствия знаний о XSD / XML, но мне бы это понравилосьесли бы кто-то более знающий вмешался бы в это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...