Элементы аннотаций и документации XSD и способы их использования - PullRequest
4 голосов
/ 18 ноября 2011

Мы создаем XML-файлы, которые мы хотим совместить со следующим xsd: http://www.topografix.com/gpx/1/1/gpx.xsd Этот xsd поддерживает «... расширение путем добавления ваших собственных элементов здесь ...», см. Тип extensionsType, который я скопировали ниже для удобства.

1) Я не понимаю, являются ли аннотация и документация буквальными именами элементов, которые будут отображаться в совместимом xml. Я верю, что нет, но нужно подтверждение. Тогда я предполагаю, что в совместимом документе будет просто любое количество наших собственных пользовательских элементов в любом месте любого элемента [extensions], верно?

2) Почему ниже указаны две пары элементов аннотации / документации, по одной в последовательности?

 <xsd:complexType name="extensionsType">
       <xsd:annotation>
        <xsd:documentation>
         You can add extend GPX by adding your own elements from another schema here.
        </xsd:documentation>
       </xsd:annotation>
        <xsd:sequence>
         <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded">
           <xsd:annotation>
            <xsd:documentation>
             You can add extend GPX by adding your own elements from another schema here.
            </xsd:documentation>
           </xsd:annotation>
         </xsd:any>
        </xsd:sequence>
      </xsd:complexType>

1 Ответ

8 голосов
/ 19 ноября 2011

1) Из спецификации XML-схемы : «Аннотации обеспечивают ориентированные на человека и машины аннотации компонентов схемы». Авторы схемы используют документацию xsd: как, например, Java или .NET, разработчики используют комментарии.

Аннотации являются артефактами XML-схемы; они не должны отображаться в документе XML. И да, ваши элементы расширений должны идти в ; Вы можете использовать любое пространство имен, кроме http://www.topografix.com/GPX/1/1

Sample XML showing extension elements

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- Sample XML generated by QTAssistant (http://www.paschidev.com) -->
<gpx xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.1" creator="creator1" xmlns="http://www.topografix.com/GPX/1/1">
    <extensions>
        <my:element xmlns:my="urn:tempuri-org:some">Hello!</my:element>     
    </extensions>
</gpx> 

2) Трудно сказать, почему есть два человека с одинаковыми комментариями; Разница в том, что один документ описывает сложный тип, а другой - элемент xsd: any. Лично я бы использовал разные комментарии, сначала чтобы объяснить, для чего нужен сложный тип, а второй, как показано.

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