Better Array generation

Define "float" as "Single"

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@997 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
inoussa
2009-11-09 09:48:35 +00:00
parent 6719a67d5d
commit c7e3cdf5c8
2 changed files with 17 additions and 6 deletions

View File

@ -226,7 +226,7 @@ const
('Longint', 'TComplexInt32SContentRemotable', 'int'), ('Longint', 'TComplexInt32SContentRemotable', 'int'),
('Int64', 'TComplexInt64SContentRemotable', 'long'), ('Int64', 'TComplexInt64SContentRemotable', 'long'),
('Qword', 'TComplexInt64UContentRemotable', 'unsignedLong'), ('Qword', 'TComplexInt64UContentRemotable', 'unsignedLong'),
('Single', 'TComplexFloatSingleContentRemotable', 'single'), ('Single', 'TComplexFloatSingleContentRemotable', 'float'),
('Double', 'TComplexFloatDoubleContentRemotable', 'double'), ('Double', 'TComplexFloatDoubleContentRemotable', 'double'),
('Extended', 'TComplexFloatExtendedContentRemotable', 'decimal') ('Extended', 'TComplexFloatExtendedContentRemotable', 'decimal')
); );
@ -451,7 +451,7 @@ begin
AddAlias('token','string',Result); AddAlias('token','string',Result);
AddAlias('anyURI','string',Result); AddAlias('anyURI','string',Result);
AddAlias('ID','string',Result); AddAlias('ID','string',Result);
AddAlias('float','Single',Result); //AddAlias('float','Single',Result);
AddAlias('nonNegativeInteger','LongWord',Result); AddAlias('nonNegativeInteger','LongWord',Result);
AddAlias('positiveInteger','nonNegativeInteger',Result); AddAlias('positiveInteger','nonNegativeInteger',Result);
{$IFNDEF WST_HAS_TDURATIONREMOTABLE} {$IFNDEF WST_HAS_TDURATIONREMOTABLE}

View File

@ -891,7 +891,7 @@ var
p : TPasProperty; p : TPasProperty;
s : string; s : string;
propNode : TDOMElement; propNode : TDOMElement;
propTypItm, propItmUltimeType : TPasType; propTypItm, propItmUltimeType, arrayItemType : TPasType;
prop_ns_shortName : string; prop_ns_shortName : string;
isEmbeddedArray : Boolean; isEmbeddedArray : Boolean;
typeHelper : IXsdSpecialTypeHelper; typeHelper : IXsdSpecialTypeHelper;
@ -919,16 +919,27 @@ var
( AContainer.GetArrayStyle(TPasArrayType(propItmUltimeType)) = asEmbeded ); ( AContainer.GetArrayStyle(TPasArrayType(propItmUltimeType)) = asEmbeded );
if isEmbeddedArray then begin if isEmbeddedArray then begin
s := AContainer.GetExternalName(TPasArrayType(propItmUltimeType).ElType); s := AContainer.GetExternalName(TPasArrayType(propItmUltimeType).ElType);
prop_ns_shortName := GetNameSpaceShortName(GetTypeNameSpace(AContainer,TPasArrayType(propItmUltimeType).ElType),ADocument,GetOwner().GetPreferedShortNames()); arrayItemType := TPasArrayType(propItmUltimeType).ElType;
prop_ns_shortName := GetNameSpaceShortName(GetTypeNameSpace(AContainer,arrayItemType),ADocument,GetOwner().GetPreferedShortNames());
propNode.SetAttribute(s_type,Format('%s:%s',[prop_ns_shortName,s]));
if arrayItemType.InheritsFrom(TPasNativeSpecialSimpleType) then begin
if GetRegistry().FindHelper(arrayItemType,typeHelper) then
typeHelper.HandleTypeUsage(propNode,defSchemaNode);
end;
end else begin end else begin
s := AContainer.GetExternalName(propTypItm); s := AContainer.GetExternalName(propTypItm);
prop_ns_shortName := GetNameSpaceShortName(GetTypeNameSpace(AContainer,propTypItm),ADocument,GetOwner().GetPreferedShortNames()); prop_ns_shortName := GetNameSpaceShortName(GetTypeNameSpace(AContainer,propTypItm),ADocument,GetOwner().GetPreferedShortNames());
propNode.SetAttribute(s_type,Format('%s:%s',[prop_ns_shortName,s]));
if propTypItm.InheritsFrom(TPasNativeSpecialSimpleType) then begin
if GetRegistry().FindHelper(propTypItm,typeHelper) then
typeHelper.HandleTypeUsage(propNode,defSchemaNode);
end;
end; end;
propNode.SetAttribute(s_type,Format('%s:%s',[prop_ns_shortName,s])); {propNode.SetAttribute(s_type,Format('%s:%s',[prop_ns_shortName,s]));
if propTypItm.InheritsFrom(TPasNativeSpecialSimpleType) then begin if propTypItm.InheritsFrom(TPasNativeSpecialSimpleType) then begin
if GetRegistry().FindHelper(propTypItm,typeHelper) then if GetRegistry().FindHelper(propTypItm,typeHelper) then
typeHelper.HandleTypeUsage(propNode,defSchemaNode); typeHelper.HandleTypeUsage(propNode,defSchemaNode);
end; end; }
if ( Length(p.DefaultValue) > 0 ) then if ( Length(p.DefaultValue) > 0 ) then
propNode.SetAttribute(s_default,p.DefaultValue); propNode.SetAttribute(s_default,p.DefaultValue);
if AContainer.IsAttributeProperty(p) then begin if AContainer.IsAttributeProperty(p) then begin