Patent ID: 7913172

Claim:
A computer program product comprising a nontransitory computer-readable medium having computer usable program code executable to perform operations to control access to an Extensible Markup Language (XML) document comprising a plurality of nodes and a plurality of paths between each of the nodes, the operations of the computer program product comprising: referencing a schema definition comprising a path security label definition associated with a sibling-to-sibling pa˜ relationship of an XML document, the path security label definition defining access rights for the sibling-to-sibling relationship, the sibling-to-sibling relationship comprising a relationship between a first child node and a second child node, the first child node and the second child node descending from a parent node, the XML document further comprising a parent path security label definition associated with a parent-to-child path, the parent path security label definition defining access rights for the parent-to-child path, the parent-to-child path comprising a path between the parent node and the first child node, while simultaneously denying access to all paths leading to the first child node; receiving an XML document to be validated by comparison with the schema definition; comparing the XML document to the schema definition; verifying that the XML document has a path security label associated with the sibling-to-sibling relationship that is at least as restrictive as that specified by the path security label definition of the schema definition for the first child node and the second child node associated with the sibling-to-sibling relationship; determining an access security label assigned to a user seeking to access the sibling-to-sibling relationship protected by the path security label; comparing, using pre-determined access rules, the additional path security label to the access security label to determine whether the user is authorized to access the parent-to-child path; comparing, using the pre-determined access rules, the path security label to the access security label to determine whether the user is authorized to access the sibling-to-sibling relationship; and controlling access to the sibling-to-sibling relationship and the parent-to-child path for the first child node in accordance with the access rules.