|
|
|
|
|
AST (w/ semantic attributes) representation and
manipulation of data/processes: |
|
-
manually in visual Flexforms |
|
-
automatically via High Level |
|
Design and/or C/C++ API |
|
|
|
|
|
|
XML Reverse Engineer & Generator |
|
|
|
XML Converter |
|
|
|
On-the_Job
Converter |
|
(planned) |
|
|
|
|
Create bison/yaac compatible XML grammar |
|
Flexsys automatically identifies terminal tokens |
|
Define patterns (regular expressions) for tokens |
|
Specify XML constructs to appear in Flexforms |
|
Specify relationships between Flexform structure
and productions in grammar |
|
Flexsys automatically generates default commands |
|
Customize commands as desired |
|
Flexsys automatically generates XML reverse
engineer and lexical analyzer |
|
|
|
|
Goal -> DTD
FULL_BODY |
|
DTD -> < !DOCTYPE ID [ ELEMENTS ] |
|
ELEMENTS -> < !ELEMENT ID ( ID_list ) > |
|
-> < !ELEMENT ID ( ID_list ) * > |
|
-> < !ELEMENT ELEMENTS |
|
ID_list
-> |
|
-> ID |
|
-> ID ID_list |
|
FULL_BODY -> < NAME > BODY |
|
BODY -> < ID > text < neg_ID > |
|
-> < ID > BODY < neg_ID > |
|
neg_ID -> < / ID > |
|
NAME -> < DOCUMENT > NOTE:
ID stands for identifier, and text for any text string. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Define DTD Patterns |
|
Flexsys Generates Code to Detect Patterns and
Assigns Names to Key Parts of Patterns |
|
Use High Level HLD Language to Manipulate
Patterns |
|
Flexsys Creates Custom Converter |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
XML lends itself to Flexform Representation |
|
|
|
Flexsys makes it easy to detect and manipulate
Flexform patterns |
|
|
|
Obvious Application: Use Flexsys to convert
between different XML documents (based on different DTD patterns) |
|
|
|
|
<? XML version = “1.”?> // globally applicable XML
prolog |
|
|
|
<!DOCTYPE DOCUMENT [ //Document Type Declaration |
|
<!ELEMENT DOCUMENT (CUSTOMER)*> |
|
// DTD
defines XML document |
|
<!ELEMENT CUSTOMER (NAME, ORDERS)> |
|
<!ELEMENT NAME (LAST_NAME, FIRST_NAME)> |
|
<!ELEMENT ORDERS (ITEM)*> |
|
]> |
|
|
|
|
|
NOTE: A DTD is equivalent to
a Flexsys program declaration. |
|
|
|
|
|
|
DOCUMENT |
|
CUSTOMER |
|
NAME |
|
LAST_NAME |
|
FIRST_NAME |
|
ORDERS |
|
ITEM |
|
|
|
|
|
NOTE: This has the advantage of making it easy
to check that otherwise valid XML documents conform to given DTD definition |
|
|
|
|
|
|
Represent Source/Target XML DTDs as Flexform
patterns |
|
--
extend reverse engineer |
|
Specify source -> target DTD mapping between
patterns |
|
--
available in Flexforms, w/ GUI option |
|
Automatically generate HLD conversion code from
the mapping --
preliminary plan |
|
|
|
|
|
|
|
|
Structured XML Editing |
|
Easier Maintenance |
|
Protection Against Standards Changes |
|
Automated Custom Conversions |
|
Ease of Use |
|
Extendable to Legacy Integration |
|
XML Commercialization Partner |
|