The Data Binding Library
xADL is defined in a set of XML schemas. As such, xADL architecture descriptions are simply XML documents that conform to the language defined in the xADL schemas.
While XML documents are plain ASCII and were originally designed to be human-readable and -writable, the advent of XML namespaces and multi-schema languages has made it difficult to do so. Here's a little snippet from an actual xADL document that illustrates why:
<?xml version="1.0" encoding="UTF-8"?> <instance:xArch xmlns:instance="http://www.ics.uci.edu/pub/arch/xArch/instance.xsd" xmlns:types="http://www.ics.uci.edu/pub/arch/xArch/types.xsd" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance" xsi:schemaLocation="http://www.ics.uci.edu/pub/arch/xArch/types.xsd http://www.ics.uci.edu/~edashofy/xArch/types.xsd http://www.ics.uci.edu/pub/arch/xArch/instance.xsd http://www.ics.uci.edu/~edashofy/xArch/instance.xsd"> <instance:archInstance xsi:type="instance:ArchInstance"> <instance:description xsi:type="instance:Description">Stack App</instance:description> <instance:componentInstance instance:id="stackAdt_inst" xsi:type="types:PrescribedComponentInstance"> <instance:description xsi:type="instance:Description">Stack ADT</instance:description> <instance:interfaceInstance instance:id="stackAdt_inst.top" xsi:type="instance:InterfaceInstance"> <instance:description xsi:type="instance:Description">Stack ADT Top Interface</instance:description> <instance:direction xsi:type="instance:Direction">inout</instance:direction> </instance:interfaceInstance> <instance:interfaceInstance instance:id="stackAdt_inst.bottom" xsi:type="instance:InterfaceInstance"> <instance:description xsi:type="instance:Description">Stack ADT Bottom Interface</instance:description> <instance:direction xsi:type="instance:Direction">inout</instance:direction> </instance:interfaceInstance> <types:structure xlink:href="#stackAdt" xsi:type="instance:XMLLink" xlink:type="simple"/> </instance:componentInstance> <instance:componentInstance instance:id="stackArtist_inst" xsi:type="instance:ComponentInstance"> <instance:description xsi:type="instance:Description">Stack Artist</instance:description> <instance:interfaceInstance instance:id="stackArtist_inst.top" xsi:type="instance:InterfaceInstance"> <instance:description xsi:type="instance:Description">Stack Artist Top Interface</instance:description> <instance:direction xsi:type="instance:Direction">inout</instance:direction> </instance:interfaceInstance> <instance:interfaceInstance instance:id="stackArtist_inst.bottom" xsi:type="instance:InterfaceInstance"> <instance:description xsi:type="instance:Description">Stack Artist Bottom Interface</instance:description> <instance:direction xsi:type="instance:Direction">inout</instance:direction> </instance:interfaceInstance> </instance:componentInstance> ...
As you can see, the amount of markup information required in a raw xADL document makes it prohibitive to write one by hand. However, tools can simplify this process greatly. The basis for tools that can edit xADL documents is the Data Binding Library, a Java library that contains classes for every XML schema type defined in the xADL schemas. The Data Binding Library is automatically generated by a tool called apigen.
It is especially important for ArchStudio component developers to familiarize themselves with the interface of the Data Binding Library. While this library is not directly called by ArchStudio components, it is called via the interface of the xArchADT component.
The Data Binding Library is available on the xADL website under Tools->Java Libraries. Its interface is available in Javadoc format here.
Contact Us
If you have questions not answered by this website, please feel free to
contact the software architectures group at UC Irvine through the
ArchStudio developer's (mailman protected) email list at:
archstudio-dev [@] uci
[.] edu. (Note: You must
subscribe to the mail list
before you can post to it.)