Согласно Где поместить информацию об авторских правах в XSD? , один из способов поместить уведомление об авторских правах в xsd - вставить что-то вроде
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xsd:annotation>
<xsd:appinfo>
<copyright-notice>
Copyright 2015 Example.com. All rights reserved.
<copyright-notice>
<license uri="http://www.apache.org/licenses/LICENSE-2.0"
version="2.0">Apache License, Version 2.0</license>
<!-- ... -->
</xsd:appinfo>
</xsd:annotation>
<!-- ... -->
</xs:schema>
Если я это сделаю, это действительно сработает.
Но теперь я хочу вставить что-то похожее в соответствующий XML:
<MyCase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="MyCaseDefinition.xsd">
<annotation>
<appinfo>
<copyright-notice>
Copyright 2015 Example.com. All rights reserved.
</copyright-notice>
<license uri="http://www.apache.org/licenses/LICENSE-2.0"
version="2.0">Apache License, Version 2.0</license>
</appinfo>
</annotation>
<!-- ... -->
</MyCase>
Однако, если я это сделаю, я получу ошибку:
Недопустимый контент, начинающийся с элемента 'annotation'
при загрузке файла.
Кажется, что 2 выше являются эксклюзивными:
- Если я добавлю аннотацию в XSD, я не смогу поместить эквивалент в XML.
- Если я ничего не помещаю в XSD, тогда аннотация в XML в порядке.
Как получить уведомление об авторских правах в обоих файлах?