-
Notifications
You must be signed in to change notification settings - Fork 30
/
history.txt
91 lines (81 loc) · 5.31 KB
/
history.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
VerySimpleXML v2.0.5 - a lightweight, one-unit XML reader/writer
by Dennis Spreen
http://blog.spreendigital.de/2014/09/13/verysimplexml-2-0/
1.0 Initial release
1.1 Removed "extended" quotation marks support, Renamed to XmlVerySimple
2.0 Added various node types (incl. comments), added iOS/Android compatibility
1.2 Switched TStringList.Load to TStreamReader
1.3 LoadFromFile/Stream now checks if header is UTF8
1.4 Removed ' from node attributes
1.5 Replaced string access with High/Low(string) for NextGen compiler compatibility
Compact the XML now by using Options := [doCompact]
XmlNode:
Attribute value is now escaped/unescaped
Attribute['tag'] is now Attributes['tag'] (TXmlDocument compatible), all attributes are found in AttributeList
Added Name (same as NodeName)
Moved 'find' procedures over to TXmlNodeList (added stubs accordingly)
Added TXmlDocument compatible functions:
NodeValue (same as Text), NodeName (same as Name), Encoding (same as Header.Attribute['encoding']),
Version (same as Header.Attribute['version']), Options (the only compatible option is [doAutoIdent])
Xml.AddChild (replaces root node name), Xml.DocumentElement (same as root), Node.FirstChild (same as
Node.ChildNodes.First), Node.LastChild (same as Node.ChildNodes.Last), Node.NextSibling, Node.PreviousSibling
1.6 Added comment nodes (see NodeType property)
1.7 Switched TStringList.Save to TStreamWriter
Renamed 'Indent' to 'NodeIndentStr' (TXmlDocument compatible)
Added LineBreak (initalized to sLineBreak (=OS depended), e.g. set to #$0A if you want unix/osx/posix compatible linebreaks)
Added TXmlDocument compatible functions:
StandAlone (same as Header.Attributes['standalone'])
1.8 Added basic doctype nodes (see NodeType property)
Changed 'Root' to 'DocumentElement' (TXmlDocument compatible)
Be sure to call Xml.AddChild('root') before adding nodes to Xml.DocumentElement!
All nodes are now in Xml.ChildNodes (incl. comments and doctypes which may appear before the DocumentElement)
Supports now loading of XML documents without xml header
Added property Xml.Xml (same as Xml.Text, TXmlDocument compatible)
Replaced String operations with character pointers (results in slightly faster loading)
1.9 Added ntProcessingInstr nodes
Added quote support for attributes to allow quotes inside attributes (e.g. attrib1='Franky "Gunshot" Gimley')
Only '<' and '&' are now automatically escaped/unescaped inside node text content
Added ntText nodes
Parsing routines modularized
Tries to detect BOM if no encoding is specified before loading
Uses ANSI encoding if an encoding is set before loading but it's not 'utf-8'
A text node is only created if the text consists of anything other than whitespaces/tab/returns
Added High(String) function for D2010-XE2
Replaced XMLArray with TXmlNodeList
2.0 BETA Dropped support for D2009 (because of missing .last, .first, etc. - see wiki for more information)
Added TEncoding.ANSI for D2010 (redirects to TEncoding.Default, which is with XE2 and above OS dependend!)
Added CDATA node type
Added IsTextElement
Expanded Find routines with NodeTypes
Added doCaseInsensitive (default: node and attribute names are case sensitive!)
Removed extra Quote support for attributes
Escape/Unescapes now all 5 predefined entities (in attributes and nodes)
Added weak references for nextgen ARCtic compiler
Adpated TXMLStreamReader to read from the buffered string
Added WriteBOM option (set by default)
2.0 Turned Beta 21 into 2.0 Release
2.0.1 [Fix] NextSibling/prevSibling bug
2.0.2 Added support for Delphi 10.1 Berlin (replaced class helper with TXmlStreamreader and RTTI)
2.0.3 [Fix] NodeType was ignored by TXmlNode.InsertChild
[Fix] Still not supported but better parsing of markup elements lines like !ELEMENT, !ATTLIST and !ENTITY
2.0.4 [Fix] Fixed fill buffer length
2.0.5 Added Assign procedure for node attributes
Changed private procedures visibility to protected
What's still left to do:
- update example for FMX/VCL
- upgrade/update code comments and wiki
(c) Copyrights 2019 Dennis D. Spreen <[email protected]>
This unit is free and can be used for any needs. The introduction of
any changes and the use of those changed library is permitted without
imitations. Only requirement:
This text must be present without changes in all modifications of library.
* The contents of this file are used with permission, subject to
* the Mozilla Public License Version 1.1 (the "License"); you may *
* not use this file except in compliance with the License. You may *
* obtain a copy of the License at *
* http: www.mozilla.org/MPL/MPL-1.1.html *
* *
* Software distributed under the License is distributed on an *
* "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or *
* implied. See the License for the specific language governing *
* rights and limitations under the License. *