<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Home</title><link>https://forge.codesys.com/lib/xml-pac/home/Home/</link><description>Recent changes to Home</description><language>en</language><lastBuildDate>Mon, 01 Jan 2024 20:19:28 -0000</lastBuildDate><atom:link href="https://forge.codesys.com/lib/xml-pac/home/Home/feed" rel="self" type="application/rss+xml"></atom:link><item><title>Home modified by aliazzz</title><link>https://forge.codesys.com/lib/xml-pac/home/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v44
+++ v45
@@ -1,4 +1,2 @@
-===
-
 A new version of this library can now be found via:
 https://forge.codesys.com/prj/cofile/home/co%F0%9F%93%81e%20-%20XML%20File%20Handling/
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aliazzz</dc:creator><pubDate>Mon, 01 Jan 2024 20:19:28 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com1aad69e1873e943a6743a7a0e9ae21f2954cd23b</guid></item><item><title>Home modified by aliazzz</title><link>https://forge.codesys.com/lib/xml-pac/home/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v43
+++ v44
@@ -1,23 +1,4 @@
-[[members limit=20]]
+===

-# Introduction
-Simple and straightforward XML parsing and composing library, characterized by it's small memory footprint.
-The library has been updated and moved under the co5e umbrella.
-
-# Description
-Due to its small footprint it can be used in budget friendly, economic controllers. Since the library is able to read small chunks of files into memory (or write small chunks to disk) the buffer can be any arbitrary size, as defined by the user. 
-
-This library contains means for 
-
-XML Control solution, a simple but very effective FB to compose structured XML tags with or without parameters, 
-File Control solution, to open/close/read/write files, (W)StringBuffer solution to compose strings in memory.
-
-The example project now contains an additional application which includes a pretty large demo xml file to demonstrate this behavior.
-
-The maximum memory buffer size (parameter) is set smaller than the xml file size.
-One FB gets the recipe names from the file and stores the location in the file where the recipe is.
-Another FB can read the children of the recipe. This way not all data has to be parsed, but only the required data. This keeps not only the memory buffer small, but also the structures which contain the data.
-
-
-A new version of this library can now be downloaded via:
-https://github.com/HAHermsen/co5e-XML-File-Handling
+A new version of this library can now be found via:
+https://forge.codesys.com/prj/cofile/home/co%F0%9F%93%81e%20-%20XML%20File%20Handling/
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aliazzz</dc:creator><pubDate>Mon, 01 Jan 2024 20:17:44 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.comc08f5f30c54d62695c7bed44f1d6368cb93e1188</guid></item><item><title>Home modified by aliazzz</title><link>https://forge.codesys.com/lib/xml-pac/home/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v42
+++ v43
@@ -1,16 +1,16 @@
 [[members limit=20]]
-[[download_button]]

 # Introduction
 Simple and straightforward XML parsing and composing library, characterized by it's small memory footprint.
-This library will be moved under the co5e umbrella, see [#11].
+The library has been updated and moved under the co5e umbrella.

 # Description
-Due to its small footprint it can be used in budget friendly, economic controllers. Since the library is able to read small chunks of files into memory (or write small chunks to disk) the buffer can be any arbitrary size, as defined by the user. This library contains means for 
+Due to its small footprint it can be used in budget friendly, economic controllers. Since the library is able to read small chunks of files into memory (or write small chunks to disk) the buffer can be any arbitrary size, as defined by the user. 
+
+This library contains means for 

 XML Control solution, a simple but very effective FB to compose structured XML tags with or without parameters, 
-File Control solution, to open/close/read/write files,
-(W)StringBuffer solution to compose strings in memory.
+File Control solution, to open/close/read/write files, (W)StringBuffer solution to compose strings in memory.

 The example project now contains an additional application which includes a pretty large demo xml file to demonstrate this behavior.

@@ -18,163 +18,6 @@
 One FB gets the recipe names from the file and stores the location in the file where the recipe is.
 Another FB can read the children of the recipe. This way not all data has to be parsed, but only the required data. This keeps not only the memory buffer small, but also the structures which contain the data.

-[[download url=https://forge.codesys.com/lib/xml-pac/code/HEAD/tree/tags/v0.4.0.0/xmlpac.library?format=raw label="Library v0.4.0.0"]]
-[[download url=https://forge.codesys.com/lib/xml-pac/code/HEAD/tree/tags/v0.4.0.0/example.project?format=raw label="Example v0.4.0.0"]]

-
-## API
-
-1. Initialise
-~~~
-    VAR
-        XML : FB_XMLControl;
-        Buffer: STRING(GVL_Param_XmlControl.udiMaxFileSize);
-        // or buffer as an array of BYTE
-        Buffer: ARRAY [0..GVL_Param_XmlControl.udiMaxFileSize] OF BYTE;
-    END_VAR
-
-    // call
-    XML.pBuffer: = ADR (buffer);
-    XML.LenBuffer: = SIZEOF (buffer);
-~~~
-
-
-2. Add your own preferred XML fileheader i.e.:
-    
-~~~
-    // call
-    XML.WriteDocumentHeader( '');
-~~~
-
-
-3. Compose a tag with a parameter:
-    &amp;lt;mytag paraname="11"&amp;gt;
-~~~
-    // call
-    XML.newTag(sTagName: = 'MyTag');
-    XML.newParameter(Name: = 'ParaName', Parameter: = 11);
-    XML.CloseTag();
-~~~
-
-
-3. Add a value to the tag:   
-    &amp;lt;mytag&amp;gt; MyText 
-~~~
-    // call
-    XML.newTag(Name := 'MyTag');
-    XML.newTagData(TagData :='MyText');
-    XML.CloseTag();
-~~~
-
-
-4. Jump to the beginning of the XML data in the buffer
-~~~
-    // call
-    XML.toStartBuffer();
-~~~
-
-
-5. Add a comment to the XML in the buffer;
-
-~~~
-    // call
-    XML.newComment(sTagName: = 'MyComment');
-~~~
-
-
-6. Returns the next tag from the current position in buffer;
-~~~
-    // call
-    XML.NextTag();
-~~~
-
-
-7. Output the parameter of the tag;
-~~~
-    // call
-    XML.NextParameter(Parameter: = LastValue);
-~~~
-Feedback: Parameter returns the value found (string)
-
-
-# Usage Examples
-
-## Compose
-
-### Simple
-
-
-~~~
-VAR
-    XML           : FB_XMLControl;
-    Buffer        : STRING(GVL_Param_XmlControl.MaxFileSize);
-    StringBuffer  : FB_StringBuffer;
-    FileControl   : FB_FileControl;
-END_VAR
-
-// Initialise Buffer
-XML.SetBuffer(pString:= ADR(Buffer), iSizeOf:= SIZEOF(Buffer));
-
-// If excists, it opens, else it will be created
-FileControl.Open(FileName:='XMLExample.xml',FileAccessMode:=1);
-
-// Set ASCII encoding in fileheader
-XML.WriteDocumentHeader( '');
-
-//Create Tags
-XML.newTag(Name:= 'configuration');
-    XML.newTag(Name:= 'file_info');
-        XML.newTag(Name:= 'info');
-        //Create Parameters
-        XML.newParameter(Name:= 'filename', Value:= 'XMLExample.xml');
-        XML.newParameter(Name:= 'software', Value:= 'CODESYS');
-        XML.newParameter(Name:= 'timestap', Value:= '6/21/2021 11:08:04 AM');
-        XML.newParameter(Name:= 'version', Value:= '3.5.16');
-        XML.newParameter(Name:= 'device', Value:= 'ControlWin V3');
-        XML.newParameter(Name:= 'solution', Value:= 'None');
-        XML.CloseTag();
-    XML.CloseTag();
-XML.CloseTag();
-
-//Save buffer to file
-FileControl.Save(pString:=ADR(Buffer),Size:=SIZEOF(Buffer));
-~~~
-
-
-### Advanced
-~~~
-To be addressed
-~~~
-
-## Parse
-
-### Simple
-~~~
-to be addressed
-~~~
-
-### Advanced
-~~~
-to be addressed
-~~~
-
-
-# Contents
-* FB_FileAccess: This function block can open, close, read and save a file from and to a generic PLC memory buffer. 
-It can also read a small portions (chunks) of the file from disk to memory which enables you to load larger files in small portions. 
-
-* FB_StringBuffer: Acts as an IO stream buffer for use with FB_XmlControl. Data can be treated as STRING or array of bytes. The stringBuffer can also be used as a basis for other purposes like txt, csv, etc, etc.
-
-* FB_XmlControl: Organizes Parsing and Composing of XML data. 
-Filebuffersize can be set via library parameter (Gvl_Param_XmlControl) default 500_000 bytes
-
-Note: 
-Files do not necessarily need to be in a .xml format so you can use filecontrol to access or write any type of file.
-Offcourse parsing and composing via xmlcontrol is only supported for xml formatted files.
-
-# Download
-[[download url=https://forge.codesys.com/lib/xml-pac/code/HEAD/tree/tags/v0.4.0.0/xmlpac.library?format=raw label="Library v0.4.0.0"]]
-[[download url=https://forge.codesys.com/lib/xml-pac/code/HEAD/tree/tags/v0.4.0.0/example.project?format=raw label="Example v0.4.0.0"]] 
-
-# Acknowledgement
-@timvh for providing partial file reading/parsing
+A new version of this library can now be downloaded via:
+https://github.com/HAHermsen/co5e-XML-File-Handling
&amp;lt;/mytag&amp;gt;&amp;lt;/mytag&amp;gt;&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aliazzz</dc:creator><pubDate>Sat, 30 Dec 2023 01:20:13 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com984e846c1b0eba6ce7593791fa924cc680f7550d</guid></item><item><title>Home modified by h-hermsen</title><link>https://forge.codesys.com/lib/xml-pac/home/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">h-hermsen</dc:creator><pubDate>Sun, 15 May 2022 20:27:59 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com6b561ac1093e5bf092a2b3b50ee41fd23dfb469f</guid></item><item><title>Home modified by h-hermsen</title><link>https://forge.codesys.com/lib/xml-pac/home/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v40
+++ v41
@@ -1,6 +1,5 @@
 [[members limit=20]]
 [[download_button]]
-[[TOC]]

 # Introduction
 Simple and straightforward XML parsing and composing library, characterized by it's small memory footprint.
@@ -21,8 +20,6 @@

 [[download url=https://forge.codesys.com/lib/xml-pac/code/HEAD/tree/tags/v0.4.0.0/xmlpac.library?format=raw label="Library v0.4.0.0"]]
 [[download url=https://forge.codesys.com/lib/xml-pac/code/HEAD/tree/tags/v0.4.0.0/example.project?format=raw label="Example v0.4.0.0"]]
-
-


 ## API
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">h-hermsen</dc:creator><pubDate>Sun, 15 May 2022 20:27:10 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.comd7100dbfc34b99167c4ca045c2bad78a9ec42314</guid></item><item><title>Home modified by h-hermsen</title><link>https://forge.codesys.com/lib/xml-pac/home/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v39
+++ v40
@@ -1,6 +1,6 @@
 [[members limit=20]]
 [[download_button]]
-[[toc]]
+[[TOC]]

 # Introduction
 Simple and straightforward XML parsing and composing library, characterized by it's small memory footprint.
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">h-hermsen</dc:creator><pubDate>Sun, 15 May 2022 20:26:35 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.comc536c33fd5a2153dff8607b99f480119e73a201d</guid></item><item><title>Home modified by h-hermsen</title><link>https://forge.codesys.com/lib/xml-pac/home/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v38
+++ v39
@@ -1,5 +1,6 @@
 [[members limit=20]]
 [[download_button]]
+[[toc]]

 # Introduction
 Simple and straightforward XML parsing and composing library, characterized by it's small memory footprint.
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">h-hermsen</dc:creator><pubDate>Sun, 15 May 2022 20:26:04 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com4f1465970965eeca7bdfcd6bf03151ef5a7d93d7</guid></item><item><title>Home modified by h-hermsen</title><link>https://forge.codesys.com/lib/xml-pac/home/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v37
+++ v38
@@ -20,6 +20,9 @@

 [[download url=https://forge.codesys.com/lib/xml-pac/code/HEAD/tree/tags/v0.4.0.0/xmlpac.library?format=raw label="Library v0.4.0.0"]]
 [[download url=https://forge.codesys.com/lib/xml-pac/code/HEAD/tree/tags/v0.4.0.0/example.project?format=raw label="Example v0.4.0.0"]]
+
+
+

 ## API

@@ -98,6 +101,8 @@

 # Usage Examples

+## Compose
+
 ### Simple


@@ -143,6 +148,18 @@
 To be addressed
 ~~~

+## Parse
+
+### Simple
+~~~
+to be addressed
+~~~
+
+### Advanced
+~~~
+to be addressed
+~~~
+

 # Contents
 * FB_FileAccess: This function block can open, close, read and save a file from and to a generic PLC memory buffer. 
@@ -152,12 +169,11 @@

 * FB_XmlControl: Organizes Parsing and Composing of XML data. 
 Filebuffersize can be set via library parameter (Gvl_Param_XmlControl) default 500_000 bytes
-    
-~~~
+
 Note: 
 Files do not necessarily need to be in a .xml format so you can use filecontrol to access or write any type of file.
 Offcourse parsing and composing via xmlcontrol is only supported for xml formatted files.
-~~~
+
 # Download
 [[download url=https://forge.codesys.com/lib/xml-pac/code/HEAD/tree/tags/v0.4.0.0/xmlpac.library?format=raw label="Library v0.4.0.0"]]
 [[download url=https://forge.codesys.com/lib/xml-pac/code/HEAD/tree/tags/v0.4.0.0/example.project?format=raw label="Example v0.4.0.0"]] 
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">h-hermsen</dc:creator><pubDate>Sun, 15 May 2022 20:24:07 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com14f7d43649cabd088eb7e697e7d6a83fbdbd6164</guid></item><item><title>Home modified by h-hermsen</title><link>https://forge.codesys.com/lib/xml-pac/home/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v36
+++ v37
@@ -21,10 +21,9 @@
 [[download url=https://forge.codesys.com/lib/xml-pac/code/HEAD/tree/tags/v0.4.0.0/xmlpac.library?format=raw label="Library v0.4.0.0"]]
 [[download url=https://forge.codesys.com/lib/xml-pac/code/HEAD/tree/tags/v0.4.0.0/example.project?format=raw label="Example v0.4.0.0"]]

-## Usage
+## API

 1. Initialise
-
 ~~~
     VAR
         XML : FB_XMLControl;
@@ -40,9 +39,7 @@


 2. Add your own preferred XML fileheader i.e.:
-
     
-
 ~~~
     // call
     XML.WriteDocumentHeader( '');
@@ -50,9 +47,7 @@


 3. Compose a tag with a parameter:
-
     &amp;lt;mytag paraname="11"&amp;gt;
-
 ~~~
     // call
     XML.newTag(sTagName: = 'MyTag');
@@ -60,10 +55,9 @@
     XML.CloseTag();
 ~~~

-3. Add a value to the tag:
-    
+
+3. Add a value to the tag:   
     &amp;lt;mytag&amp;gt; MyText 
-
 ~~~
     // call
     XML.newTag(Name := 'MyTag');
@@ -71,44 +65,93 @@
     XML.CloseTag();
 ~~~

+
 4. Jump to the beginning of the XML data in the buffer
-
 ~~~
     // call
     XML.toStartBuffer();
 ~~~

+
 5. Add a comment to the XML in the buffer;
-
 
-
 ~~~
     // call
     XML.newComment(sTagName: = 'MyComment');
 ~~~

+
 6. Returns the next tag from the current position in buffer;
-
 ~~~
     // call
     XML.NextTag();
 ~~~

+
 7. Output the parameter of the tag;
-
 ~~~
     // call
     XML.NextParameter(Parameter: = LastValue);
 ~~~
-
 Feedback: Parameter returns the value found (string)

+
+# Usage Examples
+
+### Simple
+
+
+~~~
+VAR
+    XML           : FB_XMLControl;
+    Buffer        : STRING(GVL_Param_XmlControl.MaxFileSize);
+    StringBuffer  : FB_StringBuffer;
+    FileControl   : FB_FileControl;
+END_VAR
+
+// Initialise Buffer
+XML.SetBuffer(pString:= ADR(Buffer), iSizeOf:= SIZEOF(Buffer));
+
+// If excists, it opens, else it will be created
+FileControl.Open(FileName:='XMLExample.xml',FileAccessMode:=1);
+
+// Set ASCII encoding in fileheader
+XML.WriteDocumentHeader( '');
+
+//Create Tags
+XML.newTag(Name:= 'configuration');
+    XML.newTag(Name:= 'file_info');
+        XML.newTag(Name:= 'info');
+        //Create Parameters
+        XML.newParameter(Name:= 'filename', Value:= 'XMLExample.xml');
+        XML.newParameter(Name:= 'software', Value:= 'CODESYS');
+        XML.newParameter(Name:= 'timestap', Value:= '6/21/2021 11:08:04 AM');
+        XML.newParameter(Name:= 'version', Value:= '3.5.16');
+        XML.newParameter(Name:= 'device', Value:= 'ControlWin V3');
+        XML.newParameter(Name:= 'solution', Value:= 'None');
+        XML.CloseTag();
+    XML.CloseTag();
+XML.CloseTag();
+
+//Save buffer to file
+FileControl.Save(pString:=ADR(Buffer),Size:=SIZEOF(Buffer));
+~~~
+
+
+### Advanced
+~~~
+To be addressed
+~~~
+
+
 # Contents
-* FB_FileControl: This function block can open, close, read and save a file from and to a generic PLC memory buffer. It can also read a small portions (chunks) of the file from disk to memory which enables you to load larger files in small portions. 
+* FB_FileAccess: This function block can open, close, read and save a file from and to a generic PLC memory buffer. 
+It can also read a small portions (chunks) of the file from disk to memory which enables you to load larger files in small portions. 

 * FB_StringBuffer: Acts as an IO stream buffer for use with FB_XmlControl. Data can be treated as STRING or array of bytes. The stringBuffer can also be used as a basis for other purposes like txt, csv, etc, etc.

-* FB_XmlControl: Organizes Parsing and Composing of XML data. Filebuffersize can be set via library parameter (Gvl_Param_XmlControl)
+* FB_XmlControl: Organizes Parsing and Composing of XML data. 
+Filebuffersize can be set via library parameter (Gvl_Param_XmlControl) default 500_000 bytes

 ~~~
 Note: 
&amp;lt;/mytag&amp;gt;&amp;lt;/mytag&amp;gt;&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">h-hermsen</dc:creator><pubDate>Sun, 15 May 2022 20:19:34 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com3061b91529b89db9a56f1bc91ac08f67d5587d6f</guid></item><item><title>Home modified by aliazzz</title><link>https://forge.codesys.com/lib/xml-pac/home/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v35
+++ v36
@@ -2,17 +2,21 @@
 [[download_button]]

 # Introduction
-Simple and straightforward XML parsing and composing library, characterized by it relative small memory footprint.
+Simple and straightforward XML parsing and composing library, characterized by it's small memory footprint.
 This library will be moved under the co5e umbrella, see [#11].

 # Description
-Due to its small footprint it can be used in budget friendly controllers. Since the library is able to read small chunks of files into memory (or write small chunks to disk) the buffer can be any arbitrary size, as defined by the user. The same library also contains a File Control (to open/close/read/write files) and a StringBuffer solution (to compose strings in memory).
+Due to its small footprint it can be used in budget friendly, economic controllers. Since the library is able to read small chunks of files into memory (or write small chunks to disk) the buffer can be any arbitrary size, as defined by the user. This library contains means for 
+
+XML Control solution, a simple but very effective FB to compose structured XML tags with or without parameters, 
+File Control solution, to open/close/read/write files,
+(W)StringBuffer solution to compose strings in memory.

 The example project now contains an additional application which includes a pretty large demo xml file to demonstrate this behavior.

 The maximum memory buffer size (parameter) is set smaller than the xml file size.
 One FB gets the recipe names from the file and stores the location in the file where the recipe is.
-Another FB can read the children of the recipe. This way not all data has to be parsed, but only the required data. This keeps not only keeps the memorybuffer small, but also the structures which contain the data.
+Another FB can read the children of the recipe. This way not all data has to be parsed, but only the required data. This keeps not only the memory buffer small, but also the structures which contain the data.

 [[download url=https://forge.codesys.com/lib/xml-pac/code/HEAD/tree/tags/v0.4.0.0/xmlpac.library?format=raw label="Library v0.4.0.0"]]
 [[download url=https://forge.codesys.com/lib/xml-pac/code/HEAD/tree/tags/v0.4.0.0/example.project?format=raw label="Example v0.4.0.0"]]
@@ -116,4 +120,4 @@
 [[download url=https://forge.codesys.com/lib/xml-pac/code/HEAD/tree/tags/v0.4.0.0/example.project?format=raw label="Example v0.4.0.0"]] 

 # Acknowledgement
-@timvh for providing partial filereading/parsing
+@timvh for providing partial file reading/parsing
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aliazzz</dc:creator><pubDate>Sun, 15 May 2022 16:39:07 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.comac3c967fbef400d5dc055bce2379f871247df0b5</guid></item></channel></rss>