support for anyType and schema_Type

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@974 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
inoussa
2009-10-07 13:00:48 +00:00
parent 08f0ab3254
commit ffe9a95736
2 changed files with 11 additions and 5 deletions

View File

@ -305,6 +305,9 @@ type
property Data : string read FData write FData; property Data : string read FData write FData;
end; end;
schema_Type = class(TStringBufferRemotable) end;
anyType_Type = class(TStringBufferRemotable) end;
{ TAbstractEncodedStringRemotable } { TAbstractEncodedStringRemotable }
TAbstractEncodedStringRemotable = class(TAbstractSimpleRemotable) TAbstractEncodedStringRemotable = class(TAbstractSimpleRemotable)
@ -1729,6 +1732,8 @@ begin
r.Register(sXSD_NS,TypeInfo(UnicodeString),'UnicodeString').AddPascalSynonym('unicodestring'); r.Register(sXSD_NS,TypeInfo(UnicodeString),'UnicodeString').AddPascalSynonym('unicodestring');
{$ENDIF WST_UNICODESTRING} {$ENDIF WST_UNICODESTRING}
r.Register(sXSD_NS,TypeInfo(anyURI),'anyURI').AddPascalSynonym('anyURI'); r.Register(sXSD_NS,TypeInfo(anyURI),'anyURI').AddPascalSynonym('anyURI');
r.Register(sXSD_NS,TypeInfo(anyType_Type),'anyType').AddPascalSynonym('anyType_Type');
r.Register(sXSD_NS,TypeInfo(schema_Type),'schema').AddPascalSynonym('schema_Type');
r.Register(sXSD_NS,TypeInfo(token),'token').AddPascalSynonym('token'); r.Register(sXSD_NS,TypeInfo(token),'token').AddPascalSynonym('token');
r.Register(sXSD_NS,TypeInfo(boolean),'boolean').AddPascalSynonym('boolean'); r.Register(sXSD_NS,TypeInfo(boolean),'boolean').AddPascalSynonym('boolean');

View File

@ -324,21 +324,21 @@ procedure AddSystemSymbol(
procedure RegisterBoxedTypes(); procedure RegisterBoxedTypes();
var var
i : Integer; i : Integer;
nativeType : TPasNativeSimpleContentClassType; nativeType : TPasNativeSpecialSimpleContentClassType;
syb : TPasNativeSimpleContentClassType; syb : TPasNativeSimpleContentClassType;
s : string; s : string;
typlst : array[0..Pred(BOXED_TYPES_COUNT)] of TPasNativeSimpleContentClassType; typlst : array[0..Pred(BOXED_TYPES_COUNT)] of TPasNativeSpecialSimpleContentClassType;
begin begin
for i := Low(BOXED_TYPES) to High(BOXED_TYPES) do begin for i := Low(BOXED_TYPES) to High(BOXED_TYPES) do begin
nativeType := TPasNativeSimpleContentClassType(AContainer.CreateElement(TPasNativeSimpleContentClassType,BOXED_TYPES[i][0],ADest.InterfaceSection,visPublic,'',0)); nativeType := TPasNativeSpecialSimpleContentClassType(AContainer.CreateElement(TPasNativeSpecialSimpleContentClassType,BOXED_TYPES[i][0],ADest.InterfaceSection,visPublic,'',0));
ADest.InterfaceSection.Declarations.Add(nativeType); ADest.InterfaceSection.Declarations.Add(nativeType);
ADest.InterfaceSection.Types.Add(nativeType); ADest.InterfaceSection.Types.Add(nativeType);
typlst[i] := nativeType; typlst[i] := nativeType;
s := BOXED_TYPES[i][1]; s := BOXED_TYPES[i][1];
if not IsStrEmpty(s) then begin if not IsStrEmpty(s) then begin
syb := AContainer.FindElementInModule(BOXED_TYPES[i][1],ADest) as TPasNativeSimpleContentClassType; syb := AContainer.FindElementInModule(BOXED_TYPES[i][1],ADest) as TPasNativeSpecialSimpleContentClassType;
if not Assigned(syb) then begin if not Assigned(syb) then begin
syb := TPasNativeSimpleContentClassType(AContainer.CreateElement(TPasNativeSimpleContentClassType,s,ADest.InterfaceSection,visDefault,'',0)); syb := TPasNativeSpecialSimpleContentClassType(AContainer.CreateElement(TPasNativeSpecialSimpleContentClassType,s,ADest.InterfaceSection,visDefault,'',0));
ADest.InterfaceSection.Declarations.Add(syb); ADest.InterfaceSection.Declarations.Add(syb);
ADest.InterfaceSection.Types.Add(syb); ADest.InterfaceSection.Types.Add(syb);
end; end;
@ -409,6 +409,7 @@ begin
Result.InterfaceSection := TPasSection(AContainer.CreateElement(TPasSection,'',Result,visDefault,'',0)); Result.InterfaceSection := TPasSection(AContainer.CreateElement(TPasSection,'',Result,visDefault,'',0));
AddSystemSymbol(Result,AContainer); AddSystemSymbol(Result,AContainer);
AddClassDef(Result,'TBaseRemotable','',TPasNativeClassType); AddClassDef(Result,'TBaseRemotable','',TPasNativeClassType);
AContainer.RegisterExternalAlias(AddClassDef(Result,'anyType_Type','TBaseRemotable',TPasNativeClassType),'anyType');
AddClassDef(Result,'TAbstractSimpleRemotable','TBaseRemotable',TPasNativeClassType); AddClassDef(Result,'TAbstractSimpleRemotable','TBaseRemotable',TPasNativeClassType);
AContainer.RegisterExternalAlias(AddClassDef(Result,'schema_Type','TAbstractSimpleRemotable'),'schema'); AContainer.RegisterExternalAlias(AddClassDef(Result,'schema_Type','TAbstractSimpleRemotable'),'schema');
AContainer.RegisterExternalAlias(AddClassDef(Result,'TDateRemotable','TAbstractSimpleRemotable'),'date'); AContainer.RegisterExternalAlias(AddClassDef(Result,'TDateRemotable','TAbstractSimpleRemotable'),'date');