Когда я должен использовать XML-схемы (.xsd) при чтении XML? - PullRequest
3 голосов
/ 27 мая 2009

У меня есть файл XML, в котором хранятся данные конфигурации для источников данных, а соответствующие запросы хранятся в элементах 'dataseries'.

Поскольку мне на самом деле не нужны доменные объекты, составленные из XML, а просто считываемые настройки и используемые для настройки соединений и т. Д. Мне было интересно, есть ли какое-либо преимущество в использовании определенной мной схемы XML?

Я использую LINQ to XML для чтения своего XML и изначально думал, что было бы неплохо использовать строго типизированный XML.

Должен ли я использовать .xsd или это перебор?

Макет XML-файла:

 <?xml version="1.0" encoding="utf-8" ?>
<datasource name=" Datasource" cache="true">
  <database>
    <connection>
      <provider-name>sqlServer6.0</provider-name>
      <source name="E5"
            connectionString=""/>
    </connection>
    <update-interval>30</update-interval>
    <minimum-update-interval>2</minimum-update-interval>
  </database>
  <dataseries name="" identifier="e5">
    <graph-type></graph-type>
      <query>
        SELECT Period, Price
        FROM PriceUS
        WHERE Date = @date
      </query>
  </dataseries>
  <dataseries name="" identifier="e52">
    <graph-type></graph-type>
    <query>
      SELECT Period, Price
      FROM PriceUS
      WHERE Date = @date
    </query>
  </dataseries>
</datasource>

Ответы [ 3 ]

4 голосов
/ 27 мая 2009

Существует два уровня «правильных» документов XML: правильно сформированный и действительный . Правильно оформленный означает, что он соответствует спецификации XML, а действительный означает, что он соответствует вашей схеме. Если и когда вы принимаете XML-документ от совершенно незнакомого человека, обычно рекомендуется проверить действительность документа, прежде чем двигаться вперед.

Как вы упомянули, XML-схема может также использоваться для создания сущностей привязки данных XML. Когда вы публикуете сервис или схему в мире или своем клиенте, документ схемы может использоваться в качестве спецификации. Мир или ваш клиент могут затем использовать файл XSD для проверки или привязки данных к документам XML, которыми вы обмениваетесь.

1 голос
/ 27 мая 2009

Технически, в XML есть два формальных типа схемы. Существует оригинальный синтаксис схемы, называемый определением типа документа (DTD), который является пережитком древних времен SGML. И еще есть стандарт W3C, XSD, который более совместим с современными данными.

Единственная причина, по которой я упоминаю это, заключается в том, что вы можете получить файл XML, описанный с использованием DTD, и вам может понадобиться знать, как с ним работать.

Но, пожалуйста, друзья не позволяют друзьям создавать DTD для новых приложений.

0 голосов
/ 27 мая 2009

Схема хороша, если вы хотите проверить XML, например, убедиться, что определенные элементы присутствуют или имеют ограниченный набор значений. Схема также хороша, если вы будете много работать с XML, и было бы легче преобразовать XML в объекты C # - в этом случае вы можете использовать генератор кода xsd.exe для генерации объектов C #, которые маршалированные и не маршалируемые из XML.

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