Импортировать схему с XMLmapper в Delphi? - PullRequest
0 голосов
/ 03 декабря 2009

Я пытаюсь импортировать некоторые допустимые схемы (для xmlspy и кислорода) с XMLMapper в Delphi, и у меня есть эта ошибка

«Поток ошибок, если: InfofileType unknown».

Я использую пространство имен, и этот тип определен в другом файле.

Есть ли способ решить это?

(я тоже пробую с Delphi 2010 demo, но он все еще не работает)

<?xml version="1.0" encoding="UTF-8" ?> 
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:if="http://www.gtest.fr/Apps/InfoFile" xmlns:ca="http://www.gtest.fr/Apps/CommandAnswer" elementFormDefault="qualified" attributeFormDefault="unqualified">
  <xs:import namespace="http://www.gtest.fr/Apps/InfoFile" schemaLocation="InfoFile.xsd" /> 
  <xs:import namespace="http://www.gtest.fr/Apps/CommandAnswer" schemaLocation="CommandAnswer.xsd" /> 
- <xs:element name="ServerAnswer">
- <xs:annotation>
  <xs:documentation>Reponse serveur socket</xs:documentation> 
  </xs:annotation>
- <xs:complexType>
- <xs:sequence>
  <xs:element name="InfoFile" type="if:InfoFileType" /> 
  <xs:element name="Command" type="ca:CommandAnswerType" /> 
  </xs:sequence>
  </xs:complexType>
  </xs:element>
  </xs:schema>

сообщается в КК: http://qc.embarcadero.com/wc/qcmain.aspx?d=80124

Ответы [ 3 ]

1 голос
/ 04 декабря 2009

Я бы все же попытался взять Delphi 2010 (пробная версия) и посмотреть, работает ли он там.
Я знаю, что там была проделана значительная работа в D2009 и D2010. Это было печально плохо делать импорт и включает в себя.
Намного лучше сейчас ...
Если вы не можете решить эту проблему, я бы порекомендовал вручную отредактировать схемы, чтобы удалить include / import и создать большой толстый XSD без внешнего файла. Должно работать лучше.
Именно так я поступил с довольно сложным набором схем, которые мог бы подавить даже .Net lib.

Обновление : не могли бы вы попытаться заменить if: InfoFile другим символом, чтобы избежать любого столкновения со словом if if reserved; то есть поиск 'n' заменяет, если в схемах на _if_ или что-то еще ... Предполагается, что XML mapper должен заботиться об этом, но, вы знаете ...

0 голосов
/ 06 января 2014

Я бы хотел увидеть сообщение, на которое указал вам Эрик Торнили, но его больше нет. Я мог бы найти его где-нибудь в архиве, если бы у меня была тема сообщения. Я попробовал поиск в Google, но все, что я нашел, это дубликаты этого поста на разных сайтах.

Спасибо

0 голосов
/ 19 января 2010

Эрик Торнили наконец-то дал мне путь сюда .

Кажется, XML Mapper не правильно понимать пространства имен. Вы можете, однако, уговорить его в жизнь добавление дополнительного определения пространства имен в импортированные файлы. Это я конечно, не правильно.

Так, например, в вашем Insurance.xsd вы объявляете XMLNS: Utils = "http://www.gtest.fr/Apps/Utils"

Если вы добавите точно такое же определение в Utils.xsd, XML Mapper импортирует его правильно (думаю!)

Есть большая вероятность, что XML Spy будет раздеть мои модификации - конечно, Enterprise Architect игнорирует их полностью.

...