Machine-oriented extensible document representation and interchange notation
First Claim
1. A computer program product embodied on one or more computer-readable media, the computer program product adapted for encoding a document in an extensible machine-oriented structured notation and comprising:
- computer-readable program code means for encoding a node count representing a count of nodes in the document;
computer-readable program code means for encoding a node specification for each of the nodes, further comprising;
computer-readable program code means for encoding a node name;
computer-readable program code means for encoding a child list specifying index values of zero or more nodes which are children of the node;
computer-readable program code means for encoding an attribute list specifying zero or more attribute pair references for attributes of the node, each attribute pair reference comprising an attribute name and an attribute value; and
computer-readable program code means for encoding a node value specification, which is empty if the node has no value;
computer-readable program code means for encoding a data buffer containing attribute names and attribute values referenced from the attribute lists and node values referenced from the node value specifications; and
computer-readable program code means for storing the encoded node count, the encoded node specifications, and the encoded data buffer as the encoded document in memory or writing the encoded document to one or more storage media.
1 Assignment
0 Petitions
Accused Products
Abstract
A machine-oriented notation for representation and interchange of extensible documents: a method, system, and computer program product for operating upon (e.g. parsing, and storing documents in) this notation. The notation, referred to herein as “mXML” for “machine-oriented XML”, is designed to be more compact than the Extensible Markup Language (XML), while still conveying the content and semantics of the data and the structure of the document. Documents may be created directly in mXML. In general case, a document represented using mXML notation can be processed more efficiently than when using the existing human-friendly XML notation, requires less storage space, and has a lower transmission cost for data interchange. XML documents can be converted to mXML using techniques of the present invention, and vice versa. Techniques disclosed herein are also applicable to notations other than XML.
44 Citations
23 Claims
-
1. A computer program product embodied on one or more computer-readable media, the computer program product adapted for encoding a document in an extensible machine-oriented structured notation and comprising:
-
computer-readable program code means for encoding a node count representing a count of nodes in the document;
computer-readable program code means for encoding a node specification for each of the nodes, further comprising;
computer-readable program code means for encoding a node name;
computer-readable program code means for encoding a child list specifying index values of zero or more nodes which are children of the node;
computer-readable program code means for encoding an attribute list specifying zero or more attribute pair references for attributes of the node, each attribute pair reference comprising an attribute name and an attribute value; and
computer-readable program code means for encoding a node value specification, which is empty if the node has no value;
computer-readable program code means for encoding a data buffer containing attribute names and attribute values referenced from the attribute lists and node values referenced from the node value specifications; and
computer-readable program code means for storing the encoded node count, the encoded node specifications, and the encoded data buffer as the encoded document in memory or writing the encoded document to one or more storage media.
-
-
2. A computer program product embodied on one or more computer-readable media, the computer program product adapted for processing a document encoded in an extensible machine-oriented structured notation and comprising:
-
computer-readable program code means for parsing the document, further comprising;
computer-readable program code means for parsing a node count representing a count of nodes in the document;
computer-readable program code means for parsing a node specification for each of the nodes, further comprising;
computer-readable program code means for parsing a node name;
computer-readable program code means for parsing a child list specifying index values of zero or more nodes which are children of the node;
computer-readable program code means for parsing an attribute list specifying zero or more attribute pair references for attributes of the node, each attribute list reference comprising an attribute name and an attribute value; and
computer-readable program code means for parsing a node value specification, which is empty if the node has no value; and
computer-readable program code means for parsing a data buffer containing attribute names and attribute values referenced from the attribute lists and node values referenced from the node value specifications; and
computer-readable program code means for using the parsed document as input for the processing.
-
-
3. A computer program product embodied on one or more computer-readable media, the computer program product adapted for converting an input document encoded in an extensible human-friendly extensible markup language (“
- XML”
) to an output document encoded in a machine-oriented extensible markup language (“
mXML”
) and comprising;computer-readable program code means for creating a document tree representation of the input document;
computer-readable program code means for obtaining a node count representing a count of nodes in the document tree representation;
computer-readable program code means for writing the node count to an mXML buffer;
computer-readable program code means for traversing each node in the document tree representation and generating a corresponding node specification in the mXML buffer, further comprising;
computer-readable program code means for generating a node name;
computer-readable program code means for generating an attribute list specifying zero or more attribute pair references for attributes of the node, each attribute pair reference comprising an attribute name and an attribute value;
computer-readable program code means for generating a child list specifying index values of zero or more nodes which are children of the node; and
computer-readable program code means for generating a node value specification, which is empty if the node has no value;
computer-readable program code means for generating a data buffer containing attribute names and attribute values referenced from the attribute lists and node values referenced from the node value specifications; and
computer-readable program code means for appending the data buffer to the mXML buffer to form the output document. - View Dependent Claims (4, 5, 6, 7, 8, 9, 10, 11)
- XML”
-
12. A method for encoding a document in an extensible machine-oriented structured notation, comprising the steps of:
-
encoding a node count representing a count of nodes in the document;
encoding a node specification for each of the nodes, further comprising the steps of;
encoding a node name;
encoding a child list specifying index values of zero or more nodes which are children of the node;
encoding an attribute list specifying zero or more attribute pair references for attributes of the node, each attribute pair reference comprising an attribute name and an attribute value; and
encoding a node value specification, which is empty if the node has no value;
encoding a data buffer containing attribute names and attribute values referenced from the attribute lists and node values referenced from the node value specifications; and
storing the encoded node count, the encoded node specifications, and the encoded data buffer as the encoded document in memory or writing the encoded document to one or more storage media.
-
-
13. A method for processing a document encoded in an extensible machine-oriented structured notation, comprising the steps of:
-
parsing the document, further comprising the steps of;
parsing a node count representing a count of nodes in the document;
parsing a node specification for each of the nodes, further comprising the steps of;
parsing a node name;
parsing a child list specifying index values of zero or more nodes which are children of the node;
parsing an attribute list specifying zero or more attribute pair references for attributes of the node, each attribute pair reference comprising an attribute name and an attribute value; and
parsing a node value specification, which is empty if the node has no value; and
parsing a data buffer containing attribute names and attribute values referenced from the attribute lists and node values referenced from the node value specifications; and
using the parsed document as input for the processing.
-
-
14. A method for converting an input document encoded in an extensible human-friendly extensible markup language (“
- XML”
) to an output document encoded in a machine-oriented extensible markup language (“
mXML”
), comprising the steps of;creating a document tree representation of the input document;
obtaining a node count representing a count of nodes in the document tree representation;
writing the node count to an mXML buffer;
traversing each node in the document tree representation and generating a corresponding node specification in the mXML buffer, further comprising the steps of;
generating a node name;
generating an attribute list specifying zero or more attribute pair references for attributes of the node, each attribute pair reference comprising an attribute name and an attribute value;
generating a child list specifying index values of zero or more nodes which are children of the node; and
generating a node value specification, which is empty if the node has no value;
generating a data buffer containing attribute names and attribute values referenced from the attribute lists and node values referenced from the node value specifications; and
appending the data buffer to the mXML buffer to form the output document. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22)
- XML”
-
23. A method for encoding a document in an extensible machine-oriented structured notation, comprising the steps of:
-
encoding a node count representing a count of nodes in the document;
encoding a node specification for each of the nodes, further comprising the steps of;
encoding a node name;
encoding a child list specifying index values of zero or more nodes which are children of the node; and
encoding a node value specification, which is empty if the node has no value;
encoding a data buffer containing node values referenced from the node value specifications; and
storing the encoded node count, the encoded node specifications, and the encoded data buffer as the encoded document in memory or writing the encoded document to one or more storage media.
-
Specification