Commit graph

20 commits

Author SHA1 Message Date
Adrien Prokopowicz
f33ee45041
gb.xml: Use NULL instead of the empty string, remove IDE project files.
[GB.XML]
* OPT: Use NULL instead of the emtpy string in function declarations.
2017-08-22 10:27:41 +02:00
Adrien Prokopowicz
c6102c762f [GB.XML]
* BUG: XmlReader: Reading empty attributes should not crash anymore.


git-svn-id: svn://localhost/gambas/trunk@8119 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-04-05 07:50:36 +00:00
Adrien Prokopowicz
98c990ceb1 [GB.XML]
* BUG: XmlNode.Attributes now works correctly when getting empty attributes.
* BUG: XmlElement.GetAttribute() now works correctly with empty attributes.

git-svn-id: svn://localhost/gambas/trunk@7912 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-09-13 12:37:08 +00:00
Tobias Boege
6d5cc42da0 [GB.XML]
* BUG: XmlNode: Don't crash when _get()'ing an empty attribute value



git-svn-id: svn://localhost/gambas/trunk@7911 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-09-13 11:53:40 +00:00
Adrien Prokopowicz
c41939ed3b [GB.XML]
* NEW: Added a new Document property to XMLExplorer.
* NEW: Added the Name and Value properties to XMLReader.Node.Attributes and
  XMLNode.Attributes, to get the name and value of the enumerated attribute.
* BUG: Fixed the XMLNode.Attributes enumeration.
* BUG: Fixed XMLExplorer taking the document itself as a node.
* OPT: Rewrote internal exception handling.

[GB.XML.XSLT]
* NEW: Added a new method XSLT.TransformToString() that returns a string 
  instead of an XML document.
* BUG: Fixed internal error management.

git-svn-id: svn://localhost/gambas/trunk@6416 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2014-08-05 02:02:56 +00:00
Adrien Prokopowicz
f14bbd6097 [GB.XML]
* NEW: Added a new XMLNode.Deserialize() method.
* OPT: Remove some old unused source files.

git-svn-id: svn://localhost/gambas/trunk@5906 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2013-10-19 13:49:13 +00:00
Adrien Prokopowicz
522efa4ba9 [GB.XML]
* NEW: Added a new gb.xml Component API.
* NEW: The XMLElement.AppendFromText() method can now take the &1, &2 etc.
  Subst-like patterns.
* NEW: All the methods based on the parser can choose from the XML and the 
  HTML parser (if loaded), depending  on the document's (or parent
  document's) type.
* OPT: Renamed, reorganized and cleaned up the code.
* OPT: Removed the ugly cross-including sources to communicate with the
  subcomponents, which now use the XML Component Interface.
* OPT: Remove all the unneeded includes.
* OPT: The XML serializer does not check if the elements are self-closed 
  according to HTML specifications anymore. This is done only in the new
  HTML serializer.

[GB.XML.HTML]
* NEW: Added a new gb.xml.html Component API.
* NEW: Added a new (X)HTML parser, more flexible than the XML one,
  and automatically used with the HtmlDocument class.
* NEW: Generated HTML Documents now automatically use the new meta/charset
  element if the document is HTML5, and the old meta/content-type element
  only if the document is not HTML5.
* BUG: Loading an HTML document from a file while instanciating it
  correctly works now.
* BUG: Using the class or id CSS selector in a filter on an element that
  doesn't have these does not crashes anymore.

[GB.XML.XSLT]
* NEW: Now uses the gb.xml Component API.

git-svn-id: svn://localhost/gambas/trunk@5732 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2013-07-16 22:27:47 +00:00
Adrien Prokopowicz
4321262fc5 [GB.XML]
* BUG: The XmlNode.Serialize() method does not crashes anymore if a null
  string is given.

git-svn-id: svn://localhost/gambas/trunk@5622 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2013-04-27 19:21:28 +00:00
Adrien Prokopowicz
5e94fa80a4 [GB.XML]
* BUG: The XmlNode.Serialize method does not crash anymore if nothing has
  been serialized.
* BUG: The XmlNode.Serialize method now correctly handles the " (") 
  serialization.

git-svn-id: svn://localhost/gambas/trunk@5621 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2013-04-27 13:08:27 +00:00
Adrien Prokopowicz
02b50b1267 [GB.XML]
* NEW: Adds a Serialize() static method in XmlNode that serializes the given text.
* BUG: Correctly handle prefix when parsing a document.
* BUG: XmlWriter now correctly serializes the text and attribute values.
* BUG: The XmlDocument constructor now correctly raises an error message instead of crashing with signal #6.

git-svn-id: svn://localhost/gambas/trunk@5037 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-08-12 21:58:13 +00:00
Adrien Prokopowicz
49718d9e08 [GB.XML]
* NEW: Added user data management in nodes. 

git-svn-id: svn://localhost/gambas/trunk@4965 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-17 21:16:04 +00:00
Adrien Prokopowicz
907dae4d24 [GB.XML]
* BUG: Moved the previousSibling and NextSibling properties from XmlElement to XmlNode, and added PreviousElement and NextElement, so that there is no confusion with the W3C standards.
* BUG: Addef forgotten property XmlReader.Node.IsEmptyElement.
* OPT: Some optimisations in character comparison when parsing data.

git-svn-id: svn://localhost/gambas/trunk@4960 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-17 11:36:30 +00:00
Adrien Prokopowicz
45c8dae965 [GB.XML]
* BUG: The XML Declaration is now optional, as mentioned in the W3C specification.
* BUG: The ChildNodes and Children properties have moved from XmlElement to XmlNode, as mentioned in the W3C specification.
* BUG: The XML Error analyzer does not crashes anymore if the error has no defined position.
* BUG: Doctype are now partially handled, i.e. there is no doctype interface yet, so they are silently ignored.


git-svn-id: svn://localhost/gambas/trunk@4959 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-16 19:34:23 +00:00
Adrien Prokopowicz
159390bc46 [GB.XML]
* BUG: Getting an attribute that doesn't exist doesn't crashes anymore, it returns a null string instead.
* BUG: The string comparison mode argument is now correctly handled by XmlElement.GetAttribute().

git-svn-id: svn://localhost/gambas/trunk@4927 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-09 22:22:11 +00:00
Adrien Prokopowicz
6d2b5d0ccd [GB.XML]
* NEW: The parser now raises complete error messages if parsing fails.
* BUG: Returning XmlDocuments does not crash anymore.

[GB.XML.XSLT]
* BUG: XSLT document parsing now correctly works

git-svn-id: svn://localhost/gambas/trunk@4810 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-05 21:17:45 +00:00
Adrien Prokopowicz
b2337ca7c7 [GB.XML]
OPT : Many code organization improvements, so that it is more readable
OPT : Directly uses char* into the nodes
OPT : Nodes have now pointers to their brothers and their parent, so that each Element behaves as a double-linked list
OPT : Improvements in gb.xml/gb.html linkage, so that ther isn't any including cpp files anymore
NEW : Added license agreements to the top of each source file
BUG : XmlNode.Attributes can't return Null anymore. If the node is not an Element, this property acts like there isn't any attribute.
BUG : Relationship between nodes are now correctly supported, so that every node is correctly released

git-svn-id: svn://localhost/gambas/trunk@4791 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-29 22:19:22 +00:00
Adrien Prokopowicz
95f477ead0 [GB.XML]
OPT : A few compilation optimizations in headers inclusions.
OPT : Use of separated internal classes of gambas objects. This might prevent from a lot of problems.
OPT : Strings are not stored as wchar_t* anymore, but as simple char*, and are converted only when necessary (like UTF8 characters verification).
OPT : Does not use STL classes anymore. They are too slow.  Uses now handmade classes.
OPT : Nodes are now internally linked to their brothers, so it makes find them really fasters, and allows no longer use of external linked list.
OPT : When creating new nodes, linked Gambas objects are created only when necessary, so it makes internals instanciations very faster (such as the parser).
OPT : Handmade string/memory classes and functions are now separated from the main.cpp component file.
OPT : Use specialized memory management functions (like memcpy, memchr ...) into the parser. They are really faster than C loops, and speeds up the parser for documents that have a lot of plain text.
OPT : Internally, the stream parser (XmlReader) takes only one char, not a unuseful wole string object.
OPT : Does not updates debugging data when parsing a file. They will be generated only if an error is raised (not implemented yet). It will allow a speedier parser and more precise informations.
BUG : When loading a document from a file, now correctly releases the file data.
BUG : Solved a few XmlReader uninitialized variables, that could make the stream parser crash or returns strange results.

git-svn-id: svn://localhost/gambas/trunk@4737 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-17 20:49:54 +00:00
Adrien Prokopowicz
5241ca29f0 [GB.XML]
* NEW : Two consecutives whitespaces (spaces, line-breaks ans tabulations) are now ignored.
* OPT : Parser now proceeds faster, and so parsing raw text is very faster.
* OPT : For input text, does not uses std::string anymore.
* OPT : For object instanciation, does not uses GB.FindClass() anymore (keeps results at component initialization).

git-svn-id: svn://localhost/gambas/trunk@4692 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-04-29 23:51:39 +00:00
Adrien Prokopowicz
89b4b18916 [GB.XML]
* NEW : Added a new property "State" to XmlExplorer and XmlReader, that allows to know the reader state, without knowing Read() return value.
* NEW : When enumerating XmlReader.Node.Attributes, XmlReader.Node represents the current attribute.
* NEW : Added an new method Open() that loads an HtmlDocument from a file and defines it as the document to read.
* NEW : The Attributes property has now moved from XmlElement to XmlNode. XmlNode.Attributes returns Null if the node isn't an element.
* NEW : Then enumeration of XmlNode.Attributes now returns an .XmlElementAttribute instead of a string.
* NEW : The XmlNode.Attribute constant is not obsolete anymore.
* NEW : Two consecutives whitespaces are now ignored (only one is preserved).
* NEW : When parsing a file, line-breaks and tabulations are replaced by spaces.
* BUG : XmlExplorer flags are now correctly initialized.
* BUG : Added an Eof property on XmlExplorer, that was missing.
* BUG : Calling XmlExplorer.Read() after Eof just returns XmlReaderNodeType.Eof, not more.
* BUG : Calling XmlNode.Next() when the node hasn't got any brother after him doesn't crash anymore, it just returns Null.
* BUG : Calling XmlElement.NextSibling() when the node hasn't got any element brother after him doesn't crash anymore, it just returns Null.
* BUG : By default, XmlReader correctly stops when reading the end of an element.
* BUG : XmlExplorer now correctly initializes and releases itself.
* BUG : XmlExplorer now correctly supports its read flags.
* OPT : Solved a memory leak when releasing a XmlReader.
* OPT : When setting text content to a XmlNode, the string is not duplicated anymore.
* OPT : When testing if characters are whitespaces or names characters while parsing texts, puts the temporary variable into registers instead of memory.

git-svn-id: svn://localhost/gambas/trunk@4669 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-04-24 23:47:14 +00:00
Adrien Prokopowicz
bcc54489c1 [GB.XML]
* NEW: New XML manipulation component

git-svn-id: svn://localhost/gambas/trunk@4644 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-04-20 22:57:18 +00:00