--- a/trunk/library/FB_XmlControl/svnobj
+++ b/trunk/library/FB_XmlControl/svnobj
@@ -1,5 +1,4 @@
-Gx_l… !0…jüo¬›‰M±	çºSystem.StringL{6f9dac99-8de1-4efc-8465-68ac443b7d08}SpecialFuncL{0db3d7bb-cde0-4416-9a7b-ce49a0124323}NoneImplementationL{3b83b776-fb25-43b8-99f2-3c507c9143fc}TextDocument	L{f3878285-8e4f-490b-bb1b-9acbb7eb04db}
-TextLinesL{a5de0b0b-1cb5-4913-ac21-9d70293ec00d}Id
longTagTextInterfaceL{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}(*²Organizes parsing and composing of XML data. Data can be treated as STRING or char array.˜Filebuffersize is default 4096 bytes and can be set via Gvl_Param_XmlControlUsage example:1. Initiate    VAR8        XML : FB_XMLControl;ˆ	    Buffer : ARRAY [0..GVL_Param_XmlControl.MaxFileSize-1] OF BYTE;    //ORt        Buffer : STRING(GVL_Param_XmlControl.MaxFileSize);    END_VAR@    XML.pBuffer: = ADR (buffer);J    XML.LenBuffer: = SIZEOF (buffer); V    Add your own preferred fileheader like:!^    XML: <?xml version="1.0" encoding="UTF-8"?>"Ž    XML.WriteDocumentHeader( '<?xml version="1.0" encoding="UTF-8"?>');#F2. Compose a tag with a parameters:$<XML: <MyTag ParaName = "11" />%H    XML.newTag(sTagName: = 'MyTag');&l    XML.newPara(sName: = 'ParaName', sPara: = sValue);'&    XML.CloseTag();("3. Add tag value:):XML: <MyTag> MyText </ MyTag>*B    XML.newTag(sName := 'MyTag');+P    XML.newTagData(sTagData :='MyText');,P4. Jump to the beginning of the XML data-(XML.toStartBuffer();."5. Add a comment:/.XML: <!-- MyComment -->0X    XML.newComment(sTagName: = 'MyComment');1v6. Returns the next tag from the current position in buffer2XML.NextTag();3D7. Output the parameter of the tag4BXML.NextPara(sPara: = LastValue);5`Feedback: sPara returns the value found (string)6*)7:{attribute 'hide_all_locals'}88FUNCTION_BLOCK FB_XmlControl9VAR::    Buffer : FB_StreamBuffer;;<    TagList : FB_StreamBuffer;<0    sTags : T_MaxString;=D    TagListSeek : FB_StreamBuffer;>.    sTagsSeek : STRING;?4    Tag : FB_StreamBuffer;@.    sTag : T_MaxString;A&    xTagOpen: BOOL;B(    iSelect : UDINT;C2    iSelectStart : UDINT;D.    iSelectEnd : UDINT;E:    iSelectStartPara : UDINT;F6    iSelectEndPara : UDINT;G8    iSelectTagClose : UDINT;H<    iSelectStartValue : UDINT;I8    iSelectEndValue : UDINT;J4    udiSearchPos : UDINT; KEND_VARLVAR CONSTANTM@    TAG_OPEN : STRING(1) := '<';NB    TAG_CLOSE : STRING(1) := '>';OL    END_TAG_CLOSE : STRING(4) := '/>';P:    SPACE : STRING(1) := ' ';Q<    EQUALS : STRING(1) := '=';R:    QUOTE : STRING(1) := '"';SD    BACK_SLASH : STRING(1) := '\';TJ    FORWARD_SLASH : STRING(1) := '/';UP    OPEN_COMMENT : STRING(5) := '<!-- ';VP    CLOSE_COMMENT : STRING(4) := ' -->';W8    TAB : STRING(2) := '$T';X:	CR_LF : STRING(4) := '$R$N';Y  ZX	//$OD : ASCII code for carriage return (CR)[&	//$$ : to add a $R\:	//$' : to add ' (apostrophe)].	//$L or $l : line feed^,	//$N or $n : new line_.	//$P or $p : next page`2	//$R or $r : end of linea"UniqueIdGeneratorb110cPOULeveldL{8e575c5b-1d37-49c6-941b-5c0ec7874787}eStandardf ChildObjectGuidsg8System.Collections.ArrayListh,AddAttributeSubsequentiboolÐÐ-ÐÐ	E
+Gx_l… !0…jüo¬iKPX±	†„µSystem.StringL{6f9dac99-8de1-4efc-8465-68ac443b7d08}SpecialFuncL{0db3d7bb-cde0-4416-9a7b-ce49a0124323}NoneImplementationL{3b83b776-fb25-43b8-99f2-3c507c9143fc}TextDocument	L{f3878285-8e4f-490b-bb1b-9acbb7eb04db}
+TextLinesL{a5de0b0b-1cb5-4913-ac21-9d70293ec00d}Id
longTagTextInterfaceL{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}(*²Organizes parsing and composing of XML data. Data can be treated as STRING or char array.˜Filebuffersize is default 4096 bytes and can be set via Gvl_Param_XmlControlUsage example:1. Initiate    VAR8        XML : FB_XMLControl;ˆ	    Buffer : ARRAY [0..GVL_Param_XmlControl.MaxFileSize-1] OF BYTE;    //ORt        Buffer : STRING(GVL_Param_XmlControl.MaxFileSize);    END_VAR@    XML.pBuffer: = ADR (buffer);J    XML.LenBuffer: = SIZEOF (buffer); V    Add your own preferred fileheader like:!^    XML: <?xml version="1.0" encoding="UTF-8"?>"Ž    XML.WriteDocumentHeader( '<?xml version="1.0" encoding="UTF-8"?>');#F2. Compose a tag with a parameters:$<XML: <MyTag ParaName = "11" />%H    XML.newTag(sTagName: = 'MyTag');&l    XML.newPara(sName: = 'ParaName', sPara: = sValue);'&    XML.CloseTag();("3. Add tag value:):XML: <MyTag> MyText </ MyTag>*B    XML.newTag(sName := 'MyTag');+P    XML.newTagData(sTagData :='MyText');,P4. Jump to the beginning of the XML data-(XML.toStartBuffer();."5. Add a comment:/.XML: <!-- MyComment -->0X    XML.newComment(sTagName: = 'MyComment');1v6. Returns the next tag from the current position in buffer2XML.NextTag();3D7. Output the parameter of the tag4BXML.NextPara(sPara: = LastValue);5`Feedback: sPara returns the value found (string)6*)7>//{attribute 'hide_all_locals'}88FUNCTION_BLOCK FB_XmlControl9VAR::    Buffer : FB_StreamBuffer;;<    TagList : FB_StreamBuffer;<0    sTags : T_MaxString;=D    TagListSeek : FB_StreamBuffer;>.    sTagsSeek : STRING;?4    Tag : FB_StreamBuffer;@.    sTag : T_MaxString;A&    xTagOpen: BOOL;B(    iSelect : UDINT;C2    iSelectStart : UDINT;D.    iSelectEnd : UDINT;E:    iSelectStartPara : UDINT;F6    iSelectEndPara : UDINT;G8    iSelectTagClose : UDINT;H<    iSelectStartValue : UDINT;I8    iSelectEndValue : UDINT;J0    iSearchPos : UDINT; KEND_VARLVAR CONSTANTM@    TAG_OPEN : STRING(1) := '<';NB    TAG_CLOSE : STRING(1) := '>';OL    END_TAG_CLOSE : STRING(4) := '/>';P:    SPACE : STRING(1) := ' ';Q<    EQUALS : STRING(1) := '=';R:    QUOTE : STRING(1) := '"';SD    BACK_SLASH : STRING(1) := '\';TJ    FORWARD_SLASH : STRING(1) := '/';UP    OPEN_COMMENT : STRING(5) := '<!-- ';VP    CLOSE_COMMENT : STRING(4) := ' -->';W8    TAB : STRING(2) := '$T';X:	CR_LF : STRING(4) := '$R$N';Y  ZX	//$OD : ASCII code for carriage return (CR)[&	//$$ : to add a $R\:	//$' : to add ' (apostrophe)].	//$L or $l : line feed^,	//$N or $n : new line_.	//$P or $p : next page`2	//$R or $r : end of linea"UniqueIdGeneratorb209cPOULeveldL{8e575c5b-1d37-49c6-941b-5c0ec7874787}eStandardf ChildObjectGuidsg8System.Collections.ArrayListh,AddAttributeSubsequentiboolÐÐ-ÐÐ	E
 ÐÐ
­ÚÐ-ÐÐ	E
-dÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­	ÚÐ-ÐÐ
­
-ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­mÚÐ-ÐÐ
­nÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ- ÐÐ
­ÚÐ-!ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-"ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-#ÐÐ
­ÚÐ-$ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-%ÐÐ
­ÚÐ-&ÐÐ
­ÚÐ-'ÐÐ
­ ÚÐ-ÐÐ
­!ÚÐ-ÐÐ
­"ÚÐ-(ÐÐ
­#ÚÐ-)ÐÐ
­$ÚÐ-ÐÐ
­%ÚÐ-*ÐÐ
­&ÚÐ-+ÐÐ
­'ÚÐ-'ÐÐ
­(ÚÐ-ÐÐ
­)ÚÐ-ÐÐ
­*ÚÐ-,ÐÐ
­+ÚÐ--ÐÐ
­,ÚÐ-ÐÐ
­-ÚÐ-ÐÐ
­.ÚÐ-.ÐÐ
­/ÚÐ-/ÐÐ
­0ÚÐ-ÐÐ
­1ÚÐ-0ÐÐ
­2ÚÐ-ÐÐ
­3ÚÐ-1ÐÐ
­4ÚÐ-2ÐÐ
­5ÚÐ-ÐÐ
­6ÚÐ-ÐÐ
­7ÚÐ-3ÐÐ
­8ÚÐ-4ÐÐ
­9ÚÐ-5ÐÐ
­:ÚÐ-ÐÐ
­;ÚÐ-6ÐÐ
­<ÚÐ-7ÐÐ
­=ÚÐ-8ÐÐ
­>ÚÐ-9ÐÐ
­?ÚÐ-:ÐÐ
­@ÚÐ-;ÐÐ
­AÚÐ-<ÐÐ
­BÚÐ-=ÐÐ
­CÚÐ->ÐÐ
­DÚÐ-?ÐÐ
­EÚÐ-@ÐÐ
­FÚÐ-AÐÐ
­GÚÐ-BÐÐ
­HÚÐ-CÐÐ
­IÚÐ-DÐÐ
­JÚÐ-EÐÐ
­KÚÐ-FÐÐ
­LÚÐ-GÐÐ
­MÚÐ-HÐÐ
­NÚÐ-IÐÐ
­OÚÐ-JÐÐ
­PÚÐ-KÐÐ
­QÚÐ-LÐÐ
­RÚÐ-MÐÐ
­SÚÐ-NÐÐ
­TÚÐ-OÐÐ
­UÚÐ-PÐÐ
­VÚÐ-QÐÐ
­WÚÐ-RÐÐ
­XÚÐ-SÐÐ
­YÚÐ-TÐÐ
­ZÚÐ-UÐÐ
­[ÚÐ-VÐÐ
­fÚÐ-WÐÐ
­kÚÐ-XÐÐ
­lÚÐ-YÐÐ
­]ÚÐ-ZÐÐ
­^ÚÐ-[ÐÐ
­_ÚÐ-\ÐÐ
­`ÚÐ-]ÐÐ
­aÚÐ-^ÐÐ
­bÚÐ-_ÐÐ
­cÚÐ-`ÐÐ
­ÚÐ-KÐa-bÐcd-efgÐhi­
\ No newline at end of file
+dÐÐ
­oÚÐ-ÐÐ
­pÚÐ-ÐÐ
­qÚÐ-ÐÐ
­rÚÐ-ÐÐ
­sÚÐ-ÐÐ
­tÚÐ-ÐÐ
­uÚÐ-ÐÐ
­vÚÐ-ÐÐ
­wÚÐ-ÐÐ
­xÚÐ-ÐÐ
­yÚÐ-ÐÐ
­zÚÐ-ÐÐ
­{ÚÐ-ÐÐ
­|ÚÐ-ÐÐ
­}ÚÐ-ÐÐ
­~ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­€ÚÐ-ÐÐ
­ÚÐ- ÐÐ
­‚ÚÐ-!ÐÐ
­ƒÚÐ-ÐÐ
­„ÚÐ-"ÐÐ
­…ÚÐ-ÐÐ
­†ÚÐ-#ÐÐ
­‡ÚÐ-$ÐÐ
­ˆÚÐ-ÐÐ
­‰ÚÐ-%ÐÐ
­ŠÚÐ-&ÐÐ
­‹ÚÐ-'ÐÐ
­ŒÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ŽÚÐ-(ÐÐ
­ÚÐ-)ÐÐ
­ÚÐ-ÐÐ
­‘ÚÐ-*ÐÐ
­’ÚÐ-+ÐÐ
­“ÚÐ-'ÐÐ
­”ÚÐ-ÐÐ
­•ÚÐ-ÐÐ
­–ÚÐ-,ÐÐ
­—ÚÐ--ÐÐ
­˜ÚÐ-ÐÐ
­™ÚÐ-ÐÐ
­šÚÐ-.ÐÐ
­›ÚÐ-/ÐÐ
­œÚÐ-ÐÐ
­ÚÐ-0ÐÐ
­žÚÐ-ÐÐ
­ŸÚÐ-1ÐÐ
­ ÚÐ-2ÐÐ
­¡ÚÐ-ÐÐ
­¢ÚÐ-ÐÐ
­£ÚÐ-3ÐÐ
­¤ÚÐ-4ÐÐ
­¥ÚÐ-5ÐÐ
­¦ÚÐ-ÐÐ
­§ÚÐ-6ÐÐ
­¨ÚÐ-7ÐÐ
­©ÚÐ-8ÐÐ
­ªÚÐ-9ÐÐ
­«ÚÐ-:ÐÐ
­¬ÚÐ-;ÐÐ
­­ÚÐ-<ÐÐ
­®ÚÐ-=ÐÐ
­¯ÚÐ->ÐÐ
­°ÚÐ-?ÐÐ
­±ÚÐ-@ÐÐ
­²ÚÐ-AÐÐ
­³ÚÐ-BÐÐ
­´ÚÐ-CÐÐ
­µÚÐ-DÐÐ
­¶ÚÐ-EÐÐ
­·ÚÐ-FÐÐ
­¸ÚÐ-GÐÐ
­¹ÚÐ-HÐÐ
­ºÚÐ-IÐÐ
­»ÚÐ-JÐÐ
­¼ÚÐ-KÐÐ
­½ÚÐ-LÐÐ
­¾ÚÐ-MÐÐ
­¿ÚÐ-NÐÐ
­ÀÚÐ-OÐÐ
­ÁÚÐ-PÐÐ
­ÂÚÐ-QÐÐ
­ÃÚÐ-RÐÐ
­ÄÚÐ-SÐÐ
­ÅÚÐ-TÐÐ
­ÆÚÐ-UÐÐ
­ÇÚÐ-VÐÐ
­ÈÚÐ-WÐÐ
­ÉÚÐ-XÐÐ
­ÊÚÐ-YÐÐ
­ËÚÐ-ZÐÐ
­ÌÚÐ-[ÐÐ
­ÍÚÐ-\ÐÐ
­ÎÚÐ-]ÐÐ
­ÏÚÐ-^ÐÐ
­ÐÚÐ-_ÐÐ
­ÑÚÐ-`ÐÐ
­ÚÐ-KÐa-bÐcd-efgÐhi­
\ No newline at end of file