XML-схема / XML Doc Структура - написана правильно - PullRequest
1 голос
/ 14 мая 2011

Впервые в XML, написан документ XML и автоматически сгенерирована схема с использованием Visual Studio.Я начал писать свою собственную схему изначально.Мой вопрос: есть ли какие-либо недостатки или возможные улучшения, которые я могу реализовать?У меня есть проверка типа, требования и происшествия, просто любопытно услышать, что вы, ребята, знаете.

XML

<?xml version="1.0" encoding="utf-8" ?>
<university>
<lesson id="ms434">
  <subject>Biology</subject>
  <maintopic name="Human Biology">
    <subtopic>Enlarge Hearts</subtopic>
    <subtopic>Heart Valves</subtopic>
  </maintopic>
  <content>
    <sentance>Very long sentance one</sentance>
    <sentance>Very long sentance two</sentance>
    <sentance>Very long sentance three</sentance>
  </content>
</lesson>
</university>

Схема

<?xml version="1.0" encoding="utf-8"?>

<xsl:template match="@* | node()">
  <html>
    <body>
      <h1>Professional Training Facilities</h1>
      <p>
        <strong>University: </strong>
        <xsl:for-each select="university/lesson">          
        <xsl:value-of select="subject"/>
      </p>
      <br/>
      <p>
        <strong>Main Topic: </strong>
        <xsl:value-of select="maintopic=name"/>
      </p>
      <br/>
      <p>
        <strong>Sub Topics: </strong>
        <xsl:for-each select="maintopic">
          <p>
            <xsl:value-of select="subtopic"/>
          </p>
        </xsl:for-each>
      </p>
      <p></p>
      <strong>Content:</strong>
      <xsl:for-each select="content">
        <p>
          <xsl:value-of select="sentance"/>
        </p>
      </xsl:for-each>
      </xsl:for-each> 
      <br/>
    </body>
  </html>
</xsl:template>

Когда я почти закончил Схему вручную, я уверен, что у меня было намного меньше кода, является ли автогенерация чрезмерной?

Редактировать: ошибка foreach для первого оператора, работающая над исправлением, кстати, проблема не в этом.

1 Ответ

0 голосов
/ 14 мая 2011

Схема - это описание класса документов. Любая схема, сгенерированная из одного документа, является предположением. Например, если все ваши элементы урока имеют атрибут длины, который является целым числом, инструмент может угадать, что это всегда будет целое число, и присвоить ему тип xs: integer. Но вы, возможно, захотите быть более точным и сделать тип целым числом в диапазоне от 30 до 60. Или инструмент может быть более строгим, чем вы хотите: возможно, он догадывается, что идентификатор всегда имеет длину 5 символов, когда это просто случайность ваших образцов данных. Поэтому всякий раз, когда вы используете такой инструмент генерации схемы, вам нужно будет проверить вывод и изменить его, чтобы описать класс документов, а не только ваш образец.

Я не знаю инструмент VS, но у многих таких инструментов есть опции для стиля, в котором генерируется схема, например, объявления локальных элементов против объявлений глобальных элементов. Различные выходные данные вполне могут быть эквивалентными, но некоторые из них могут позволить большее повторное использование компонентов или их легче модифицировать. Стоит поэкспериментировать с разными вариантами.

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