XSD: xs: импорт завершается неудачно при загрузке XSD с другим регистром - PullRequest
0 голосов
/ 02 апреля 2019

Я работаю над созданием объекта Jaxb из сложного XSD. Существуют XSD, которые импортируются в другие xsds, что вызывает проблемы. Вот как это отличается

Мое настоящее имя файла XSD: xsdname.v6.xsd

<xs:import namespace="urn::xsdname:v6" schemaLocation="XsdName.v6.xsd"/> 
<xs:import  namespace="urn::xsdname:v6" schemaLocation="xsdname.v6.xsd"/>

Я получаю ошибку

line 10039 of /src/main/schema/external/xsdname.v6.xsd
  'RefundDateTime' is already defined  
line 10048 of src/main/schema/external/XsdName.v6.xsd
  (related to above error) the first definition appears here

Я предполагал, что файлы каталога помогут решить проблему, но он не использует разные URL-адреса. Он смотрит локально, но загружает его дважды.

Любое предложение, как это можно решить?

1 Ответ

0 голосов
/ 03 апреля 2019

SchemaLocation - это URI (не имя файла Linux ...). Процессор, вероятно, распознает, что, когда у вас есть два импорта для одного и того же URI, один из них является избыточным. Но не существует идеального способа сравнения того, являются ли два URI «одинаковыми», если они не состоят из одной и той же последовательности символов. Некоторые процессоры могут попытаться провести некоторую нормализацию (например, если они являются URI файловой системы, процессор может проверить, не задана ли файловая система без учета регистра), другие даже не попытаются. В целом, если вы импортируете один и тот же документ схемы более одного раза под разными именами, вы можете ожидать конфликтов.

...