Trang 使用

2019-02-18 21:13 更新

使用命令 java -jar trang.jar book.xml book.xsd,沒(méi)有錯(cuò)誤輸出,說(shuō)明一切順利。

E:\JAXB>java -jar trang.jar book.xml book.xsd


E:\JAXB>

使用的命令不算復(fù)雜,常規(guī)的 java 命令 java -jar trang.jar,兩個(gè)參數(shù)分別指定了輸入xxx.xml和輸出xxx.xsd。

可以在相同的目錄下看到生成的文件。

Trang的完整語(yǔ)法支持:

java -jar trang.jar [-C catalogFileOrUri] [-I rng|rnc|dtd|xml] [-O rng|rnc|dtd|xsd] [-i input-param] [-o output-param] inputFileOrUri ... outputFile

  • -C 文件還是uri
  • -I 輸入文件格式,rng表示寬松XML語(yǔ)法,rnc表示嚴(yán)禁XML語(yǔ)法,dtd表示XML 1.0 DTD,xsd表示W(wǎng)3C XML Schema,xml 表示一般XML 文件
  • -O 輸出文件格式
  • -i 一般輸入?yún)?shù),對(duì)不同的格式,支持不同的參數(shù)。如encoding=ISO-8859-1表示使用指定的字符編碼ISO-8859-1,而不是文件頭<?xml version="1.0" encoding="GB2312" standalone="yes"?>中指定的編碼。
  • -o 一般輸出參數(shù),對(duì)不同的格式,支持不同的參數(shù)。如indent=4,表示每一個(gè)層級(jí)縮進(jìn)的空格數(shù)。

指定輸入文件格式: java -jar trang.jar -I xml book.xml book.xsd 指定輸入文件編碼: java -jar trang.jar -i encoding=UTF-8 book.xml book.xsd 指定輸出的層級(jí)空格數(shù): java -jar trang.jar -o indent=10 book.xml book.xsd 多個(gè)輸入同時(shí)轉(zhuǎn)換為一個(gè)輸出: java -jar trang.jar book.xml student.xml union.xsd

結(jié)果展示

這里我使用的book.xml是一個(gè)簡(jiǎn)單的XML,只有少量的元素,且結(jié)構(gòu)單一。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<book>
    <id>00011</id>
    <name>Math</name>
    <price>25.0</price>
</book>

生成的 schema 文件如下,相對(duì)于原始文件,龐大不少:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xs:element name="book">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="id"/>
        <xs:element ref="name"/>
        <xs:element ref="price"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="id" type="xs:integer"/>
  <xs:element name="name" type="xs:NCName"/>
  <xs:element name="price" type="xs:decimal"/>
</xs:schema>

如果對(duì)稍微復(fù)雜點(diǎn)的XML文件books.xml轉(zhuǎn)換:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<books>
    <book id="00011">
        <name>Math</name>
        <price>25.0</price>
    </book>
    <book id="0002s1">
        <name>English</name>
        <price>28.0</price>
    </book>
</books>

使用命令E:\JAXB>java -jar trang.jar books.xml books.xsd轉(zhuǎn)化以后,得到的 schema 文件更為復(fù)雜。

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xs:element name="books">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="book"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="book">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="name"/>
        <xs:element ref="price"/>
      </xs:sequence>
      <xs:attribute name="id" use="required" type="xs:NMTOKEN"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="name" type="xs:NCName"/>
  <xs:element name="price" type="xs:decimal"/>
</xs:schema>

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)