US7409636B2 - Lightweight application program interface (API) for extensible markup language (XML) - Google Patents

Lightweight application program interface (API) for extensible markup language (XML) Download PDF

Info

Publication number
US7409636B2
US7409636B2 US11/193,567 US19356705A US7409636B2 US 7409636 B2 US7409636 B2 US 7409636B2 US 19356705 A US19356705 A US 19356705A US 7409636 B2 US7409636 B2 US 7409636B2
Authority
US
United States
Prior art keywords
xml
type
node
data
component
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related, expires
Application number
US11/193,567
Other languages
English (en)
Other versions
US20070028163A1 (en
Inventor
Henricus Johannes Maria Meijer
Anders Hejlsberg
David L. Remy
Arpan A. Desai
Asad Jawahar
Andrew E. Kimball
Donald F. Box
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Priority to US11/193,567 priority Critical patent/US7409636B2/en
Assigned to MICROSOFT CORPORATION reassignment MICROSOFT CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BOX, DONALD, DESAI, ARPAN A., HEJLSBERG, ANDERS, JAWAHAR, ASAD, KIMBALL, ANDREW E., REMY, DAVID L., MEIJER, HENRICUS JOHANNES MARIA
Priority to CN2006800277728A priority patent/CN101233502B/zh
Priority to EP06774350A priority patent/EP1910930A4/fr
Priority to JP2008523902A priority patent/JP4384247B2/ja
Priority to PCT/US2006/025577 priority patent/WO2007018827A2/fr
Publication of US20070028163A1 publication Critical patent/US20070028163A1/en
Publication of US7409636B2 publication Critical patent/US7409636B2/en
Application granted granted Critical
Assigned to MICROSOFT TECHNOLOGY LICENSING, LLC reassignment MICROSOFT TECHNOLOGY LICENSING, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MICROSOFT CORPORATION
Expired - Fee Related legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/83Querying
    • G06F16/835Query processing
    • G06F16/8358Query translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]

Definitions

  • Markup languages and applications associated therewith continue to evolve and become commonplace in today's computing environments.
  • a markup language describes a set of labels that are embedded within text to distinguish groups of elements or individual elements for display or identification purposes.
  • the labels are known as “tags.”
  • Markup languages identify elements within a continuous stream of text rather than more structured data in a database.
  • One particular markup language extensible markup language (XML)
  • XML extensible markup language
  • XML is known as an open standard for describing data. Oftentimes, XML is employed to define data elements with respect to a web page and/or business-to-business documents. XML is similar in tag structure to Hypertext Markup Language (HTML). However, HTML defines how elements are to be displayed while XML defines the logical content of the elements.
  • HTML Hypertext Markup Language
  • HTML which uses predefined tags
  • XML enables a developer of a page to define tags.
  • virtually any data item can be identified using XML.
  • XML documents of fragments can function similar to database records.
  • database functionality can be employed upon XML fragments.
  • a business can use XML to define items such as product, customer and outstanding balance due. Accordingly, by using XML to identify these items, XML documents of fragments can be structured and function much like database records.
  • This common method for identifying data e.g., XML
  • EDI electronic data interchange
  • XML tags are defined in an XML schema, which identifies content type as well as the name of elements and attributes. Unlike HTML, which is known to employ a somewhat loose coding style tolerant of coding errors, convention XML pages have to be “well formed.”
  • the invention disclosed and claimed herein in one aspect thereof, comprises a system and methodology that leverages support for extensible markup language (XML) queries via a lightweight application program interface (API).
  • XML extensible markup language
  • API application program interface
  • These leveraged techniques enable the query of data models in addition to the XML structures described herein.
  • the leveraged techniques can also simplify construction of XML values in languages that do not natively support XML.
  • aspects of the described innovation can enable query languages to be factored into general operations on collections on one hand, and a set of domain specific operations on the elements of these collections on another hand.
  • Examples of general query operations that are particularly useful on any collection are mapping (e.g., projection) functions over collections, filtering elements from collections, grouping collections into partitions, sorting collections, and aggregating operations over collections to reduce them to values.
  • Examples of domain specific operations (e.g., actions) in the XML domain include the various “axis” functions such as selecting children, attributes, descendants, siblings, etc., element construction to create new XML nodes and node modification.
  • aspects of the invention disclose a lightweight and rational API that facilitates manipulation (e.g., constructing, querying, modifying) of markup language content (e.g., XML) and can interface with general query infrastructure(s) provided by an underlying application and/or host language. More particularly, an aspect of the subject API can support creation of XML that is node centric (e.g., context-free) as opposed to document centric. In other words, nodes do not have to be constructed within the context of a root document. As well, aspects can enable expression-oriented interface mechanisms as opposed to the imperative statement-oriented style interfaces used in conjunction with traditional interface mechanisms (e.g., DOM).
  • both elements and attributes are accessed in a similar fashion.
  • the same axis can be employed to access an element as can be used to access an attribute with an XML document and/or fragment.
  • other aspects employ mechanisms that do not have specific identify for text nodes and collections of attributes.
  • FIG. 1 illustrates a system that facilitates an object model that interfaces between an application and a markup language component in accordance with an aspect of the invention.
  • FIG. 2 illustrates a block diagram of an application program interface (API) having a navigation component, a construction component and a modification component in accordance with an aspect of the API.
  • API application program interface
  • FIG. 3 illustrates a block diagram of an API system having a navigation component and a receiver component in accordance with an aspect of the invention.
  • FIG. 4 illustrates a navigation component having an axis component, a sorting component and a namespace component in accordance with an aspect of the invention.
  • FIG. 5 illustrates an exemplary flow chart of procedures that facilitate navigating within a markup language component in accordance with an aspect of the invention.
  • FIG. 6 illustrates a block diagram of an API system having a construction component and a receiver component in accordance with an aspect of the invention.
  • FIG. 7 illustrates a system that employs an expression oriented statement and constructs a context-free node in accordance with an aspect of the invention.
  • FIG. 8 illustrates an exemplary flow chart of procedures that facilitate constructing context-free (e.g., node centric) nodes in accordance with an aspect.
  • FIG. 9 illustrates a block diagram of an API system having a modification component and an operator component in accordance with an aspect of the invention.
  • FIG. 10 illustrates a block diagram of a computer operable to execute the disclosed architecture.
  • FIG. 11 illustrates a schematic block diagram of an exemplary computing environment in accordance with the subject invention.
  • a component can be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer.
  • an application running on a server and the server can be a component.
  • One or more components can reside within a process and/or thread of execution, and a component can be localized on one computer and/or distributed between two or more computers.
  • the term to “infer” or “inference” refer generally to the process of reasoning about or inferring states of the system, environment, and/or user from a set of observations as captured via events and/or data. Inference can be employed to identify a specific context or action, or can generate a probability distribution over states, for example. The inference can be probabilistic—that is, the computation of a probability distribution over states of interest based on a consideration of data and events. Inference can also refer to techniques employed for composing higher-level events from a set of events and/or data. Such inference results in the construction of new events or actions from a set of observed events and/or stored event data, whether or not the events are correlated in close temporal proximity, and whether the events and data come from one or several event and data sources.
  • the subject invention leverages support for markup language data (e.g., XML) queries via a lightweight API.
  • markup language data e.g., XML
  • These leveraged techniques enable the query of data models in addition to the XML structures described herein.
  • the leveraged techniques can also simplify construction of XML values in languages that do not natively support XML.
  • aspects of the described innovation can enable query languages, including XQuery and SQL, to be factored into general operations on collections on the one hand, and a set of domain specific operations on the elements of these collections on the other hand.
  • general query operations that are particularly useful on any collection are mapping (e.g., projection) functions over collections, filtering elements from collections, grouping collections into partitions, sorting collections, and aggregating operations over collections to reduce them to values.
  • domain specific operations e.g., actions
  • XML domain include the various “axis” functions such as selecting children, attributes, descendants, siblings, etc., element construction to create new XML nodes and node modification.
  • FLOWR expressions in XQuery-brand environments are a form of comprehensions and are not in any way tied to operating over collections of XML nodes.
  • FLOWR expressions could be useful to express complex queries over collections of objects or relational tables of rows as well.
  • aspects of the invention disclose a lightweight, rational, and simple API for manipulating (e.g., constructing, querying, modifying) XML that can interface with a general query infrastructure(s) provided by an underlying application and/or host language.
  • the subject invention can support creation of XML that is node centric (e.g., context-free) as opposed to document centric.
  • aspects can enable expression-oriented interface mechanisms as opposed to the imperative statement-oriented style of traditional interface mechanisms (e.g., DOM).
  • the system 100 can include an application program interface (API) 102 that enables the application to interface and communicate with a markup language component 104 .
  • the API 102 can facilitate the application, such as a query component, to navigate within the markup language collection (e.g., markup language component 104 ) thereby identifying desired nodes therein.
  • APIs can be implemented by writing function calls in an application (e.g., query component), which provide the linkage to the required subroutine for execution.
  • an API can imply that some program module or API action component 106 is available in the computer to perform the operation or that it is linked into the existing program to perform the tasks.
  • the API 102 can employ 1 to M API action components, where M is an integer. As shown, 1 to M API action components can be referred to collectively or individually as API action components 106 . Moreover, although FIG. 1 illustrates API action components 106 integral to the API 102 , it is to be understood and appreciated that all or a subset of API action components 106 can be located remotely from the components illustrated.
  • API 102 can include an object model 108 .
  • the object model 108 can define node types specific to the markup language component 104 .
  • object model 108 can facilitate a mapping from the application (host language) to the markup language component 104 .
  • the object model 108 can be located local or remote from the API component 102 .
  • the structure of the API object model 108 can include the following node type and/or public classes. Although a specific naming convention is described infra, it is to be appreciated that any naming convention can be employed without departing from the novel functionality of the invention described herein and the scope of the claims appended hereto. Each of the node types of the exemplary object model are described in greater detail infra.
  • XName represents universal names composed of a namespace uniform resource identifier (URI) and a local name. Because, in accordance with the invention, elements and attributes are treated in the same manner, this class can be employed to represent the names of both elements and attributes. The system can implicitly convert from strings to these names. As such, a user does not explicitly construct the XName. Rather, a user can reference string names and the API 102 , to convert the string to the XName.
  • URI uniform resource identifier
  • This class can be employed to represent attributes.
  • the XAttribute class can be employed to obtain the value of the attribute in a typed manner. It is to be appreciated that attributes are distinct from XML nodes.
  • This class can be utilized as an abstract base class for the various XML node types.
  • This class can inherit from nodes that represent comments in a document.
  • the comment can be represented by an XComment node.
  • this class can inherit from a node that represents an XML comment such as ⁇ !--this is a comment-->.
  • this node can be used to represent XML processing instructions such as ⁇ ? ?>.
  • This node can be employed to represent an XML document type declaration such as ⁇ !DOCTYPE greeting SYSTEM “hello.dtd”>.
  • XContainer represents all of the nodes that have children. For example, comments, processing instructions, etc. only have one child or content.
  • the XElement and XDocument classes can have lower children which support this abstract base class called XContainer in this example.
  • this node, XDocument can represent a complete XML document.
  • the system 200 includes an API component 202 and a markup language collection 204 .
  • the API component 202 can include an object model 108 , a navigation component 206 , a construction component 208 , a modification component 210 and a receiver component 212 .
  • Each of these action components can employ the object model 108 to facilitate operations with respect to the markup language collection 204 .
  • Each of these components ( 206 , 208 , 210 ) will be discussed in greater detail with respect to the figures that follow.
  • a system 300 can include an API 202 that enables general query operators that navigate (e.g., via navigation component 206 ) and retrieve resultant data from a markup language collection 204 (e.g., XML fragments and/or collections of nodes).
  • markup language collection 204 can include 1 to N node components, where N is an integer. It will be appreciated that 1 to N node components can be referred to individually or collectively as node components 302 .
  • a query can be employed with respect to a local collection of nodes (e.g., 302 ).
  • collection 204 can include nodes 302 that are located remotely (e.g., from a different machine/location).
  • the query mechanism(s) e.g., navigation component 206
  • the query mechanism(s) can facilitate identification of relevant nodes based upon query criteria.
  • axis component 402 represents a mechanism to navigate from a given node 302 to other nodes 302 in an XML collection of nodes 204 . It is to be understood that a collection 204 in an XML structure can be representative of a hierarchical tree constructed of interrelated nodes 302 . Accordingly, the axis component 402 is a method that can facilitate navigating through the structure.
  • the axis component 402 can enable identification of a parent of a given node, all of the children of a given node, etc.
  • a mapping component (not shown) in conjunction with the object model 108 can facilitate such navigation and/or directional walking through the tree.
  • the API 202 contains several novel methods and/or mechanisms that correspond to the various axes (e.g., 402 ) for accessing attributes and elements.
  • these exemplary axis expressions can be represented by the corresponding axis functions.
  • conventional XPath-brand expressions are listed in the left hand column.
  • the corresponding axis expression in accordance with an aspect of the subject API 202 is listed in the right hand column.
  • the axis functions 402 can contain various levels of functionality.
  • an axis function can be employed with regard to a single item or on a source collection.
  • the axis component 402 can restrict the return values to nodes with a particular name. Accordingly, a user can restrict a search upon a collection. By way of further example, a user can query a collection for all of the child elements of a particular node or all of the child elements that share a certain name.
  • the axis functions can be employed to restrict the return values of a particular type. This can be particularly useful when searching for values (e.g., only give values of type string or type integer).
  • the invention employs a number of overloads for each axis (e.g., Descendants and SelfAndDescendants).
  • axis e.g., Descendants and SelfAndDescendants.
  • this list is not intended to be limiting in any way.
  • other axis functions exist with respect to other nodes in accordance with the invention and are to be included within the scope of this disclosure and claims appended hereto.
  • This function returns the parent of a node. This operates on XContainers where, as stated previously with respect to the exemplary object model 108 , all XContainers have children.
  • a user Given a node, a user can query for the parent of a node, and by employing this function to ask for its content, the system will render all of its children (e.g., content (e.g., values)).
  • content e.g., values
  • This axis returns elements with a particular name. In operation, it will return the first element with the specified name.
  • the next five axes have a return type of IEnumerable.
  • This axis effects a rendering of all of the child elements directly contained within the specified element.
  • this axis renders only the elements of a certain name.
  • the following three axes are variations of the functionality described supra.
  • This axis returns an attribute with the specified name.
  • XAttribute can be overloaded onto collections as well.
  • This function renders the children of children and the children of those children, etc. Effectively, this axis function recursively returns all of the children of a node.
  • the subject invention allows symmetry between Elements and Attributes.
  • elements and attributes are selected in the same way instead of using a method (e.g., Attributes(“foo”)) and an indexer [“bar”] (e.g., square brackets) as in the traditional APIs.
  • an indexer e.g., square brackets
  • a user can access both the element and/or attributes in the same manner. In other words, the only difference is that disparate axes are utilized while maintaining symmetry of the methods employed.
  • a user can query (e.g., via navigation component 206 ) for elements and, in turn, the system can return collections of elements. Subsequently, aspects enable a user to query for all of the attributes of the returned collection of elements. It is to be understood that this novel functionality allows a user to chain axes together with respect to a collections.
  • a query upon querying XML, can return a collection (or subset of a collection) of nodes.
  • the order of the rendered collection of nodes is maintained in document order. For example, if one node comes before another in a query result, one can interpret that the node comes before the subsequent resultant node in the document itself. This node will be encountered before the next. In other words, the order that nodes are returned as a result of a query are in the same order as the original document itself.
  • Some queries can disturb document order. For instance, in an XQuery-brand environment, the semantics facilitate automatically sorting the results into document order following every query. As will be appreciated, sorting in document order is very expensive. Aspects of the subject API 202 do not automatically sort in document order therefore the queries can be matched up.
  • the navigation component 206 can include a sorting component 404 that facilitates explicitly sorting in document order as desired.
  • aspects facilitate certain queries to disturb document order thereafter enabling explicit sorting as desired. It is a novel feature of the invention that aspects do not maintain document order. Additionally, document order can be effected via explicit sorting (e.g., sorting component 404 ). It will be appreciated that numerous methods and mechanisms of encoding information into the nodes that facilitate efficient sorting in document order. These methods and mechanisms can be understood by those skilled in the art and are to be considered within the scope of this specification and claims appended hereto.
  • the subject API 202 does not consider specific identity for text nodes and/or collections of attributes.
  • Conventional systems such as the standard DOM exposes an XML infoset data model that identifies information items at a finer granularity than the data model exposed by the invention described in this specification.
  • the data model of the subject invention can allow for a more efficient implementation, especially with respect to working set.
  • aspects of the subject innovation employ ordinary strings rather than text nodes. Additionally, adjacent strings are automatically merged thereby increasing the efficiency. In other words, the invention does not expose a separate AttributeCollection as in the traditional DOM. Rather, in accordance with aspects of the invention, each element directly maintains a (cyclic) linked list of attributes.
  • collections of attributes have identity.
  • collection of attributes of a node has itself something that can be distinguished. They can also distinguish text nodes.
  • the pieces of text are separate nodes themselves.
  • the pieces of text in mixed content are just normal strings. They are not special text nodes having specific identity and attached properties such as parent pointers and namespace nodes.
  • the subject invention employs a coarser view of the information set than traditional systems thereby distinguishing fewer properties of nodes. Unlike earlier systems that require distinguishing between nodes, the subject invention does not have to distinguish text nodes. Therefore, it will be understood that the subject system(s) can have a smaller memory footprint and a more efficient implementation than conventional systems.
  • the API 202 described herein can store the strings as type called XName. It will be understood that this is oftentimes referred to as string hashing. By employing this hashing technique to the API 202 described, pointers can be compared instead of strings. Thus, every time a new element name is created, the system can store (e.g., cache) the string and return the pointer to a new XName. Therefore if two names are represented by the same XName, they use the same pointer.
  • the problem is the table within the namespace component 406 can grow. Aspects of the invention can monitor growth (e.g., rate, size) and/or purge the name table based upon any defined criteria.
  • the “ClearNameCache” functionality is shown in the example that follows. Therefore, when the system compares again, it will discover that the name no longer exists and will reinsert the name accordingly. This monitoring and purging functionality gives explicit control over the name table corresponding to the namespace 406 . Additionally, the system can monitor growth and corresponding statistics thereby generating events when the table grows too quickly, etc.
  • a name in XML can consist of two parts, a local name which is like an element (e.g., book, author) and a namespace prefix. This two part naming convention is particularly useful because multiple elements can exist with a conflicting name in the same document. Therefore, aspects of the API 202 can put these names into a namespace 406 having a unique string by combining it with a prefix.
  • the API 202 can represent these fully qualified or universal names by having the namespace prefix incorporated and the local name appended to it. Every name can be composed of the namespace URI and the local name.
  • the API 202 employs a novel system and/or methodology to apply XML names and namespaces.
  • the XName class can represent universal or expanded names of the form “ ⁇ http://www.cars.com/xml ⁇ part” that are composed from a local element or attribute name “part” and a namespace URI “http://www.cars.com/xml”.
  • the XName class can allow for efficient comparison of XML names by entering strings and comparing object references. By providing an implicit conversion from strings to XNames, there is no need for users to construct XNames explicitly.
  • the XName class enters these strings. Therefore these names are not compared as strings because they are compared via the XName references. Since the subject API 202 provides implicit operators from strings, it is not necessary for a user to create this XName explicitly.
  • FIG. 5 illustrates a process flow diagram of a methodology of navigating through a structure (e.g., collection) of markup language (e.g., XML) nodes in accordance with an aspect of the invention.
  • a structure e.g., collection
  • markup language e.g., XML
  • FIG. 5 illustrates a process flow diagram of a methodology of navigating through a structure (e.g., collection) of markup language (e.g., XML) nodes in accordance with an aspect of the invention.
  • a navigation expression is received.
  • the navigation expression can be an axis statement that identifies a desired target(s) (e.g., value) within the collection.
  • the navigation expression can request the parents of a particular node.
  • the navigation expression (e.g., axis) can be analyzed at 504 .
  • the navigation expression can request the parents, grandparents, siblings, etc. of a particular node.
  • a context node can be identified at 506 .
  • This context node can define a starting point for the navigation expression.
  • a direction of navigation can be determined at 508 .
  • a node that satisfies the navigation expression can be identified at 510 .
  • a determination can be made if additional nodes exist. If additional nodes exist in the structure (e.g., tree), the process can return to 510 thus identifying the additional node(s). If additional nodes do not exist, a stop block is reached.
  • FIG. 6 a system 600 in accordance with yet another aspect of the invention is shown. More particularly, FIG. 6 illustrates a system 600 that facilitates constructing XML context-free fragments, nodes or collections of nodes.
  • XML APIs are imperative in structure.
  • XML nodes are constructed via a structured and particular sequence of commands.
  • the imperative sequence of commands begins with defining a node and continue by adding one child, another child, etc.
  • the subject API component 202 can employ a receiving component 212 that accepts a command (e.g., expression).
  • a command e.g., expression
  • the construction component 208 together with the object model 108 , can convert the expression into an XML fragment or collection 204 .
  • FIG. 7 illustrates an alternative block diagram of system 600 .
  • construction component 208 can receive an expression oriented language component 702 .
  • construction component 208 can be employed, in accordance with the object model component 108 , to convert the expression oriented language component 702 into a markup language collection 704 of nodes.
  • markup language collection 704 can include 1 to P context-free node components, where P is an integer. It is to be understood that 1 to P context-free node components can be referred to individually or collectively as context-free node components 706 .
  • the subject invention employs an expression oriented mechanism (e.g., expression oriented language component 702 ) to construct XML nodes (e.g., construction component 208 ).
  • an expression oriented mechanism e.g., expression oriented language component 702
  • the subject invention utilizes the novel expression oriented method of creating the nodes.
  • XML nodes are document centric. In other words, conventional XML nodes only live in the context of a document. These traditional nodes cannot live independently.
  • the subject API 202 generates context free nodes which can live independently from a document.
  • context-free node component 706 A novel feature of the context-free node component 706 is that these context-free node components 706 can be created autonomously and used as children of other nodes. Thus, in contrast to conventional systems and in accordance with the subject API 202 , context-free node components 706 do not have to live in the context of a document per se.
  • a novel feature of the invention is that when a node is designated as a child of another node, or if there a query returns a node that is to be included as a child, the construction component 208 can automatically clone the node when it already has a parent. It is to be understood that these nodes can only have one parent. Therefore, if a different node is selected as a parent of a node, the node can be automatically cloned thereby permitting the parenthood. To the contrary, conventional APIs mandate users to explicitly clone nodes.
  • the construction component 208 of system 600 can automatically check to determine if a parent exists for a node. If so, the construction component 208 can automatically clone and designate the new parent, the parent of the clone.
  • the result of this cloning is a novel context-free node construction.
  • parented nodes When parented nodes are used to construct new nodes, they can be automatically cloned to maintain the structure of the newly constructed node. However, nodes do not have to be parented and, in particular, nodes can exist independent of a document.
  • the example that follows is provided to add context to the invention and therefore, is not intended to limit the disclosure in any way.
  • XML fragments and documents are constructed in a functional or, expression-based manner instead of an imperative manner via a sequence of statements.
  • the following hierarchical XML element can be created utilizing the expression-oriented manner as illustrated below.
  • the above XML fragment can be created using this invention API 202 together with corresponding sub-components (e.g., construction component 208 , object model 108 ).
  • corresponding sub-components e.g., construction component 208 , object model 108 .
  • a single nested expression that is isomorphic to the structure of the resulting element can be written. For example:
  • XElement bib new XElement (“bib”, new XElement (“books”, new XElement (“book”, new XAttribute(“year”, “1999”), new XElement(“title”, “TCP/IP Illustrated”), new XElement (“author”, new XElement(“last”, “Stevens”), new XElement(“first”, “W.”) ), new XElement (“publisher”, “Addison-Wesley”), new XElement(“price”, 65.95) ) ) );
  • XmlElement publisher doc.CreateElement(“publisher);
  • this conventional method cannot be used in a query because when a user wants to return a new XML fragment as a result of a query, it is not always in the context of a particular document.
  • the ability to create context-free structures facilitates direct querying of the XML fragment. Aspects of the API 202 for querying rely on the fact that a user can create originals as expressions.
  • FIG. 8 illustrates a methodology of converting an expression oriented statement into an XML fragment.
  • an expression oriented statement is received.
  • a receiving component can be employed to accept an expression oriented statement from a construction component.
  • the received statement can be converted at 804 .
  • a construction component can be employed to convert the statement.
  • a determination can be made if the node created is to be parented. If not, an XML fragment can be generated from the converted expression at 808 .
  • the node can be cloned at 810 . Accordingly, the parent can be assigned at 812 . It is to be appreciated that the methodology of FIG. 8 can be employed for each node created.
  • system 900 can include an API component 202 that facilitates interfacing with a markup language collection 204 .
  • the markup language collection 204 can include a plurality of XML nodes having context-free and/or document centric nodes.
  • the API component 202 can include a modification component 210 having an operator component 902 .
  • the operator component 902 can facilitate manipulating a node itself, its parents, its children, etc. Following is an exemplary list of statements that update (e.g., manipulate) parents of a node. As well, examples of updating the current node itself are included thereafter.
  • This statement adds a new sibling to a node. More particularly, the statement facilitates, in the parent node, after the node, adding the specified node.
  • the modification component 210 in conjunction with the operator component 902 allows a user to perform in-place updates. In other words, the modification component 210 enables imperative modifications to the document in addition to functional construction.
  • FIG. 10 there is illustrated a block diagram of a computer operable to interface an application to a markup language component (e.g., XML).
  • a markup language component e.g., XML
  • FIG. 10 and the following discussion are intended to provide a brief, general description of a suitable computing environment 1000 in which the various aspects of the invention can be implemented. While the invention has been described above in the general context of computer-executable instructions that may run on one or more computers, those skilled in the art will recognize that the invention also can be implemented in combination with other program modules and/or as a combination of hardware and software.
  • program modules include routines, programs, components, data structures, etc., that perform particular tasks or implement particular abstract data types.
  • inventive methods can be practiced with other computer system configurations, including single-processor or multiprocessor computer systems, minicomputers, mainframe computers, as well as personal computers, hand-held computing devices, microprocessor-based or programmable consumer electronics, and the like, each of which can be operatively coupled to one or more associated devices.
  • the illustrated aspects of the invention may also be practiced in distributed computing environments where certain tasks are performed by remote processing devices that are linked through a communications network.
  • program modules can be located in both local and remote memory storage devices.
  • Computer-readable media can be any available media that can be accessed by the computer and includes both volatile and nonvolatile media, removable and non-removable media.
  • Computer-readable media can comprise computer storage media and communication media.
  • Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data.
  • Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disk (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by the computer.
  • Communication media typically embodies computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism, and includes any information delivery media.
  • modulated data signal means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
  • communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of the any of the above should also be included within the scope of computer-readable media.
  • the exemplary environment 1000 for implementing various aspects of the invention includes a computer 1002 , the computer 1002 including a processing unit 1004 , a system memory 1006 and a system bus 1008 .
  • the system bus 1008 couples system components including, but not limited to, the system memory 1006 to the processing unit 1004 .
  • the processing unit 1004 can be any of various commercially available processors. Dual microprocessors and other multi-processor architectures may also be employed as the processing unit 1004 .
  • the system bus 1008 can be any of several types of bus structure that may further interconnect to a memory bus (with or without a memory controller), a peripheral bus, and a local bus using any of a variety of commercially available bus architectures.
  • the system memory 1006 includes read-only memory (ROM) 1010 and random access memory (RAM) 1012 .
  • ROM read-only memory
  • RAM random access memory
  • a basic input/output system (BIOS) is stored in a non-volatile memory 1010 such as ROM, EPROM, EEPROM, which BIOS contains the basic routines that help to transfer information between elements within the computer 1002 , such as during start-up.
  • the RAM 1012 can also include a high-speed RAM such as static RAM for caching data.
  • the computer 1002 further includes an internal hard disk drive (HDD) 1014 (e.g., EIDE, SATA), which internal hard disk drive 1014 may also be configured for external use in a suitable chassis (not shown), a magnetic floppy disk drive (FDD) 1016 , (e.g., to read from or write to a removable diskette 1018 ) and an optical disk drive 1020 , (e.g., reading a CD-ROM disk 1022 or, to read from or write to other high capacity optical media such as the DVD).
  • the hard disk drive 1014 , magnetic disk drive 1016 and optical disk drive 1020 can be connected to the system bus 1008 by a hard disk drive interface 1024 , a magnetic disk drive interface 1026 and an optical drive interface 1028 , respectively.
  • the interface 1024 for external drive implementations includes at least one or both of Universal Serial Bus (USB) and IEEE 1394 interface technologies. Other external drive connection technologies are within contemplation of the subject invention.
  • the drives and their associated computer-readable media provide nonvolatile storage of data, data structures, computer-executable instructions, and so forth.
  • the drives and media accommodate the storage of any data in a suitable digital format.
  • computer-readable media refers to a HDD, a removable magnetic diskette, and a removable optical media such as a CD or DVD, it should be appreciated by those skilled in the art that other types of media which are readable by a computer, such as zip drives, magnetic cassettes, flash memory cards, cartridges, and the like, may also be used in the exemplary operating environment, and further, that any such media may contain computer-executable instructions for performing the methods of the invention.
  • a number of program modules can be stored in the drives and RAM 1012 , including an operating system 1030 , one or more application programs 1032 , other program modules 1034 and program data 1036 . All or portions of the operating system, applications, modules, and/or data can also be cached in the RAM 1012 . It is appreciated that the invention can be implemented with various commercially available operating systems or combinations of operating systems.
  • a user can enter commands and information into the computer 1002 through one or more wired/wireless input devices, e.g., a keyboard 1038 and a pointing device, such as a mouse 1040 .
  • Other input devices may include a microphone, an IR remote control, a joystick, a game pad, a stylus pen, touch screen, or the like.
  • These and other input devices are often connected to the processing unit 1004 through an input device interface 1042 that is coupled to the system bus 1008 , but can be connected by other interfaces, such as a parallel port, an IEEE 1394 serial port, a game port, a USB port, an IR interface, etc.
  • a monitor 1044 or other type of display device is also connected to the system bus 1008 via an interface, such as a video adapter 1046 .
  • a computer typically includes other peripheral output devices (not shown), such as speakers, printers, etc.
  • the computer 1002 may operate in a networked environment using logical connections via wired and/or wireless communications to one or more remote computers, such as a remote computer(s) 1048 .
  • the remote computer(s) 1048 can be a workstation, a server computer, a router, a personal computer, portable computer, microprocessor-based entertainment appliance, a peer device or other common network node, and typically includes many or all of the elements described relative to the computer 1002 , although, for purposes of brevity, only a memory/storage device 1050 is illustrated.
  • the logical connections depicted include wired/wireless connectivity to a local area network (LAN) 1052 and/or larger networks, e.g., a wide area network (WAN) 1054 .
  • LAN and WAN networking environments are commonplace in offices and companies, and facilitate enterprise-wide computer networks, such as intranets, all of which may connect to a global communications network, e.g., the Internet.
  • the computer 1002 When used in a LAN networking environment, the computer 1002 is connected to the local network 1052 through a wired and/or wireless communication network interface or adapter 1056 .
  • the adapter 1056 may facilitate wired or wireless communication to the LAN 1052 , which may also include a wireless access point disposed thereon for communicating with the wireless adapter 1056 .
  • the computer 1002 can include a modem 1058 , or is connected to a communications server on the WAN 1054 , or has other means for establishing communications over the WAN 1054 , such as by way of the Internet.
  • the modem 1058 which can be internal or external and a wired or wireless device, is connected to the system bus 1008 via the serial port interface 1042 .
  • program modules depicted relative to the computer 1002 can be stored in the remote memory/storage device 1050 . It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers can be used.
  • the computer 1002 is operable to communicate with any wireless devices or entities operatively disposed in wireless communication, e.g., a printer, scanner, desktop and/or portable computer, portable data assistant, communications satellite, any piece of equipment or location associated with a wirelessly detectable tag (e.g., a kiosk, news stand, restroom), and telephone.
  • any wireless devices or entities operatively disposed in wireless communication e.g., a printer, scanner, desktop and/or portable computer, portable data assistant, communications satellite, any piece of equipment or location associated with a wirelessly detectable tag (e.g., a kiosk, news stand, restroom), and telephone.
  • the communication can be a predefined structure as with a conventional network or simply an ad hoc communication between at least two devices.
  • Wi-Fi Wireless Fidelity
  • Wi-Fi is a wireless technology similar to that used in a cell phone that enables such devices, e.g., computers, to send and receive data indoors and out; anywhere within the range of a base station.
  • Wi-Fi networks use radio technologies called IEEE 802.11(a, b, g, etc.) to provide secure, reliable, fast wireless connectivity.
  • a Wi-Fi network can be used to connect computers to each other, to the Internet, and to wired networks (which use IEEE 802.3 or Ethernet).
  • Wi-Fi networks operate in the unlicensed 2.4 and 5 GHz radio bands, at an 11 Mbps (802.11a) or 54 Mbps (802.11b) data rate, for example, or with products that contain both bands (dual band), so the networks can provide real-world performance similar to the basic 10 BaseT wired Ethernet networks used in many offices.
  • the system 1100 includes one or more client(s) 1102 .
  • the client(s) 1102 can be hardware and/or software (e.g., threads, processes, computing devices).
  • the client(s) 1102 can house cookie(s) and/or associated contextual information by employing the invention, for example.
  • the system 1100 also includes one or more server(s) 1104 .
  • the server(s) 1104 can also be hardware and/or software (e.g., threads, processes, computing devices).
  • the servers 1104 can house threads to perform transformations by employing the invention, for example.
  • One possible communication between a client 1102 and a server 1104 can be in the form of a data packet adapted to be transmitted between two or more computer processes.
  • the data packet may include a cookie and/or associated contextual information, for example.
  • the system 1100 includes a communication framework 1106 (e.g., a global communication network such as the Internet) that can be employed to facilitate communications between the client(s) 1102 and the server(s) 1104 .
  • a communication framework 1106 e.g., a global communication network such as the Internet
  • Communications can be facilitated via a wired (including optical fiber) and/or wireless technology.
  • the client(s) 1102 are operatively connected to one or more client data store(s) 1108 that can be employed to store information local to the client(s) 1102 (e.g., cookie(s) and/or associated contextual information).
  • the server(s) 1104 are operatively connected to one or more server data store(s) 1110 that can be employed to store information local to the servers 1104 .

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Document Processing Apparatus (AREA)
US11/193,567 2005-07-29 2005-07-29 Lightweight application program interface (API) for extensible markup language (XML) Expired - Fee Related US7409636B2 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US11/193,567 US7409636B2 (en) 2005-07-29 2005-07-29 Lightweight application program interface (API) for extensible markup language (XML)
PCT/US2006/025577 WO2007018827A2 (fr) 2005-07-29 2006-06-29 Interface de programmation d'application (api) legere pour langage de balisage extensible (xml)
EP06774350A EP1910930A4 (fr) 2005-07-29 2006-06-29 Interface de programmation d'application (api) legere pour langage de balisage extensible (xml)
JP2008523902A JP4384247B2 (ja) 2005-07-29 2006-06-29 拡張可能マークアップ言語(xml)のための軽量なアプリケーションプログラムインターフェース(api)
CN2006800277728A CN101233502B (zh) 2005-07-29 2006-06-29 用于可扩展标记语言(xml)的轻量应用程序编程接口(api)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/193,567 US7409636B2 (en) 2005-07-29 2005-07-29 Lightweight application program interface (API) for extensible markup language (XML)

Publications (2)

Publication Number Publication Date
US20070028163A1 US20070028163A1 (en) 2007-02-01
US7409636B2 true US7409636B2 (en) 2008-08-05

Family

ID=37695781

Family Applications (1)

Application Number Title Priority Date Filing Date
US11/193,567 Expired - Fee Related US7409636B2 (en) 2005-07-29 2005-07-29 Lightweight application program interface (API) for extensible markup language (XML)

Country Status (5)

Country Link
US (1) US7409636B2 (fr)
EP (1) EP1910930A4 (fr)
JP (1) JP4384247B2 (fr)
CN (1) CN101233502B (fr)
WO (1) WO2007018827A2 (fr)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090292984A1 (en) * 2008-05-21 2009-11-26 Frederic Bauchot Method and system to selectively secure the display of advertisements on web browsers
US7992140B2 (en) 2005-07-29 2011-08-02 Microsoft Corporation Compiler supporting programs as data objects
US20120066583A1 (en) * 2010-09-10 2012-03-15 Evan Priestley Efficient event delegation in browser scripts
US8813026B1 (en) * 2011-09-30 2014-08-19 Emc Corporation Methods and apparatus for storing information for components of a system in model component files to provide a world view of the system
CN104965892A (zh) * 2015-06-17 2015-10-07 重庆邮电大学 一种无线传感器网络中基于字典的xmpp压缩方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7860823B2 (en) * 2006-05-04 2010-12-28 Microsoft Corporation Generic interface for deep embedding of expression trees in programming languages
US8037404B2 (en) * 2009-05-03 2011-10-11 International Business Machines Corporation Construction and analysis of markup language document representing computing architecture having computing elements
CN103324470B (zh) * 2012-03-21 2017-09-22 阿里巴巴集团控股有限公司 一种Web系统生成的方法和装置
CN107741925B (zh) * 2017-11-07 2020-11-20 济南市市政工程设计研究院(集团)有限责任公司 地下管线勘测数据自动转换方法、装置
CN112740635B (zh) * 2019-02-21 2022-04-05 华为技术有限公司 报文解析的方法、数据发送端、数据接收端和系统
CN110377273B (zh) * 2019-07-01 2023-07-28 北京字节跳动网络技术有限公司 一种数据处理的方法、装置、介质和电子设备
CN111125440B (zh) * 2019-12-09 2022-08-23 重庆邮电大学 一种基于Monad的持久层复合条件查询方法与存储介质
CN111815175B (zh) * 2020-07-08 2021-01-29 睿智合创(北京)科技有限公司 一种嵌套列表形式的五层结构xml语言交互应用方法

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6635089B1 (en) * 1999-01-13 2003-10-21 International Business Machines Corporation Method for producing composite XML document object model trees using dynamic data retrievals
US20040015783A1 (en) * 2002-06-20 2004-01-22 Canon Kabushiki Kaisha Methods for interactively defining transforms and for generating queries by manipulating existing query data
US6690981B1 (en) * 2000-05-04 2004-02-10 National Instruments Corporation System and method for encapsulating user interface code for a graphical program
US20040060007A1 (en) * 2002-06-19 2004-03-25 Georg Gottlob Efficient processing of XPath queries
US20040098384A1 (en) * 2002-11-14 2004-05-20 Jun-Ki Min Method of processing query about XML data using APEX
US20040210828A1 (en) * 2001-08-05 2004-10-21 Amir Langer Web interaction system which enables a mobile telephone to interact with web resources
US20040243921A1 (en) * 2003-05-30 2004-12-02 Carr Steven Paul Methods and systems for synchronizing document elements
US20040260691A1 (en) * 2003-06-23 2004-12-23 Desai Arpan A. Common query runtime system and application programming interface
US20050027681A1 (en) * 2001-12-20 2005-02-03 Microsoft Corporation Methods and systems for model matching
US20050055336A1 (en) * 2003-09-05 2005-03-10 Hui Joshua Wai-Ho Providing XML cursor support on an XML repository built on top of a relational database system
US20050138073A1 (en) * 2003-12-22 2005-06-23 International Business Machines Corporation Method, computer program product, and system of optimized data translation from relational data storage to hierarchical structure
US6993529B1 (en) * 2001-06-01 2006-01-31 Revenue Science, Inc. Importing data using metadata
US20060031763A1 (en) * 2003-03-22 2006-02-09 Telefonaktiebolaget Lm Ericsson (Publ) System and method relating to access of information
US20060179068A1 (en) * 2005-02-10 2006-08-10 Warner James W Techniques for efficiently storing and querying in a relational database, XML documents conforming to schemas that contain cyclic constructs
US7114147B2 (en) * 2000-03-09 2006-09-26 Electronic Data Systems Corporation Method and system for reporting XML data based on precomputed context and a document object model
US7117216B2 (en) * 2001-06-07 2006-10-03 Sun Microsystems, Inc. Method and apparatus for runtime merging of hierarchical trees
US20070067716A1 (en) * 2002-04-16 2007-03-22 Samsung Electronics Co., Ltd. Information storage medium on which interactive contents version information is recorded, and recording and/or reproducing method and apparatus

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6635089B1 (en) * 1999-01-13 2003-10-21 International Business Machines Corporation Method for producing composite XML document object model trees using dynamic data retrievals
US7114147B2 (en) * 2000-03-09 2006-09-26 Electronic Data Systems Corporation Method and system for reporting XML data based on precomputed context and a document object model
US6690981B1 (en) * 2000-05-04 2004-02-10 National Instruments Corporation System and method for encapsulating user interface code for a graphical program
US6993529B1 (en) * 2001-06-01 2006-01-31 Revenue Science, Inc. Importing data using metadata
US7117216B2 (en) * 2001-06-07 2006-10-03 Sun Microsystems, Inc. Method and apparatus for runtime merging of hierarchical trees
US20040210828A1 (en) * 2001-08-05 2004-10-21 Amir Langer Web interaction system which enables a mobile telephone to interact with web resources
US20050027681A1 (en) * 2001-12-20 2005-02-03 Microsoft Corporation Methods and systems for model matching
US20070067716A1 (en) * 2002-04-16 2007-03-22 Samsung Electronics Co., Ltd. Information storage medium on which interactive contents version information is recorded, and recording and/or reproducing method and apparatus
US20040060007A1 (en) * 2002-06-19 2004-03-25 Georg Gottlob Efficient processing of XPath queries
US20040015783A1 (en) * 2002-06-20 2004-01-22 Canon Kabushiki Kaisha Methods for interactively defining transforms and for generating queries by manipulating existing query data
US20040098384A1 (en) * 2002-11-14 2004-05-20 Jun-Ki Min Method of processing query about XML data using APEX
US20060031763A1 (en) * 2003-03-22 2006-02-09 Telefonaktiebolaget Lm Ericsson (Publ) System and method relating to access of information
US20040243921A1 (en) * 2003-05-30 2004-12-02 Carr Steven Paul Methods and systems for synchronizing document elements
US20040260691A1 (en) * 2003-06-23 2004-12-23 Desai Arpan A. Common query runtime system and application programming interface
US20050055336A1 (en) * 2003-09-05 2005-03-10 Hui Joshua Wai-Ho Providing XML cursor support on an XML repository built on top of a relational database system
US20050138073A1 (en) * 2003-12-22 2005-06-23 International Business Machines Corporation Method, computer program product, and system of optimized data translation from relational data storage to hierarchical structure
US20060179068A1 (en) * 2005-02-10 2006-08-10 Warner James W Techniques for efficiently storing and querying in a relational database, XML documents conforming to schemas that contain cyclic constructs

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
Boifati et al., Pushing Reactive Services to XML Repositories Using Active Rules, ACM 2001, pp. 633-641. *
Bonifati, et al. "Pushing Reactive Services to XML Repositories using Active Rules", ACM 2001, 9 pages.
International Search Report dated Jul. 16, 2007 for PCT Application Serial No. PCT/US06/25577, 4 Pages.
Sundaresan et al., Algorithms and Programming Models for Efficient Representation of XML for Internet Applications, ACM 2001, pp. 366-375. *
Sundaresan, et al. "Algorithms and Programming Models for Efficient Representation of XML for Internet Applications", ACM 2001, 10 pages.
Vieira, et al. "XVerter: Querying XML Data with OR-DBMS", ACM 2003, 8 pages.
Vieria et al., Xverter : Querying XML Data with OR-DBMS, ACM 2003, pp. 37-44. *
Wong, The Extended XQL for Querying and Updating Large XML Databases, ACM Nov. 2001, pp. 95-104. *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7992140B2 (en) 2005-07-29 2011-08-02 Microsoft Corporation Compiler supporting programs as data objects
US8458678B2 (en) 2005-07-29 2013-06-04 Microsoft Corporation Compiler supporting programs as data objects
US20090292984A1 (en) * 2008-05-21 2009-11-26 Frederic Bauchot Method and system to selectively secure the display of advertisements on web browsers
US8086957B2 (en) * 2008-05-21 2011-12-27 International Business Machines Corporation Method and system to selectively secure the display of advertisements on web browsers
US20120066583A1 (en) * 2010-09-10 2012-03-15 Evan Priestley Efficient event delegation in browser scripts
US8307277B2 (en) * 2010-09-10 2012-11-06 Facebook, Inc. Efficient event delegation in browser scripts
US20150178254A1 (en) * 2010-09-10 2015-06-25 Facebook, Inc. Efficient Event Delegation In Browser Scripts
US9740669B2 (en) * 2010-09-10 2017-08-22 Facebook, Inc. Efficient event delegation in browser scripts
US10346521B2 (en) 2010-09-10 2019-07-09 Facebook, Inc. Efficient event delegation in browser scripts
US8813026B1 (en) * 2011-09-30 2014-08-19 Emc Corporation Methods and apparatus for storing information for components of a system in model component files to provide a world view of the system
CN104965892A (zh) * 2015-06-17 2015-10-07 重庆邮电大学 一种无线传感器网络中基于字典的xmpp压缩方法
CN104965892B (zh) * 2015-06-17 2018-08-14 重庆邮电大学 一种无线传感器网络中基于字典的xmpp压缩方法

Also Published As

Publication number Publication date
JP4384247B2 (ja) 2009-12-16
WO2007018827A2 (fr) 2007-02-15
WO2007018827A3 (fr) 2007-09-13
CN101233502A (zh) 2008-07-30
JP2009503679A (ja) 2009-01-29
EP1910930A4 (fr) 2011-03-02
EP1910930A2 (fr) 2008-04-16
CN101233502B (zh) 2011-11-23
US20070028163A1 (en) 2007-02-01

Similar Documents

Publication Publication Date Title
US7409636B2 (en) Lightweight application program interface (API) for extensible markup language (XML)
AU2004237062B2 (en) Retaining hierarchical information in mapping between XML documents and relational data
US6836778B2 (en) Techniques for changing XML content in a relational database
US7231386B2 (en) Apparatus, method, and program for retrieving structured documents
US8762410B2 (en) Document level indexes for efficient processing in multiple tiers of a computer system
US8447785B2 (en) Providing context aware search adaptively
JP5320438B2 (ja) Xmlデータ記憶、クエリー再書込、ビジュアライゼーション、マッピング、および参照のための方法および装置
US20070219959A1 (en) Computer product, database integration reference method, and database integration reference apparatus
US20060101320A1 (en) System and method for the storage, indexing and retrieval of XML documents using relational databases
US20030135825A1 (en) Dynamically generated mark-up based graphical user interfaced with an extensible application framework with links to enterprise resources
Rys Bringing the Internet to your database: Using SQL Server 2000 and XML to build loosely-coupled systems
US8145641B2 (en) Managing feature data based on spatial collections
US20070016605A1 (en) Mechanism for computing structural summaries of XML document collections in a database system
IL157575A (en) Encoding structural information in part for efficient search and browsing of information
US7457812B2 (en) System and method for managing structured document
AU2007275507C1 (en) Semantic aware processing of XML documents
US20040122795A1 (en) Method, system, and program for optimizing processing of nested functions
Pluempitiwiriyawej et al. A classification scheme for semantic and schematic heterogeneities in XML data sources
US7805424B2 (en) Querying nested documents embedded in compound XML documents
JP2001344267A (ja) Xml文書問い合わせ言語処理装置
Peng High performance xpath evaluation in xml streams

Legal Events

Date Code Title Description
AS Assignment

Owner name: MICROSOFT CORPORATION, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MEIJER, HENRICUS JOHANNES MARIA;HEJLSBERG, ANDERS;REMY, DAVID L.;AND OTHERS;REEL/FRAME:016404/0826;SIGNING DATES FROM 20050726 TO 20050728

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034543/0001

Effective date: 20141014

FPAY Fee payment

Year of fee payment: 8

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20200805