как создать AdhocQueryRequest вручную. Сбой Imporert - PullRequest
0 голосов
/ 12 мая 2019

Я попытался импортировать wsdl, содержащий «AdhocQuery», и импортер wsdl завершился неудачно с ошибкой нарушения прав доступа в «dclsoap230.bpl». Теперь я пытаюсь создать класс вручную.

текущий код

AdhocQuery = class; { "urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0"[GblElm] }
ValueType = array of WideString;

ValueListType = class(TRemotable)
private
FValue: ValueType;
published
property Value: ValueType read FValue write FValue;
end;

SlotType = class(TRemotable)
private
fname: WideString;
FValueList: ValueListtype;
published
property name: WideString index (IS_ATTR)read fname write fname;
property ValueList: ValueListType read FValueList write FValueList;
end;Slots = array of SlotType;

AdhocQuery = class(TRemotable)
private
FID: WideString;
FSlot: Slots;
public
published
property id: WideString index (IS_ATTR or IS_OPTN)read FID write FID;
property Slot: Slots read FSlot write FSlot;//problem proint
end;

RemClassRegistry.RegisterXSClass(AdhocQuery, 'urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0', 'AdhocQuery');  //...so on

мой текущий код вывода

<AdhocQueryRequest xmlns="urn:oasis:names:tc:ebxml-regrep:xsd:query:3.0">
<ResponseOption returnType="LeafClass" returnComposedObjects="true"/>
<AdhocQuery id="urn:uuid:14d4debf-8f97-4251-9a74-xxxxxx">
<Slot xmlns="urn:MyHR.base">
<Slottype xmlns="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0" name="$XDSDocumentEntryPatientId">
<ValueList xmlns="urn:MyHR.base">
<Value>  <string>'somestr^^^&amp;somestr&amp;ISO'</string></Value>
</ValueList>
</Slottype></Slot></AdhocQuery></AdhocQueryRequest>

ожидаемый вывод

<AdhocQueryRequest xmlns="urn:oasis:names:tc:ebxml-regrep:xsd:query:3.0">
<ResponseOption returnType="LeafClass" returnComposedObjects="true" />
<AdhocQuery id="urn:uuid:14d4debf-8f97-4251-9a74-xxxxxx" xmlns="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0">
<Slot name="$XDSDocumentEntryPatientId"><ValueList><Value>'somestr^^^&amp;somestr&amp;ISO'</Value></ValueList></Slot>
<Slot name="$XDSDocumentEntryStatus"><ValueList><Value>('urn:oasis:names:tc:ebxml-regrep:StatusType:Approved')</Value></ValueList></Slot>
<Slot name="$XDSDocumentEntryClassCode"><ValueList><Value>('somestr')</Value></ValueList></Slot>
</AdhocQuery></AdhocQueryRequest>

WSDL-файл https://drive.google.com/open?id=1J2BFXdQyps7gNsRMzmzxRbqdKvxmXKgV

  1. как получить Слот (массив) в AdhocQuery ?
  2. как получить xmlns = "urn: oasis: names: tc: ebxml-regrep: xsd: оправа: 3.0" как атрибут AdhocQuery ?
...