DynamicDOM is an extension of the W3C DOM (Document Object Model) that adds dynamism to XML. For example, it allows you to define rules so that when you change, say, the TotalIncome node, the IncomeTax node updates automatically.
Just as C++ adds code to the C struct to create a class, DynamicDOM adds intelligence, in the form of rules and code, to the DOM to expand its capabilities beyond parsing XML documents to processing and enforcing business rules. Your XML document, then, becomes dynamic in the sense that it contains rules and code in addition to data, and updates itself automatically based predefined rules.
The DynamicDOM, through the XRules XML business rules language, allows you to define:
- Constraints: Restrictions on the content of an XML Document that must be satisfied for the document to be valid. For example:
- OrderClosingDate must be greater than .
- The attribute @BookID must be unique within the scope of a <Library> element, but can be repeated outside that scope.
- Calculations: Formulas that describe how values of XML nodes (elements and attributes) in an XML document are calculated from the values of other nodes. For example:
- The value of the Tax element is equal to: Total * SalesTaxPercent.
- SalesTaxPercent is 0.08 if State=CA, 0.06 if State=NJ, etc.
- Properties: Values that you can attach to XML elements and attributes to identify or describe them. For example, attach the property IsIgnored to the CreditCardNumber node when the pay type is cash so that your program knows to skip it in the validation. Properties can be attached by code, or through the XRules <property> rule, or automatically generated based on other rules that apply to the node.
This project is wirtten in C# and extends the .NET XmlDocument class to create DXmlDocument and to add dynamic XML behavior and the capability to process XRules documents.
For more information visit:
XRules Home Page
DynamicDOM API Documentation
Licensed under the DynamicDOM Software License version 1.0.