Comando xjc para Aplicativos JAXB
Utilize as ferramentas JAXB (Java™ Architecture for XML Binding) para gerar classes Java a partir de um esquema XML com a ferramenta de compilação de esquema xjc.
JAXB é uma tecnologia de ligação XML-para-Java que possibilita a transformação entre esquema e objetos Java e entre documentos da instância XML e instâncias do objeto Java. A tecnologia JAXB consiste em uma API de tempo de execução e ferramentas de acompanhamento que simplificam o acesso aos documentos XML. É possível usar as APIs JAXB e as ferramentas para estabelecer os mapeamentos entre as classes Java e o esquema XML. Um esquema XML define os elementos de dados e a estrutura de um documento XML. A tecnologia JAXB fornece uma ferramenta de tempo de execução para possibilitar a conversão de documentos XML em, e de, objetos Java. Os dados armazenados em um documento XML podem ser acessados sem a necessidade de entender a estrutura de dados XML.
É possível gerar classes Java integralmente anotadas de um arquivo de esquema XML utilizando o compilador do esquema JAXB, a ferramenta da linha de comandos xjc. Utilize a ferramenta do compilador de esquema xjc para começar com uma XSD (XML schema definition) para criar um conjunto de JavaBeans que mapeiam para elementos e tipos definidos no esquema. Depois que o mapeamento entre o esquema XML e as classes Java existir, os documentos da instância XML poderão ser convertidos em e de objetos Java por meio do uso da API de tempo de execução de ligação do JAXB. As classes Java anotadas resultantes contêm todas as informações necessárias para que o tempo de execução JAXB analise o XML para ordenação e desordenação. É possível usar as classes JAXB resultantes nos aplicativos JAX-WS (Java API for XML Web Services) ou nos aplicativos Java não JAX-WS para processar dados XML.


Além de usar a ferramenta xjc a partir da linha de comandos, é possível chamar essa ferramenta JAXB a partir de ambientes de construção Ant. Use a tarefa Ant com.sun.tools.xjc.XJCTask a partir do ambiente de construção Ant para chamar a ferramenta do compilador de esquema xjc. Para funcionar adequadamente, esta tarefa Ant requer que chame Ant usando o script ws_ant.

Sintaxe
A sintaxe da linha de comandos é:
![[Windows]](../images/windows.gif)
app_server_root\bin\xjc.bat [options] <schema_file/URL/directory_or_jar> ...[-b<binding_information>] ...
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
app_server_root/bin/xjc.sh [options] <schema_file/URL/directory_or_jar> ...[-b<binding_information>] ...
![[IBM i]](../images/iseries.gif)
app_server_root/bin/xjc [options] <schema_file/URL/directory_or_jar> ...[-b<binding_information>] ...
Se um diretório for especificado, todos os arquivos esquema contidos serão compilados.
Parameters
O nome ou o local do arquivo JAR schema file/URL do diretório é o único parâmetro necessário. Os parâmetros a seguir são opcionais para o comando xjc:
- -b <file_name ou directory>
- Especifica os arquivos de ligação de JAX-WS ou JAXB externos. É possível especificar vários arquivos de ligação de JAX-WS e JAXB utilizando a opção -b; no entanto, cada arquivo deve ser especificado com sua própria opção -b. Se um diretório for especificado, **/*.xjb será procurado.
- -catalog <file_name>
- Especifica o arquivo de catálogo para resolver as referências de entidades externas. Suporta os formatos TR9401, XCatalog e OASIS XML Catalog.
- -classpath <path>
- Especifica o local dos arquivos de classe.
- -d <diretório>
- Especifica onde colocar os arquivos de saída gerados.
- -dtd
- Especifica para tratar a entrada como DTD (Document Type Definition) de XML. Essa opção não é suportada e é experimental.
- -extension
- Especifica se as extensões customizadas devem ser ativadas para funcionalidade não especificada pela especificação JAXB. O uso das extensões pode resultar em aplicativos não portáteis ou que não interoperam com outras implementações.
- -help
- Exibe o menu de ajuda.
- -httpproxy <[user[:password]@]<proxyhost>:<proxyport>>
- Especifica um proxy HTTP ou HTTPs.
- -httpproxyfile <file_name>
- Esse parâmetro é semelhante ao parâmetro -httpproxy, mas usa o argumento em um arquivo para proteger a senha.
- -no-header
- Especifica para suprimir a geração de um cabeçalho de arquivo com um registro de data e hora.
- -npa
- Especifica para suprimir a geração da anotação do nível de pacote do **/package-info.java.
- -nv
- Especifica para não desempenhar uma validação estrita dos esquemas de entrada.
- -p <package_name>
- Especifica um pacote de destino.
- -quiet
- Especifica para suprimir a saída da ferramenta xjc.
- -relaxng
- Especifica para tratar a entrada como RELAX NG (REgular LAnguage for XML Next Generation). Essa opção não é suportada e é experimental.
- -readOnly
- Especifica que os arquivos gerados sejam no modo de leitura.
- -relaxng-compact
- Especifica para tratar a entrada como sintaxe compacta RELAX NG (REgular LAnguage for XML Next Generation). Essa opção não é suportada e é experimental.
- -target <versão>
- Especifica para gerar a saída para estar de acordo com o nível especificado da especificação JAX-WS. Especifique 2.0 ou 2.1 para a ferramenta gerar código compatível para a especificação JAXB 2.0 ou JAXB-WS 2.1. Especifique2.1 para a ferramenta gerar código compatível para a especificação JAXB 2.1. A versão de destino padrão é 2.2 é gera o código compatível para a especificação JAXB 2.2.
- A opção target é necessária para o perfil Liberdade.
- -verbose
- Especifica para apresentar mensagens sobre o que o compilador está fazendo.
- -version
- Imprime as informações de versão. Se você especificar essa opção, apenas as informações de versão serão incluídas na saída e o processamento normal do comando não ocorrerá.
- -wsdl
- Especifica para tratar a entrada como um arquivo WSDL (Web Services Description Language) e compilar esquemas dentro do WSDL. Essa opção não é suportada e é experimental.
- -xmlschema
- Especifica para tratar a entrada como um esquema XML do W3C (World Wide Web Consortium). Esse valor é o padrão.