Support for renaming properties using the Hints file
Fixed support for simple type collections
This commit is contained in:
parent
56013f783a
commit
5e75e3435f
@ -82,6 +82,10 @@ object MainForm: TMainForm
|
|||||||
TabOrder = 2
|
TabOrder = 2
|
||||||
object spFile: TTabSheet
|
object spFile: TTabSheet
|
||||||
TabVisible = False
|
TabVisible = False
|
||||||
|
ExplicitLeft = 0
|
||||||
|
ExplicitTop = 0
|
||||||
|
ExplicitWidth = 0
|
||||||
|
ExplicitHeight = 0
|
||||||
object lblFile: TLabel
|
object lblFile: TLabel
|
||||||
Left = 8
|
Left = 8
|
||||||
Top = 7
|
Top = 7
|
||||||
@ -103,6 +107,10 @@ object MainForm: TMainForm
|
|||||||
end
|
end
|
||||||
object spFolder: TTabSheet
|
object spFolder: TTabSheet
|
||||||
TabVisible = False
|
TabVisible = False
|
||||||
|
ExplicitLeft = 0
|
||||||
|
ExplicitTop = 0
|
||||||
|
ExplicitWidth = 0
|
||||||
|
ExplicitHeight = 0
|
||||||
DesignSize = (
|
DesignSize = (
|
||||||
408
|
408
|
||||||
85)
|
85)
|
||||||
|
@ -89,7 +89,8 @@ uses
|
|||||||
|
|
||||||
|
|
||||||
type
|
type
|
||||||
TProtectedXMLDataBindingItem = class(TXMLDataBindingItem);
|
TProtectedXMLDataBindingItem = class(TXMLDataBindingItem);
|
||||||
|
TProtectedXMLDataBindingProperty = class(TXMLDataBindingProperty);
|
||||||
|
|
||||||
THintsDelphiXMLDataBindingGenerator = class(TDelphiXMLDataBindingGenerator)
|
THintsDelphiXMLDataBindingGenerator = class(TDelphiXMLDataBindingGenerator)
|
||||||
private
|
private
|
||||||
@ -102,6 +103,7 @@ type
|
|||||||
procedure ProcessEnumerations;
|
procedure ProcessEnumerations;
|
||||||
procedure ProcessDocumentElements;
|
procedure ProcessDocumentElements;
|
||||||
procedure ProcessInterfaces;
|
procedure ProcessInterfaces;
|
||||||
|
procedure ProcessProperties;
|
||||||
|
|
||||||
function FindSchema(const ASchemaName: String; out ASchema: TXMLDataBindingSchema): Boolean;
|
function FindSchema(const ASchemaName: String; out ASchema: TXMLDataBindingSchema): Boolean;
|
||||||
function FindNode(const ASchemaName, AXPath: String; out AItem: TXMLDataBindingItem): Boolean;
|
function FindNode(const ASchemaName, AXPath: String; out AItem: TXMLDataBindingItem): Boolean;
|
||||||
@ -391,6 +393,9 @@ begin
|
|||||||
|
|
||||||
if Hints.HasInterfaces then
|
if Hints.HasInterfaces then
|
||||||
ProcessInterfaces;
|
ProcessInterfaces;
|
||||||
|
|
||||||
|
if Hints.HasProperties then
|
||||||
|
ProcessProperties;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -482,6 +487,26 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure THintsDelphiXMLDataBindingGenerator.ProcessProperties;
|
||||||
|
var
|
||||||
|
itemIndex: Integer;
|
||||||
|
propertyName: IXMLPropertyName;
|
||||||
|
schemaItem: TXMLDataBindingItem;
|
||||||
|
|
||||||
|
begin
|
||||||
|
for itemIndex := 0 to Pred(Hints.Properties.Count) do
|
||||||
|
begin
|
||||||
|
propertyName := Hints.Properties[itemIndex];
|
||||||
|
|
||||||
|
if FindNode(propertyName.Schema, propertyName.XPath, schemaItem) then
|
||||||
|
begin
|
||||||
|
if schemaItem.ItemType = itProperty then
|
||||||
|
schemaItem.TranslatedName := propertyName.Text;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
function THintsDelphiXMLDataBindingGenerator.FindSchema(const ASchemaName: String; out ASchema: TXMLDataBindingSchema): Boolean;
|
function THintsDelphiXMLDataBindingGenerator.FindSchema(const ASchemaName: String; out ASchema: TXMLDataBindingSchema): Boolean;
|
||||||
var
|
var
|
||||||
schemaIndex: Integer;
|
schemaIndex: Integer;
|
||||||
@ -557,11 +582,14 @@ function THintsDelphiXMLDataBindingGenerator.FindNode(const ASchemaName, AXPath:
|
|||||||
|
|
||||||
|
|
||||||
var
|
var
|
||||||
schema: TXMLDataBindingSchema;
|
schema: TXMLDataBindingSchema;
|
||||||
schemaItem: IDOMNode;
|
schemaItem: IDOMNode;
|
||||||
item: TProtectedXMLDataBindingItem;
|
item: TProtectedXMLDataBindingItem;
|
||||||
itemIndex: Integer;
|
itemIndex: Integer;
|
||||||
domDocument: IXMLDOMDocument2;
|
domDocument: IXMLDOMDocument2;
|
||||||
|
interfaceItem: TXMLDataBindingInterface;
|
||||||
|
propertyIndex: Integer;
|
||||||
|
propertyItem: TProtectedXMLDataBindingProperty;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Result := False;
|
Result := False;
|
||||||
@ -584,8 +612,25 @@ begin
|
|||||||
begin
|
begin
|
||||||
AItem := schema.Items[itemIndex];
|
AItem := schema.Items[itemIndex];
|
||||||
Result := True;
|
Result := True;
|
||||||
Break;
|
end else if item.ItemType = itInterface then
|
||||||
|
begin
|
||||||
|
interfaceItem := TXMLDataBindingInterface(item);
|
||||||
|
|
||||||
|
for propertyIndex := 0 to Pred(interfaceItem.PropertyCount) do
|
||||||
|
begin
|
||||||
|
propertyItem := TProtectedXMLDataBindingProperty(interfaceItem.Properties[propertyIndex]);
|
||||||
|
|
||||||
|
if Assigned(propertyItem.SchemaItem) and SameNode(propertyItem.SchemaItem.DOMNode, schemaItem) then
|
||||||
|
begin
|
||||||
|
AItem := propertyItem;
|
||||||
|
Result := True;
|
||||||
|
Break;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
if Result then
|
||||||
|
Break;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
X2Software XML Data Binding
|
X2Software XML Data Binding
|
||||||
|
|
||||||
Generated on: 14-5-2008 11:21:00
|
Generated on: 29-9-2009 14:31:13
|
||||||
Generated from: P:\test\XMLDataBinding\XSD\DataBindingHints.xsd
|
Generated from: P:\test\XMLDataBinding\XSD\DataBindingHints.xsd
|
||||||
}
|
}
|
||||||
unit DataBindingHintsXML;
|
unit DataBindingHintsXML;
|
||||||
@ -22,19 +22,23 @@ type
|
|||||||
IXMLDocumentElement = interface;
|
IXMLDocumentElement = interface;
|
||||||
IXMLInterfaces = interface;
|
IXMLInterfaces = interface;
|
||||||
IXMLInterfaceName = interface;
|
IXMLInterfaceName = interface;
|
||||||
|
IXMLProperties = interface;
|
||||||
|
IXMLPropertyName = interface;
|
||||||
|
|
||||||
{ Interfaces for DataBindingHints }
|
{ Interfaces for DataBindingHints }
|
||||||
{
|
{
|
||||||
Contains hints and mappings for the data binding output
|
Contains hints and mappings for the data binding output
|
||||||
}
|
}
|
||||||
IXMLDataBindingHints = interface(IXMLNode)
|
IXMLDataBindingHints = interface(IXMLNode)
|
||||||
['{D2B7C152-7F8F-4B0F-9270-7330351B8D4E}']
|
['{434CBC09-8E33-4970-9C4A-535B4C898185}']
|
||||||
function GetHasEnumerations: Boolean;
|
function GetHasEnumerations: Boolean;
|
||||||
function GetEnumerations: IXMLEnumerations;
|
function GetEnumerations: IXMLEnumerations;
|
||||||
function GetHasDocumentElements: Boolean;
|
function GetHasDocumentElements: Boolean;
|
||||||
function GetDocumentElements: IXMLDocumentElements;
|
function GetDocumentElements: IXMLDocumentElements;
|
||||||
function GetHasInterfaces: Boolean;
|
function GetHasInterfaces: Boolean;
|
||||||
function GetInterfaces: IXMLInterfaces;
|
function GetInterfaces: IXMLInterfaces;
|
||||||
|
function GetHasProperties: Boolean;
|
||||||
|
function GetProperties: IXMLProperties;
|
||||||
|
|
||||||
property HasEnumerations: Boolean read GetHasEnumerations;
|
property HasEnumerations: Boolean read GetHasEnumerations;
|
||||||
property Enumerations: IXMLEnumerations read GetEnumerations;
|
property Enumerations: IXMLEnumerations read GetEnumerations;
|
||||||
@ -42,10 +46,12 @@ type
|
|||||||
property DocumentElements: IXMLDocumentElements read GetDocumentElements;
|
property DocumentElements: IXMLDocumentElements read GetDocumentElements;
|
||||||
property HasInterfaces: Boolean read GetHasInterfaces;
|
property HasInterfaces: Boolean read GetHasInterfaces;
|
||||||
property Interfaces: IXMLInterfaces read GetInterfaces;
|
property Interfaces: IXMLInterfaces read GetInterfaces;
|
||||||
|
property HasProperties: Boolean read GetHasProperties;
|
||||||
|
property Properties: IXMLProperties read GetProperties;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
IXMLEnumerations = interface(IXMLNodeCollection)
|
IXMLEnumerations = interface(IXMLNodeCollection)
|
||||||
['{1D5E90E0-06DD-4476-BA73-0753D35B6193}']
|
['{115ECCB0-407B-476E-AA99-63F584F883F7}']
|
||||||
function Get_Enumeration(Index: Integer): IXMLEnumeration;
|
function Get_Enumeration(Index: Integer): IXMLEnumeration;
|
||||||
function Add: IXMLEnumeration;
|
function Add: IXMLEnumeration;
|
||||||
function Insert(Index: Integer): IXMLEnumeration;
|
function Insert(Index: Integer): IXMLEnumeration;
|
||||||
@ -54,7 +60,7 @@ type
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
IXMLEnumeration = interface(IXMLNodeCollection)
|
IXMLEnumeration = interface(IXMLNodeCollection)
|
||||||
['{07097378-D346-4809-B0A2-86C4BA09C124}']
|
['{4B776A26-325C-4589-8F5B-88E2EE86DEC6}']
|
||||||
function Get_Member(Index: Integer): IXMLMember;
|
function Get_Member(Index: Integer): IXMLMember;
|
||||||
function Add: IXMLMember;
|
function Add: IXMLMember;
|
||||||
function Insert(Index: Integer): IXMLMember;
|
function Insert(Index: Integer): IXMLMember;
|
||||||
@ -72,7 +78,7 @@ type
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
IXMLMember = interface(IXMLNode)
|
IXMLMember = interface(IXMLNode)
|
||||||
['{A5C711D5-FEC5-4490-A36B-A2687AB39748}']
|
['{2575F0F6-EDCA-4CC6-B532-94833BCFAB64}']
|
||||||
function GetName: WideString;
|
function GetName: WideString;
|
||||||
|
|
||||||
procedure SetName(const Value: WideString);
|
procedure SetName(const Value: WideString);
|
||||||
@ -85,7 +91,7 @@ type
|
|||||||
a Document Element.
|
a Document Element.
|
||||||
}
|
}
|
||||||
IXMLDocumentElements = interface(IXMLNodeCollection)
|
IXMLDocumentElements = interface(IXMLNodeCollection)
|
||||||
['{E6C9CBB2-7457-4597-939D-AAE9B1C5F42B}']
|
['{8D3A5543-68FF-4101-9874-639A39E33950}']
|
||||||
function Get_DocumentElement(Index: Integer): IXMLDocumentElement;
|
function Get_DocumentElement(Index: Integer): IXMLDocumentElement;
|
||||||
function Add: IXMLDocumentElement;
|
function Add: IXMLDocumentElement;
|
||||||
function Insert(Index: Integer): IXMLDocumentElement;
|
function Insert(Index: Integer): IXMLDocumentElement;
|
||||||
@ -94,7 +100,7 @@ type
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
IXMLDocumentElement = interface(IXMLNode)
|
IXMLDocumentElement = interface(IXMLNode)
|
||||||
['{93F6182F-4E03-420A-8E84-49F33DC29FA3}']
|
['{3DFD0655-26DA-4237-ACEC-BB7CB3354DD2}']
|
||||||
function GetSchema: WideString;
|
function GetSchema: WideString;
|
||||||
function GetXPath: WideString;
|
function GetXPath: WideString;
|
||||||
|
|
||||||
@ -106,7 +112,7 @@ type
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
IXMLInterfaces = interface(IXMLNodeCollection)
|
IXMLInterfaces = interface(IXMLNodeCollection)
|
||||||
['{A18D3AFF-24FC-45FD-9583-15D9292249D2}']
|
['{E70E67E3-C108-4015-B996-962D800BE555}']
|
||||||
function Get_InterfaceName(Index: Integer): IXMLInterfaceName;
|
function Get_InterfaceName(Index: Integer): IXMLInterfaceName;
|
||||||
function Add: IXMLInterfaceName;
|
function Add: IXMLInterfaceName;
|
||||||
function Insert(Index: Integer): IXMLInterfaceName;
|
function Insert(Index: Integer): IXMLInterfaceName;
|
||||||
@ -115,15 +121,34 @@ type
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
IXMLInterfaceName = interface(IXMLNode)
|
IXMLInterfaceName = interface(IXMLNode)
|
||||||
['{EB24ED8F-0D81-48D5-A420-438CAE003A23}']
|
['{2B8126E7-2F89-4E5D-89E3-4F5F7AEE35E9}']
|
||||||
function GetHasSchema: Boolean;
|
function GetSchema: WideString;
|
||||||
|
function GetXPath: WideString;
|
||||||
|
|
||||||
|
procedure SetSchema(const Value: WideString);
|
||||||
|
procedure SetXPath(const Value: WideString);
|
||||||
|
|
||||||
|
property Schema: WideString read GetSchema write SetSchema;
|
||||||
|
property XPath: WideString read GetXPath write SetXPath;
|
||||||
|
end;
|
||||||
|
|
||||||
|
IXMLProperties = interface(IXMLNodeCollection)
|
||||||
|
['{88260AE1-1C40-4F0F-AA44-C61EDAA53B38}']
|
||||||
|
function Get_PropertyName(Index: Integer): IXMLPropertyName;
|
||||||
|
function Add: IXMLPropertyName;
|
||||||
|
function Insert(Index: Integer): IXMLPropertyName;
|
||||||
|
|
||||||
|
property PropertyName[Index: Integer]: IXMLPropertyName read Get_PropertyName; default;
|
||||||
|
end;
|
||||||
|
|
||||||
|
IXMLPropertyName = interface(IXMLNode)
|
||||||
|
['{DB714E5D-E62B-44C4-B7D4-0623887BCDF6}']
|
||||||
function GetSchema: WideString;
|
function GetSchema: WideString;
|
||||||
function GetXPath: WideString;
|
function GetXPath: WideString;
|
||||||
|
|
||||||
procedure SetSchema(const Value: WideString);
|
procedure SetSchema(const Value: WideString);
|
||||||
procedure SetXPath(const Value: WideString);
|
procedure SetXPath(const Value: WideString);
|
||||||
|
|
||||||
property HasSchema: Boolean read GetHasSchema;
|
|
||||||
property Schema: WideString read GetSchema write SetSchema;
|
property Schema: WideString read GetSchema write SetSchema;
|
||||||
property XPath: WideString read GetXPath write SetXPath;
|
property XPath: WideString read GetXPath write SetXPath;
|
||||||
end;
|
end;
|
||||||
@ -140,6 +165,8 @@ type
|
|||||||
function GetDocumentElements: IXMLDocumentElements;
|
function GetDocumentElements: IXMLDocumentElements;
|
||||||
function GetHasInterfaces: Boolean;
|
function GetHasInterfaces: Boolean;
|
||||||
function GetInterfaces: IXMLInterfaces;
|
function GetInterfaces: IXMLInterfaces;
|
||||||
|
function GetHasProperties: Boolean;
|
||||||
|
function GetProperties: IXMLProperties;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
TXMLEnumerations = class(TXMLNodeCollection, IXMLEnumerations)
|
TXMLEnumerations = class(TXMLNodeCollection, IXMLEnumerations)
|
||||||
@ -202,7 +229,24 @@ type
|
|||||||
|
|
||||||
TXMLInterfaceName = class(TXMLNode, IXMLInterfaceName)
|
TXMLInterfaceName = class(TXMLNode, IXMLInterfaceName)
|
||||||
protected
|
protected
|
||||||
function GetHasSchema: Boolean;
|
function GetSchema: WideString;
|
||||||
|
function GetXPath: WideString;
|
||||||
|
|
||||||
|
procedure SetSchema(const Value: WideString);
|
||||||
|
procedure SetXPath(const Value: WideString);
|
||||||
|
end;
|
||||||
|
|
||||||
|
TXMLProperties = class(TXMLNodeCollection, IXMLProperties)
|
||||||
|
public
|
||||||
|
procedure AfterConstruction; override;
|
||||||
|
protected
|
||||||
|
function Get_PropertyName(Index: Integer): IXMLPropertyName;
|
||||||
|
function Add: IXMLPropertyName;
|
||||||
|
function Insert(Index: Integer): IXMLPropertyName;
|
||||||
|
end;
|
||||||
|
|
||||||
|
TXMLPropertyName = class(TXMLNode, IXMLPropertyName)
|
||||||
|
protected
|
||||||
function GetSchema: WideString;
|
function GetSchema: WideString;
|
||||||
function GetXPath: WideString;
|
function GetXPath: WideString;
|
||||||
|
|
||||||
@ -212,7 +256,7 @@ type
|
|||||||
|
|
||||||
|
|
||||||
{ Document functions }
|
{ Document functions }
|
||||||
function GetDataBindingHints(ADocument: IXMLDocument): IXMLDataBindingHints;
|
function GetDataBindingHints(ADocument: XMLIntf.IXMLDocument): IXMLDataBindingHints;
|
||||||
function LoadDataBindingHints(const AFileName: String): IXMLDataBindingHints;
|
function LoadDataBindingHints(const AFileName: String): IXMLDataBindingHints;
|
||||||
function LoadDataBindingHintsFromStream(AStream: TStream): IXMLDataBindingHints;
|
function LoadDataBindingHintsFromStream(AStream: TStream): IXMLDataBindingHints;
|
||||||
function NewDataBindingHints: IXMLDataBindingHints;
|
function NewDataBindingHints: IXMLDataBindingHints;
|
||||||
@ -227,7 +271,7 @@ uses
|
|||||||
SysUtils;
|
SysUtils;
|
||||||
|
|
||||||
{ Document functions }
|
{ Document functions }
|
||||||
function GetDataBindingHints(ADocument: IXMLDocument): IXMLDataBindingHints;
|
function GetDataBindingHints(ADocument: XMLIntf.IXMLDocument): IXMLDataBindingHints;
|
||||||
begin
|
begin
|
||||||
Result := ADocument.GetDocBinding('DataBindingHints', TXMLDataBindingHints, TargetNamespace) as IXMLDataBindingHints
|
Result := ADocument.GetDocBinding('DataBindingHints', TXMLDataBindingHints, TargetNamespace) as IXMLDataBindingHints
|
||||||
end;
|
end;
|
||||||
@ -239,7 +283,7 @@ end;
|
|||||||
|
|
||||||
function LoadDataBindingHintsFromStream(AStream: TStream): IXMLDataBindingHints;
|
function LoadDataBindingHintsFromStream(AStream: TStream): IXMLDataBindingHints;
|
||||||
var
|
var
|
||||||
doc: IXMLDocument;
|
doc: XMLIntf.IXMLDocument;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
doc := NewXMLDocument;
|
doc := NewXMLDocument;
|
||||||
@ -260,6 +304,7 @@ begin
|
|||||||
RegisterChildNode('Enumerations', TXMLEnumerations);
|
RegisterChildNode('Enumerations', TXMLEnumerations);
|
||||||
RegisterChildNode('DocumentElements', TXMLDocumentElements);
|
RegisterChildNode('DocumentElements', TXMLDocumentElements);
|
||||||
RegisterChildNode('Interfaces', TXMLInterfaces);
|
RegisterChildNode('Interfaces', TXMLInterfaces);
|
||||||
|
RegisterChildNode('Properties', TXMLProperties);
|
||||||
inherited;
|
inherited;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -296,6 +341,17 @@ begin
|
|||||||
Result := (ChildNodes['Interfaces'] as IXMLInterfaces);
|
Result := (ChildNodes['Interfaces'] as IXMLInterfaces);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TXMLDataBindingHints.GetHasProperties: Boolean;
|
||||||
|
begin
|
||||||
|
Result := Assigned(ChildNodes.FindNode('Properties'));
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
function TXMLDataBindingHints.GetProperties: IXMLProperties;
|
||||||
|
begin
|
||||||
|
Result := (ChildNodes['Properties'] as IXMLProperties);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TXMLEnumerations.AfterConstruction;
|
procedure TXMLEnumerations.AfterConstruction;
|
||||||
begin
|
begin
|
||||||
RegisterChildNode('Enumeration', TXMLEnumeration);
|
RegisterChildNode('Enumeration', TXMLEnumeration);
|
||||||
@ -446,12 +502,6 @@ begin
|
|||||||
Result := (AddItem(Index) as IXMLInterfaceName);
|
Result := (AddItem(Index) as IXMLInterfaceName);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TXMLInterfaceName.GetHasSchema: Boolean;
|
|
||||||
begin
|
|
||||||
Result := Assigned(ChildNodes.FindNode('Schema'));
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
function TXMLInterfaceName.GetSchema: WideString;
|
function TXMLInterfaceName.GetSchema: WideString;
|
||||||
begin
|
begin
|
||||||
Result := AttributeNodes['Schema'].Text;
|
Result := AttributeNodes['Schema'].Text;
|
||||||
@ -472,6 +522,51 @@ begin
|
|||||||
SetAttribute('XPath', Value);
|
SetAttribute('XPath', Value);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TXMLProperties.AfterConstruction;
|
||||||
|
begin
|
||||||
|
RegisterChildNode('PropertyName', TXMLPropertyName);
|
||||||
|
|
||||||
|
ItemTag := 'PropertyName';
|
||||||
|
ItemInterface := IXMLPropertyName;
|
||||||
|
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TXMLProperties.Get_PropertyName(Index: Integer): IXMLPropertyName;
|
||||||
|
begin
|
||||||
|
Result := (List[Index] as IXMLPropertyName);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TXMLProperties.Add: IXMLPropertyName;
|
||||||
|
begin
|
||||||
|
Result := (AddItem(-1) as IXMLPropertyName);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TXMLProperties.Insert(Index: Integer): IXMLPropertyName;
|
||||||
|
begin
|
||||||
|
Result := (AddItem(Index) as IXMLPropertyName);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TXMLPropertyName.GetSchema: WideString;
|
||||||
|
begin
|
||||||
|
Result := AttributeNodes['Schema'].Text;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TXMLPropertyName.GetXPath: WideString;
|
||||||
|
begin
|
||||||
|
Result := AttributeNodes['XPath'].Text;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TXMLPropertyName.SetSchema(const Value: WideString);
|
||||||
|
begin
|
||||||
|
SetAttribute('Schema', Value);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TXMLPropertyName.SetXPath(const Value: WideString);
|
||||||
|
begin
|
||||||
|
SetAttribute('XPath', Value);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
@ -289,7 +289,7 @@ var
|
|||||||
begin
|
begin
|
||||||
case AProperty.PropertyType of
|
case AProperty.PropertyType of
|
||||||
ptSimple:
|
ptSimple:
|
||||||
if Assigned(AProperty.Collection) then
|
if AProperty.IsRepeating then
|
||||||
begin
|
begin
|
||||||
if AInterfaceName then
|
if AInterfaceName then
|
||||||
Result := ItemInterface
|
Result := ItemInterface
|
||||||
@ -675,6 +675,9 @@ var
|
|||||||
parent: String;
|
parent: String;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
|
if AItem.Name = 'KeyStrokesType' then
|
||||||
|
asm int 3 end;
|
||||||
|
|
||||||
if ASection in [dxsInterface, dxsClass] then
|
if ASection in [dxsInterface, dxsClass] then
|
||||||
begin
|
begin
|
||||||
{ Ensure the base item is completely defined first, Delphi doesn't allow
|
{ Ensure the base item is completely defined first, Delphi doesn't allow
|
||||||
|
138
X2XMLDataBinding.dof
Normal file
138
X2XMLDataBinding.dof
Normal file
@ -0,0 +1,138 @@
|
|||||||
|
[FileVersion]
|
||||||
|
Version=7.0
|
||||||
|
[Compiler]
|
||||||
|
A=8
|
||||||
|
B=0
|
||||||
|
C=0
|
||||||
|
D=1
|
||||||
|
E=0
|
||||||
|
F=0
|
||||||
|
G=1
|
||||||
|
H=1
|
||||||
|
I=1
|
||||||
|
J=0
|
||||||
|
K=0
|
||||||
|
L=1
|
||||||
|
M=0
|
||||||
|
N=1
|
||||||
|
O=0
|
||||||
|
P=1
|
||||||
|
Q=0
|
||||||
|
R=0
|
||||||
|
S=0
|
||||||
|
T=0
|
||||||
|
U=0
|
||||||
|
V=1
|
||||||
|
W=0
|
||||||
|
X=1
|
||||||
|
Y=2
|
||||||
|
Z=1
|
||||||
|
ShowHints=1
|
||||||
|
ShowWarnings=1
|
||||||
|
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
|
||||||
|
NamespacePrefix=
|
||||||
|
SymbolDeprecated=1
|
||||||
|
SymbolLibrary=1
|
||||||
|
SymbolPlatform=1
|
||||||
|
UnitLibrary=1
|
||||||
|
UnitPlatform=1
|
||||||
|
UnitDeprecated=1
|
||||||
|
HResultCompat=1
|
||||||
|
HidingMember=1
|
||||||
|
HiddenVirtual=1
|
||||||
|
Garbage=1
|
||||||
|
BoundsError=1
|
||||||
|
ZeroNilCompat=1
|
||||||
|
StringConstTruncated=1
|
||||||
|
ForLoopVarVarPar=1
|
||||||
|
TypedConstVarPar=1
|
||||||
|
AsgToTypedConst=1
|
||||||
|
CaseLabelRange=1
|
||||||
|
ForVariable=1
|
||||||
|
ConstructingAbstract=1
|
||||||
|
ComparisonFalse=1
|
||||||
|
ComparisonTrue=1
|
||||||
|
ComparingSignedUnsigned=1
|
||||||
|
CombiningSignedUnsigned=1
|
||||||
|
UnsupportedConstruct=1
|
||||||
|
FileOpen=1
|
||||||
|
FileOpenUnitSrc=1
|
||||||
|
BadGlobalSymbol=1
|
||||||
|
DuplicateConstructorDestructor=1
|
||||||
|
InvalidDirective=1
|
||||||
|
PackageNoLink=1
|
||||||
|
PackageThreadVar=1
|
||||||
|
ImplicitImport=1
|
||||||
|
HPPEMITIgnored=1
|
||||||
|
NoRetVal=1
|
||||||
|
UseBeforeDef=1
|
||||||
|
ForLoopVarUndef=1
|
||||||
|
UnitNameMismatch=1
|
||||||
|
NoCFGFileFound=1
|
||||||
|
MessageDirective=1
|
||||||
|
ImplicitVariants=1
|
||||||
|
UnicodeToLocale=1
|
||||||
|
LocaleToUnicode=1
|
||||||
|
ImagebaseMultiple=1
|
||||||
|
SuspiciousTypecast=1
|
||||||
|
PrivatePropAccessor=1
|
||||||
|
UnsafeType=0
|
||||||
|
UnsafeCode=0
|
||||||
|
UnsafeCast=0
|
||||||
|
[Linker]
|
||||||
|
MapFile=3
|
||||||
|
OutputObjs=0
|
||||||
|
ConsoleApp=1
|
||||||
|
DebugInfo=0
|
||||||
|
RemoteSymbols=0
|
||||||
|
MinStackSize=16384
|
||||||
|
MaxStackSize=1048576
|
||||||
|
ImageBase=4194304
|
||||||
|
ExeDescription=
|
||||||
|
[Directories]
|
||||||
|
OutputDir=
|
||||||
|
UnitOutputDir=lib
|
||||||
|
PackageDLLOutputDir=
|
||||||
|
PackageDCPOutputDir=
|
||||||
|
SearchPath=
|
||||||
|
Packages=vcl;rtl;vclx;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;vcldb;dsnapcon;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;CLXIB;ibxpress;VCLIB;teeui;teedb;tee;dss;vclactnband;vclshlctrls;dclOfficeXP;Indy70;cxLibraryVCLD7;dxBarD7;dxComnD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxsbD7;cxEditorsVCLD7;dxThemeD7;cxDataD7;cxExtEditorsVCLD7;cxPageControlVCLD7;cxGridVCLD7;cxSchedulerVCLD7;cxTreeListVCLD7;cxVerticalGridVCLD7;cxSpreadSheetVCLD7;dxNavBarD7;cxWebD7;cxWebPascalScriptD7;cxWebSnapD7;cxWebTeeChartD7;dxMasterViewD7;dxmdsD7;dxdbtrD7;dxtrmdD7;dxorgcD7;dxdborD7;dxFlowChartD7;dxLayoutControlD7;dxLayoutControlcxEditAdaptersD7;dxPSCoreD7;dxPSTeeChartD7;dxPsPrVwAdvD7;dxPSLnksD7;dxPSdxOCLnkD7;dxPSdxMVLnkD7;dxPSdxLCLnkD7;dxPSdxFCLnkD7;dxPSdxDBTVLnkD7;dxPSdxDBOCLnkD7;dxPSDBTeeChartD7;dxPScxCommonD7;dxPScxTLLnkD7;dxPScxSSLnkD7;dxPScxPCProdD7;dxPScxGridLnkD7;dxPScxExtCommonD7;dxPScxVGridLnkD7;fo_d7;xtx_d7;Rave50CLX;Rave50VCL;pngimaged7;dxGDIPlusD7;UnRegDxPNG
|
||||||
|
Conditionals=
|
||||||
|
DebugSourceDirs=
|
||||||
|
UsePackages=0
|
||||||
|
[Parameters]
|
||||||
|
RunParams=P:\test\DealerMap\xsd\kml21-simplified.xsd
|
||||||
|
HostApplication=
|
||||||
|
Launcher=
|
||||||
|
UseLauncher=0
|
||||||
|
DebugCWD=
|
||||||
|
[Language]
|
||||||
|
ActiveLang=
|
||||||
|
ProjectLang=
|
||||||
|
RootDir=C:\Program Files\Borland\Delphi7\Bin\
|
||||||
|
[Version Info]
|
||||||
|
IncludeVerInfo=0
|
||||||
|
AutoIncBuild=0
|
||||||
|
MajorVer=0
|
||||||
|
MinorVer=0
|
||||||
|
Release=0
|
||||||
|
Build=0
|
||||||
|
Debug=0
|
||||||
|
PreRelease=0
|
||||||
|
Special=0
|
||||||
|
Private=0
|
||||||
|
DLL=0
|
||||||
|
Locale=1043
|
||||||
|
CodePage=1252
|
||||||
|
[Version Info Keys]
|
||||||
|
CompanyName=
|
||||||
|
FileDescription=
|
||||||
|
FileVersion=0.0.0.0
|
||||||
|
InternalName=
|
||||||
|
LegalCopyright=
|
||||||
|
LegalTrademarks=
|
||||||
|
OriginalFilename=
|
||||||
|
ProductName=
|
||||||
|
ProductVersion=
|
||||||
|
Comments=
|
||||||
|
[Excluded Packages]
|
||||||
|
C:\Program Files\Borland\Indy\D7\dclIndy70.bpl=Internet Direct (Indy) for D7 Property and Component Editors
|
81
X2XMLDataBinding.dproj
Normal file
81
X2XMLDataBinding.dproj
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<ProjectGuid>{983dfcaf-23ca-48a0-a147-d96769428a71}</ProjectGuid>
|
||||||
|
<MainSource>X2XMLDataBinding.dpr</MainSource>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<DCC_DCCCompiler>DCC32</DCC_DCCCompiler>
|
||||||
|
<DCC_DependencyCheckOutputName>X2XMLDataBinding.exe</DCC_DependencyCheckOutputName>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<Version>7.0</Version>
|
||||||
|
<DCC_DebugInformation>False</DCC_DebugInformation>
|
||||||
|
<DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols>
|
||||||
|
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
|
||||||
|
<DCC_MapFile>3</DCC_MapFile>
|
||||||
|
<DCC_Define>RELEASE</DCC_Define>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<Version>7.0</Version>
|
||||||
|
<DCC_MapFile>3</DCC_MapFile>
|
||||||
|
<DCC_Define>DEBUG</DCC_Define>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ProjectExtensions>
|
||||||
|
<Borland.Personality>Delphi.Personality</Borland.Personality>
|
||||||
|
<Borland.ProjectType />
|
||||||
|
<BorlandProject>
|
||||||
|
<BorlandProject xmlns=""> <Delphi.Personality> <Parameters>
|
||||||
|
|
||||||
|
<Parameters Name="UseLauncher">False</Parameters>
|
||||||
|
<Parameters Name="LoadAllSymbols">True</Parameters>
|
||||||
|
<Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
|
||||||
|
</Parameters>
|
||||||
|
<VersionInfo>
|
||||||
|
<VersionInfo Name="IncludeVerInfo">False</VersionInfo>
|
||||||
|
<VersionInfo Name="AutoIncBuild">False</VersionInfo>
|
||||||
|
<VersionInfo Name="MajorVer">1</VersionInfo>
|
||||||
|
<VersionInfo Name="MinorVer">0</VersionInfo>
|
||||||
|
<VersionInfo Name="Release">0</VersionInfo>
|
||||||
|
<VersionInfo Name="Build">0</VersionInfo>
|
||||||
|
<VersionInfo Name="Debug">False</VersionInfo>
|
||||||
|
<VersionInfo Name="PreRelease">False</VersionInfo>
|
||||||
|
<VersionInfo Name="Special">False</VersionInfo>
|
||||||
|
<VersionInfo Name="Private">False</VersionInfo>
|
||||||
|
<VersionInfo Name="DLL">False</VersionInfo>
|
||||||
|
<VersionInfo Name="Locale">1043</VersionInfo>
|
||||||
|
<VersionInfo Name="CodePage">1252</VersionInfo>
|
||||||
|
</VersionInfo>
|
||||||
|
<VersionInfoKeys>
|
||||||
|
<VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
|
||||||
|
<VersionInfoKeys Name="FileDescription"></VersionInfoKeys>
|
||||||
|
<VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
|
||||||
|
<VersionInfoKeys Name="InternalName"></VersionInfoKeys>
|
||||||
|
<VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
|
||||||
|
<VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
|
||||||
|
<VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
|
||||||
|
<VersionInfoKeys Name="ProductName"></VersionInfoKeys>
|
||||||
|
<VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
|
||||||
|
<VersionInfoKeys Name="Comments"></VersionInfoKeys>
|
||||||
|
</VersionInfoKeys>
|
||||||
|
<Source>
|
||||||
|
<Source Name="MainSource">X2XMLDataBinding.dpr</Source>
|
||||||
|
</Source>
|
||||||
|
</Delphi.Personality> </BorlandProject></BorlandProject>
|
||||||
|
</ProjectExtensions>
|
||||||
|
<Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" />
|
||||||
|
<ItemGroup>
|
||||||
|
<DelphiCompile Include="X2XMLDataBinding.dpr">
|
||||||
|
<MainSource>MainSource</MainSource>
|
||||||
|
</DelphiCompile>
|
||||||
|
<DCCReference Include="Forms\MainFrm.pas">
|
||||||
|
<Form>MainForm</Form>
|
||||||
|
</DCCReference>
|
||||||
|
<DCCReference Include="Units\DataBindingHintsXML.pas" />
|
||||||
|
<DCCReference Include="Units\DataBindingSettingsXML.pas" />
|
||||||
|
<DCCReference Include="Units\DelphiXMLDataBindingGenerator.pas" />
|
||||||
|
<DCCReference Include="Units\DelphiXMLDataBindingResources.pas" />
|
||||||
|
<DCCReference Include="Units\MSXML2_TLB.pas" />
|
||||||
|
<DCCReference Include="Units\XMLDataBindingGenerator.pas" />
|
||||||
|
<DCCReference Include="Units\XMLDataBindingHelpers.pas" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
@ -1,5 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<xs:schema targetNamespace="http://www.x2software.net/xsd/databinding/DataBindingHints.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.x2software.net/xsd/databinding/DataBindingHints.xsd" elementFormDefault="qualified" attributeFormDefault="unqualified">
|
<!-- edited with XML Spy v4.3 U (http://www.xmlspy.com) by J.A. Goos (Uname IT we build it) -->
|
||||||
|
<xs:schema targetNamespace="http://www.x2software.net/xsd/databinding/DataBindingHints.xsd" xmlns:tns="http://www.x2software.net/xsd/databinding/DataBindingHints.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
|
||||||
<xs:element name="DataBindingHints">
|
<xs:element name="DataBindingHints">
|
||||||
<xs:annotation>
|
<xs:annotation>
|
||||||
<xs:documentation>Contains hints and mappings for the data binding output</xs:documentation>
|
<xs:documentation>Contains hints and mappings for the data binding output</xs:documentation>
|
||||||
@ -51,7 +52,7 @@
|
|||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
<xs:simpleContent>
|
<xs:simpleContent>
|
||||||
<xs:extension base="xs:string">
|
<xs:extension base="xs:string">
|
||||||
<xs:attribute name="Schema" type="xs:string" use="optional"/>
|
<xs:attribute name="Schema" type="xs:string" use="required"/>
|
||||||
<xs:attribute name="XPath" type="xs:string" use="required"/>
|
<xs:attribute name="XPath" type="xs:string" use="required"/>
|
||||||
</xs:extension>
|
</xs:extension>
|
||||||
</xs:simpleContent>
|
</xs:simpleContent>
|
||||||
@ -60,6 +61,18 @@
|
|||||||
</xs:sequence>
|
</xs:sequence>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
|
<xs:element name="Properties" minOccurs="0">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="PropertyName" minOccurs="0" maxOccurs="unbounded">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:attribute name="Schema" type="xs:string" use="required"/>
|
||||||
|
<xs:attribute name="XPath" type="xs:string" use="required"/>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
</xs:all>
|
</xs:all>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
|
Loading…
Reference in New Issue
Block a user