How to Boost Database Development Productivity on Linux, Docker, and Kubernetes with Microsoft SQL Server 2017
- buffer state - shows where we are parsing from
- parsing state - shows what we have found
XmlParser makes extensive use of offsets to keep track of its state. This is done by design. In order to maximize speed it does not do any string copies.
To start parsing declare an instance of the class XmlStream, setup the buffer that you want to parse. An example is included in Parser.cpp. Then call parse in XmlStream passing in a pointer to the buffer, and the buffers length. You will see screen output showing what has been found. This is simple debug output and can be turned off.
Notice that no xml document declaration is included nor is a schema included. If those exist in your buffer don't send them to the parser. Later, the ability to remove these, will added in the code to step through these. so this is a nonvalidating parser. There is one bug in the parser. When an empty node is encountered it will be reported as an element this will be fixed later. An example of this is included in the sample code. If you have any suggestions or improvements let me know.