Я нашел несколько инструментов в Интернете, которые генерируют схему XML для данного экземпляра данных XML. Что-то вроде - текст ссылки

Я тоже думаю о разработке, но меня немного смущает оценка сгенерированной схемы.

Как можно оценить сгенерированную схему, т.е. сгенерированная схема подтверждает данные? Есть ли какие-либо средства для формулирования какой-либо меры точности, которая говорит, что сгенерированная схема XML является правильной на 80% или на 90% для заданных данных XML?

Пожалуйста, помогите мне с любыми указателями.

Ура

0
Arnkrishn 15 Апр 2009 в 06:39

2 ответа

Лучший ответ

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

Например, если в XML-документе есть элемент <foobar>, как инструмент генерации может узнать, является ли он обязательным или нет? Если принимается более одного значения? Не зная исходной схемы, у вас нет возможности сказать, является ли сгенерированная схема точной или нет. (Examplotron решает проблему, позволяя автору помещать структурированные комментарии в XML-файл, чтобы направлять программу.)

Вот пример. С помощью этого XML-файла:

<data>
<foo>1</foo>
<bar>text</bar>
<baz/>
</data>

Examplotron сгенерировал эту схему (немного отредактированную):

start =
  element data {
    element foo { xsd:integer },
    element bar { text },
    element baz { empty }
  }

Обратите внимание на xsd:integer в элементе <foo>. Хороший вывод, но насколько он точен? Возможно, <foo> должен был быть более общего типа, например xsd:any ...

2
bortzmeyer 15 Апр 2009 в 14:12
Спасибо за ответ. Это имеет смысл. У меня было подлое ощущение, что я бьюсь о стену. :)
 – 
Arnkrishn
15 Апр 2009 в 16:23

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

-1
Dave Swersky 15 Апр 2009 в 07:06
Мне интересно, могу ли я оценить точность сгенерированной схемы, если у меня нет исходной XML-схемы, а у меня есть только XML-документ и соответствующая XML-схема, сгенерированная инструментом?
 – 
Arnkrishn
15 Апр 2009 в 07:22
Это просто неправда: образец - это всего лишь образец. Даже если он является полным, он просто не может отражать все допустимые варианты содержимого XML.
 – 
bortzmeyer
15 Апр 2009 в 17:39
@bortzmeyer: Я имел в виду определение схемы. Полный образец сгенерирует схему, которую можно использовать для проверки.
 – 
Dave Swersky
15 Апр 2009 в 20:51