Как создать «Новые» функции с помощью мастера привязки данных Delphi XSD - PullRequest
1 голос
/ 06 февраля 2012

Согласно документации Embarcadero

Вызовите созданную функцию New ..., чтобы создать экземпляр TXMLDocument для пустого документа, когда вы хотите создать все данные в вашем приложении.:

var
  StockList: IXMLStockListType;
begin
  StockList := Newstocklist;     

_di_IStockListType StockList = NewStockListType();

Однако я не получаю никаких функций New ... в 26833 строках кода, созданного Delphi при импорте XSD для архитектуры клинического документа .

Итак, что запускает генерацию этих новых функций?

1 Ответ

3 голосов
/ 06 февраля 2012

Если ваш XSD-документ содержит несколько узлов xs: element (или simpletype, complextype, ...) на корневом уровне, мастер не сможет определить, каким элементом корневого уровня в конечном итоге будет ваш XML-документ.В этом случае вы должны написать оператор Newxxx самостоятельно:

var yourType : IXMLYourType;
...
yourType := NewXMLDocument.GetDocBinding(
              '<root level yourtype tagname>', 
              TXMLYourType, 
              '') as IXMLYourType;

Попробуйте импортировать документ XML, который соответствует xsd, и вы увидите, что будет сгенерирована функция newxxx.

ОБНОВЛЕНИЕ

screenshot

Если вы проверите documentElementType для Типа, который вы хотите использовать в качестве корневого элемента, будут созданы функции new, load и get.Если вы этого не сделаете, вы получите это предупреждение:

warning

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