<?xml version="1.0" encoding="UTF-8"?>
<fpdoc-descriptions>
<package name="lcl">
<!--
====================================================================
XMLPropStorage
====================================================================
-->
<module name="XMLPropStorage">
<short>
Contains a component that stores Form Session Properties in XML format.
</short>
<descr>
<p>
In this unit you can find an implementation of a name/value pair storage 
container in XML format.
</p>
<p>
This container will get the Form's Session Properties that you setup in 
<link id="#lcl.forms.TForm">TForm.SessionProperties</link> 
and read/write them to the file specified in 
<link id="#lcl.xmlpropstorage.TXMLPropStorage.FileName">TXMLPropStorage.FileName</link>.
</p>
</descr>

<!-- unresolved type references -->
<element name="Classes"/>
<element name="SysUtils"/>
<element name="XMLConf"/>
<element name="DOM"/>
<element name="XMLRead"/>
<element name="XMLWrite"/>
<element name="LCLProc"/>
<element name="Forms"/>
<element name="LazConfigStorage"/>
<element name="LazUTF8"/>

<element name="TPropStorageXMLConfig">
<short>
Wrapper for the TXMLConfig class defined in the FCL <file>XMLConf.pp</file> 
unit.
</short>
<descr>
<p>
More information about TXMLConfig and XMLConf are available on the FPC wiki 
at:
</p>
<p>
<url href="http://wiki.freepascal.org/xmlconf">XMLConf</url>
</p>
<p>
<url href="http://wiki.freepascal.org/TXMLConfig">TXMLConfig</url>
</p>
</descr>
<seealso/>
</element>

<element name="TPropStorageXMLConfig.DeleteSubNodes">
<short>Deletes sub nodes on a path.</short>
<descr/>
<seealso/>
</element>

<element name="TPropStorageXMLConfig.DeleteSubNodes.ARootNode">
<short>The path of the node to have it's sub nodes deleted.</short>
</element>

<element name="TPropStorageXMLConfig.LoadFromStream">
<short>Loads XML content from a stream.</short>
<descr/>
<seealso/>
</element>

<element name="TPropStorageXMLConfig.LoadFromStream.s">
<short>The stream to load the XML content from.</short>
</element>

<element name="TPropStorageXMLConfig.SaveToStream">
<short>Saves XML content to a stream.</short>
<descr/>
<seealso/>
</element>

<element name="TPropStorageXMLConfig.SaveToStream.s">
<short>The stream to save the XML content to.</short>
</element>

<element name="TPropStorageXMLConfig.XMLDoc">
<short>Contains the XML document.</short>
<descr/>
<seealso/>
</element>

<element name="TCustomXMLPropStorage">
<short>
Implements the base class for the XML Form's Session Properties Storage.
</short>
<descr/>
<seealso/>
</element>

<!-- private -->
<element name="TCustomXMLPropStorage.FCount"/>
<element name="TCustomXMLPropStorage.FFileName"/>
<element name="TCustomXMLPropStorage.FXML"/>
<element name="TCustomXMLPropStorage.FRootNode"/>
<element name="TCustomXMLPropStorage.FRootNodePath"/>

<!-- protected -->
<element name="TCustomXMLPropStorage.GetXMLFileName">
<short>
Gets the value for the FileName property.
</short>
<descr/>
<seealso/>
</element>
<element name="TCustomXMLPropStorage.GetXMLFileName.Result">
<short>
The current value in the 
<link id="#lcl.xmlpropstorage.TCustomXMLPropStorage.FileName">TCustomXMLPropStorage.FileName</link> property.
</short>
</element> 

<element name="TCustomXMLPropStorage.RootSection">
<short>Returns the name of the RootSection.</short>
<descr/>
<seealso/>
</element>
<element name="TCustomXMLPropStorage.RootSection.Result">
<short>The current value of RootSection.</short>
</element>

<element name="TCustomXMLPropStorage.FixPath">
<short>
Turns '.' notation into '/' notation for the XPATH-like implementation in 
<url href="http://wiki.freepascal.org/xmlconf">XMLConf</url>.
</short>
<descr/>
<seealso/>
</element>
<element name="TCustomXMLPropStorage.FixPath.Result">
<short>The fixed path is returned with '.' replaced by '/'.</short>
</element>
<element name="TCustomXMLPropStorage.FixPath.APath">
<short>The path to be fixed.</short>
</element>

<element name="TCustomXMLPropStorage.XMLConfig">
<short>
Property to access the <link 
id="#lcl.xmlpropstorage.TPropStorageXMLConfig">TPropStorageXMLConfig</link>.
</short>
<descr/>
<seealso/>
</element>

<element name="TCustomXMLPropStorage.StorageNeeded">
<short>Ask the underlying storage object for an entry.</short>
<descr/>
<seealso/>
</element>

<element name="TCustomXMLPropStorage.StorageNeeded.ReadOnly">
<short>If the item is read-only.</short>
</element>

<element name="TCustomXMLPropStorage.FreeStorage">
<short>Frees an entry from the underlying storage object.</short>
<descr/>
<seealso/>
</element>

<element name="TCustomXMLPropStorage.DoReadString">
<short>
Implements the actual reading of a value from the underlying storage 
container.
</short>
<descr/>
<seealso/>
</element>

<element name="TCustomXMLPropStorage.DoReadString.Result">
<short>The value of the section/ident requested.</short>
</element>

<element name="TCustomXMLPropStorage.DoReadString.Section">
<short>The section to be read.</short>
</element>

<element name="TCustomXMLPropStorage.DoReadString.Ident">
<short>The ident to be read.</short>
</element>

<element name="TCustomXMLPropStorage.DoReadString.TheDefault">
<short>If has no value then return this as default.</short>
</element>

<element name="TCustomXMLPropStorage.DoWriteString">
<short>
Implements writing of a string value to the underlying storage container.
</short>
<descr/>
<seealso/>
</element>

<element name="TCustomXMLPropStorage.DoWriteString.Section">
<short>The section to be written.</short>
</element>

<element name="TCustomXMLPropStorage.DoWriteString.Ident">
<short>The ident to be written.</short>
</element>

<element name="TCustomXMLPropStorage.DoWriteString.Value">
<short>The value to be written.</short>
</element>

<element name="TCustomXMLPropStorage.DoEraseSections">
<short>Erases a section from the underlying storage container.</short>
<descr/>
<seealso/>
</element>

<element name="TCustomXMLPropStorage.DoEraseSections.ARootSection">
<short>The path to the section that will be erased.</short>
</element>

<element name="TCustomXMLPropStorage.FileName">
<short>
Name of the file where the property data is saved in XML format.
</short>
<descr/>
<seealso/>
</element>

<element name="TCustomXMLPropStorage.RootNodePath">
<short>Name of the root object path on your XML file.</short>
<descr/>
<seealso/>
</element>

<element name="TXMLPropStorage">
<short>
Implements a class for XML Form Session Properties storage.
</short>
<descr/>
<seealso>
<link id="#lcl.forms.TForm">TForm.SessionProperties</link>
<link id="#lcl.inipropstorage.TINIPropStorage">TINIPropStorage</link>
<link id="#lcl.jsonpropstorage.TJSONPropStorage">TJSONPropStorage</link>
</seealso>
</element>

<element name="TXMLPropStorage.StoredValues" link="#lcl.propertystorage.TCustomPropertyStorage.StoredValues"/>

<element name="TXMLPropStorage.FileName" link="#lcl.xmlpropstorage.TCustomXmlPropStorage.FileName"/>

<element name="TXMLPropStorage.RootNodePath" link="#lcl.xmlpropstorage.TCustomXmlPropStorage.RootNodePath"/>

<element name="TXMLPropStorage.Active" link="#lcl.propertystorage.TCustomPropertyStorage.Active"/>

<element name="TXMLPropStorage.OnSavingProperties" link="#lcl.propertystorage.TCustomPropertyStorage.OnSavingProperties"/>

<element name="TXMLPropStorage.OnSaveProperties" link="#lcl.propertystorage.TCustomPropertyStorage.OnSaveProperties"/>

<element name="TXMLPropStorage.OnRestoringProperties" link="#lcl.propertystorage.TCustomPropertyStorage.OnRestoringProperties"/>

<element name="TXMLPropStorage.OnRestoreProperties" link="#lcl.propertystorage.TCustomPropertyStorage.OnRestoreProperties"/>

<element name="TXMLConfigStorage">
<short>
Implements a configuration storage mechanism using XML-tagged content.
</short>
<descr>
<p>
<var>TXMLConfigStorage</var> is a <var>TConfigStorage</var> descendant which 
implements an XML-storage mechanism for configuration or other values.
</p>
<p>
TXMLConfigStorage allows names (paths) and values to be accessed using an 
XPATH-like syntax.
</p>
<p>
It provides implementations of the abstract virtual methods defined in the 
ancestor class. It provides overridden constructors that allow the class 
instance to be created for a qualified file name, a TXMLConfig instance, a 
subset of values in a TXMLConfig instance, or a stream. Internally, it use 
TXMLConfig as the storage for values in the class instance.
</p>
<p>
Use the XMLConfig property to access the internal storage for class instance. 
Use the overridden methods to read, write, or delete the names and values in 
the class instance. For example:
</p>
<ul>
<li>DeleteFullPathValue</li>
<li>GetFullPathValue</li>
<li>SetDeleteFullPathValue</li>
<li>SetFullPathValue</li>
</ul>
</descr>
<seealso>
<link id="#lazutils.lazconfigstorage.TConfigStorage">TConfigStorage</link>
</seealso>
</element>

<!-- private -->
<element name="TXMLConfigStorage.FFilename"/>
<element name="TXMLConfigStorage.FFreeXMLConfig"/>
<element name="TXMLConfigStorage.FXMLConfig"/>

<!-- protected -->
<element name="TXMLConfigStorage.GetFullPathValue">
<short>
Gets the String value stored at the specified path in the XML storage.
</short>
<descr>
<p>
Calls the GetValue method for the internal TXMLConfig instance.
</p>
</descr>
<seealso/>
</element>
<element name="TXMLConfigStorage.GetFullPathValue.Result">
<short>
Value retrieved from the internal storage, or ADefault when the path is not 
found.
</short>
</element>
<element name="TXMLConfigStorage.GetFullPathValue.APath">
<short>Path to the XML node with the requested value.</short>
</element>
<element name="TXMLConfigStorage.GetFullPathValue.ADefault">
<short>
Default value returned if APath is not found in the internal storage.
</short>
</element>

<element name="TXMLConfigStorage.SetFullPathValue">
<short>Sets the value for the specified path.</short>
<descr/>
<seealso/>
</element>
<element name="TXMLConfigStorage.SetFullPathValue.APath">
<short>Path to the XML node where the value is stored.</short>
</element>
<element name="TXMLConfigStorage.SetFullPathValue.AValue">
<short>Value stored in the XML node for the specified path.</short>
</element>

<element name="TXMLConfigStorage.SetDeleteFullPathValue">
<short>
Sets the value for or deletes the XML node at the specified path.
</short>
<descr/>
<seealso/>
</element>
<element name="TXMLConfigStorage.SetDeleteFullPathValue.APath">
<short>
Path to the XML node with the value updated or removed in the method.
</short>
</element>
<element name="TXMLConfigStorage.SetDeleteFullPathValue.AValue">
<short>
Value for the specified path. An empty value causes the path to be removed.
</short>
</element>

<element name="TXMLConfigStorage.DeleteFullPath">
<short>
Deletes the XML node and its content and the specified path.
</short>
<descr/>
<seealso/>
</element>
<element name="TXMLConfigStorage.DeleteFullPath.APath">
<short>Path to the XML node removed in the method.</short>
</element>

<element name="TXMLConfigStorage.DeleteFullPathValue">
<short>Deletes the value stored in the XML node at the specified path.</short>
<descr/>
<seealso/>
</element>
<element name="TXMLConfigStorage.DeleteFullPathValue.APath">
<short>Path to the XML node with the value removed in the method.</short>
</element>

<!-- public -->
<element name="TXMLConfigStorage.Clear">
<short>Removes all XML nodes stored in the XMLConfig storage.</short>
<descr>
<p>
Calls the Clear method in XMLConfig.
</p>
</descr>
<seealso>
<link id="TXMLConfigStorage.XMLConfig"/>
</seealso>
</element>

<element name="TXMLConfigStorage.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
<var>Create</var> is the overridden, overloaded constructor for the class 
instance. The overloaded variants allow the XML content to read from various 
sources like a file name, a TXMLConfig instance, a scoped TXMLConfig 
instance, or a TStream instance.
</p>
<p>
Use WriteToDisk or SaveToStream to specify where the XML content is stored .
</p>
</descr>
<seealso/>
</element>
<element name="TXMLConfigStorage.Create.Filename">
<short>Qualified file name where the XML content is stored.</short>
</element>
<element name="TXMLConfigStorage.Create.LoadFromDisk">
<short>
True to load existing XML content from the file, or False to create an empty 
storage.
</short>
</element>
<element name="TXMLConfigStorage.Create.TheXMLConfig">
<short>
TXMLConfig instance where the XML paths and values are stored.
</short>
</element>
<element name="TXMLConfigStorage.Create.StartPath">
<short>
Initial path for values read and written in the class instance.
</short>
</element>
<element name="TXMLConfigStorage.Create.s">
<short>
Stream with the XML content loaded in the XMLConfig storage.
</short>
</element>

<element name="TXMLConfigStorage.Destroy">
<short>Destructor for the class instance.</short>
<descr>
<p>
<var>Destroy</var> is the overridden destructor for the class instance. It 
uses the value in FreeXMLConfig to determine whether the TXMLConfig instance 
in XMLConfig is freed in the method. When set to True, XMLConfig is freed and 
set to Nil.
</p>
<p>
Destroy calls the inherited destructor prior to exiting from the method.
</p>
</descr>
<seealso>
<link id="TXMLConfigStorage.Create"/>
<link id="TXMLConfigStorage.FreeXMLConfig"/>
<link id="TXMLConfigStorage.XMLConfig"/>
</seealso>
</element>

<element name="TXMLConfigStorage.XMLConfig">
<short>
TXMLConfig with the values accessed and maintained in the class instance.
</short>
<descr>
Read-only TXMLConfig property.
</descr>
<seealso/>
</element>

<element name="TXMLConfigStorage.FreeXMLConfig">
<short>
Indicates whether the TXMLConfig instance is freed when the class is 
destroyed.
</short>
<descr>
<p>
<var>FreeXMLConfig</var> is a <var>Boolean</var> property which indicates if 
the TXMLConfig instance in XMLConfig is freed when the class instance is 
destroyed.
</p>
</descr>
<seealso/>
</element>

<element name="TXMLConfigStorage.WriteToDisk">
<short>Stores the values in XMLConfig to the specified file name.</short>
<descr/>
<seealso/>
</element>

<element name="TXMLConfigStorage.GetFilename">
<short>Gets the file name passed as an argument to the constructor.</short>
<descr/>
<seealso/>
</element>
<element name="TXMLConfigStorage.GetFilename.Result">
<short>File passed as an argument to the overloaded constructor.</short>
</element>

<element name="TXMLConfigStorage.SaveToStream">
<short>
Saves the content in XMLConfig to the specified TStream instance.
</short>
<descr/>
<seealso/>
</element>
<element name="TXMLConfigStorage.SaveToStream.s">
<short>TStream instance where the XML content is stored.</short>
</element>

<element name="Register">
<short>
Registers 
<link id="#lcl.xmlpropstorage.TXMLPropStorage">TXMLPropStorage</link> on the 'Misc' tab of the component palette.
</short>
<descr/>
<seealso/>
</element>

</module>
</package>
<!-- XMLPropStorage -->
</fpdoc-descriptions>
