Powered by SmartDoc

The java.name.style option

The java.name.style option spacifies a package name for Relaxer objects.

Parameters

The java.name.style option takes one of the following values as a parameter:

java
Uses the Java style naming style.
c
Uses the C style naming style.

The default configuration is java.

Artifacts

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.

Example

List 4.7.3.1[javaNameStyle.rng] is a sample schema for the java.name.style option.

javaNameStyle.rng
<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>

Build

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.

JavaNameStyle.java
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

Execution

List 4.7.3.2.1[javaNameStyle.xml] is an XML document for testing.

javaNameStyle.xml
<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