xADL Foundations:
Data Binding Library

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.)

Portions of this site Copyright © The Regents of the University of California. All Rights Reserved Worldwide. The development of ArchStudio was initially funded by the DARPA DASADA (Dynamic Assembly for Systems Adaptability, Dependability, and Assurance) program. The site now includes results from projects supported in part by National Science Foundation grants IIS-0205724 and CCF-0430066, The Boeing Company, and IBM.

Site Meter