Я пытаюсь расширить и адаптировать внешнюю xsd схему (fixml стандарта). Я должен изменить тип данных некоторых элементов, не касаясь исходной схемы, но путем переопределения его; но находили это чрезвычайно громоздким.
Что существует:
поля-base.xsd
<xs:simpleType name="LastUpdateTime_t">
<xs:restriction base="UTCTimestamp">
<xs:simpleType>
чем я хочу, чтобы это стало:
<xs:simpleType name="LastUpdateTime_t">
<xs:restriction base="xs:string">
<xs:simpleType>
Что я попробовал (но привел к сбою):
<xs:redefine schemaLocation="fields-base.xsd">
<xs:simpleType name="LastUpdateTime_t">
<xs:restriction base="xs:string" />
</xs:simpleType>
</xs:redefine>
Книги и сеть, кажется, не помогли слишком много также, таким образом, я начинаю подвергать сомнению, возможно ли это теоретически вообще.
Насколько я могу сказать, это невозможно.
Единственный переопределенный, который я мог бы сделать подтверждение в XMLSPY:
<xs:redefine schemaLocation="fields-base.xsd">
<xs:simpleType name="LastUpdateTime_t">
<xs:restriction base="LastUpdateTime_t" />
</xs:simpleType>
</xs:redefine>
то есть новое ограничение должно основываться на базовом ограничении.
Может быть, что XMLSPY неверно по этому поводу.
Это несколько загадочная цитата из определения XML W3C XML :
внутри [детей], каждый Simpletype должен иметь Среди его [детей] и каждого CompartyType должен иметь ограничение или расширение среди его Гранд- [дети] · Фактическая ценность · из чья база [атрибут] должна быть так же, как · фактическая стоимость · самостоятельно Имя атрибут плюс целевой пространство имен на целевое пространство;
может разговаривать об этом (это то, что часть спецификации XMLSPY ссылки для этой ошибки).
Единственный действительно хороший пример переопределения простых типов, которые я мог найти, был здесь . В этом примере переопределение только для перечислений.