| | # Quick Start |
| | |
| | -Test that the grammar compiles, builds, and successfully parses an example |
| | -file using: |
| | +Compile, build, and parse the example using: |
| | |
| | gradle clean build javadoc run -Pargs=test/people.rxm |
| | |
| | # Usage |
| | |
| | -This section shows how to invoke the Java API to generate documents. |
| | +This section describes how to invoke the Java API to generate documents. |
| | |
| | ## Basic |
 |
| | ## Map |
| | |
| | -Each line in the mapping consists primarily of a database entity on the left |
| | -and an expression on the right. An example mapping follows: |
| | +Each comma-terminated line consists primarily of a database entity on the left |
| | +and an expression on the right. For example: |
| | |
| | ``` |
| | -root > people, # "root" keyword starts the document |
| | -person > person, # maps table context to a node |
| | -.age > @age, # @ maps a column to an attribute node |
| | -.first_name > first, # maps a column to a node |
| | -.last_name > name/last, # maps a column to a descendant node |
| | -account.person_id +> person.person_id, # +> performs an INNER JOIN |
| | -account > account, # context is now "account" node |
| | -.id > @id, # account id attribute |
| | -^, # pop stack to previous table context |
| | -address > address, # switch context to "address" node |
| | -.*, # glob remaining columns |
| | -account.person_id -> company.person_id, # -> performs an OUTER JOIN |
| | -; # Denotes optional WHERE clause |
| | +root > people, # "root" keyword starts the document |
| | +person > person, # maps table context to a node |
| | +.age > @age, # @ maps a column to an attribute node |
| | +.first_name > first, # maps a column to a node |
| | +.last_name > name/last, # maps a column to a descendant node |
| | +account.person_id +> person.person_id, # +> performs an INNER JOIN |
| | +account > account, # context is now "account" node |
| | +.id > @id, # account id attribute |
| | +^, # pop stack to previous table context |
| | +address > address, # switch context to "address" node |
| | +.*, # glob remaining columns |
| | +; # Denotes optional WHERE clause |
| | ``` |
| | - |
| | -The database entity can be a *table name*, a *column name*, or a *table and |
| | -column name*. The expression is a node, an attribute, or a *table and |
| | -column name*. |
| | |
| | The above mapping would generate: |
 |
| | ``` |
| | |
| | -Although an XML document is shown, the same mapping could generate any |
| | -structured document format, including JSON. |
| | +Although XML document is shown, any structured document format is possible, |
| | +including JSON. This can be accomplished either through XSLT or implementing |
| | +a document-specific interface definition. |
| | |
| | ### Pops |