The java.name.style option spacifies a package name for Relaxer objects.
The java.name.style option takes one of the following values as a parameter:
The default configuration is java
.
The java.name.style option generates no additional classes.
The java.name.style option adds no additional methods to Relaxer objects.
The naming style specified by the java.name.style option is reflected in name generation for Relaxer objects.
List 4.7.3.1[javaNameStyle.rng] is a sample schema for the java.name.style option.
<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> <start> <ref name="account"/> </start> <define name="account"> <element name="account"> <attribute name="accountNo"> <data type="token"/> </attribute> <element name="balance"> <data type="int"/> </element> <element name="owner"> <data type="token"/> </element> <element name="address"> <attribute name="zip"> <data type="token"/> </attribute> <text/> </element> <zeroOrMore> <element name="phone"> <attribute name="area"> <data type="token"/> </attribute> <data type="token"/> </element> </zeroOrMore> </element> </define> </grammar>
Execution of Relaxer with the java.name.style option is as follows:
$ relaxer -java -java.name.style:c javaNameStyle.rng
Because the Java generator is a default generator, execution of Relaxer as shown below has the same effect:
$ relaxer -java.name.style:c javaNameStyle.rng
As a result, Relaxer generates six files:
List 4.7.3.1.1[JavaNameStyle.java] is a sample program for the java.name.style option.
import java.io.IOException; import javax.xml.parsers.ParserConfigurationException; import org.xml.sax.SAXException; public class JavaNameStyle { public static void main(String[] args) throws IOException, SAXException, ParserConfigurationException { String uri = args[0]; Account account = makeAccount(uri); printAccount(account); } private static Account makeAccount(String uri) throws IOException, SAXException, ParserConfigurationException { System.out.println("*** makeAccount ***"); Account account = new Account(uri); return (account); } private static void printAccount(Account account) { System.out.println("*** printAccount ***"); String accountNo = account.getAccountNo(); long balance = account.getBalance(); String owner = account.getOwner(); Address address = account.getAddress(); String zip = address.getZip(); String place = address.getContent(); System.out.println("AccountNo:" + accountNo); System.out.println("Balance:" + balance); System.out.println("Owner:" + owner); System.out.println("Address: [" + zip + "] " + place); Phone[] phones = account.getPhone(); for (int i = 0;i < phones.length;i++) { Phone phone = phones[i]; String area = phone.getArea(); String number = phone.getContent(); System.out.println("Phone: [" + area + "] " + number); } System.out.println("XML:" + account); } }
Compilation of JavaNameStyle.java
class is shown here:
$ javac JavaNameStyle.java
List 4.7.3.2.1[javaNameStyle.xml] is an XML document for testing.
<account accountNo="12345"> <balance>102030</balance> <owner>XML Taro</owner> <address zip="213">Yokohama</address> <phone area="123">456-7890</phone> <phone area="090">123-4567</phone> </account>
Execution of the JavaNameStyle
class is shown here:
$ java JavaPatternIdmap javaPathlist.xml *** makeAccount *** *** printAccount *** AccountNo:12345 Balance:102030 Owner:XML Taro Address: [213] Yokohama Phone: [123] 456-7890 Phone: [090] 123-4567 XML:<account \ accountNo="12345"><balance>102030</balance><owner>XML \ Taro</owner><address id="id_address" \ zip="213">Yokohama</address><phone \ area="123">456-7890</phone><phone id="id_phone" \ area="090">123-4567</phone></account> *** findElementsById *** Address: [213] Yokohama Phone: [090] 123-4567