InglêsFrancêsEspanhol

Ad


favicon do OnWorks

xsdcxx - Online na nuvem

Execute xsdcxx no provedor de hospedagem gratuita OnWorks no Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

Este é o comando xsdcxx que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

PROGRAMA:

NOME


xsdcxx - Esquema W3C XML para compilador C ++

SINOPSE


xsdcxx comando [ opções ] lima [ lima ...]
xsdcxx ajudar [ comando ]
xsdcxx versão

DESCRIÇÃO


xsdcxx gera mapeamento C ++ específico de vocabulário estaticamente tipado a partir do esquema W3C XML
definições. O mapeamento específico para produzir é selecionado por um comando. Cada mapeamento tem um
número de específicos de mapeamento opções que deve aparecer, se houver, após o comando. Entrada
os arquivos devem ser definições de esquema W3C XML. O conjunto exato dos arquivos gerados depende
no mapeamento e nas opções selecionadas.

COMANDOS


árvore cxx
Gere o mapeamento C ++ / Tree. Para cada arquivo de entrada no formulário nome.xsd do
os seguintes arquivos C ++ são gerados: nome.hxx (arquivo de cabeçalho), nome.ixx (arquivo embutido,
gerado apenas se o --generate-in-line opção é especificada), nome.cxx (Fonte
arquivo), e nome-fwd.hxx (arquivo de declaração de encaminhamento, gerado apenas se o
--gerar-encaminhar opção é especificada).

analisador cxx
Gere o mapeamento C ++ / Parser. Para cada arquivo de entrada no formulário nome.xsd do
os seguintes arquivos C ++ são gerados: nome-pskel.hxx (arquivo de cabeçalho de esqueleto do analisador),
nome-pskel.ixx (arquivo embutido de esqueleto do analisador, gerado apenas se o --gerar-
em linha opção é especificada), e nome-pskel.cxx (arquivo fonte do esqueleto do analisador). Se
do --generate-noop-impl or --gerar-imprimir-impl opção é especificada, o
os seguintes arquivos de implementação de amostra adicionais são gerados: nome-pimpl.hxx
(arquivo de cabeçalho de implementação do analisador) e nome-pimpl.cxx (implementação do analisador
arquivo fonte). Se o --gerar-test-driver opção é especificada, o adicional
nome-driver.cxx arquivo de driver de teste é gerado.

ajudar Imprima informações de uso e saia. Usar

xsdcxx ajudar comando

para ajuda específica do comando.

versão
Versão para impressão e saída.

OPÇÕES


Específico de comando opções, se houver, deve aparecer após o correspondente comando.

comum opções
--std versão
Especifique o padrão C ++ com o qual o código gerado deve estar em conformidade. Valores válidos
e guarante que os mesmos estão c ++ 98 (padrão) e c ++ 11.

O padrão C ++ afeta vários aspectos do código gerado que são discutidos
em mais detalhes em várias documentações específicas de mapeamento. No geral, quando C ++ 11 é
selecionado, o código gerado depende da semântica do movimento e usa std :: unique_ptr
em vez de obsoleto std :: auto_ptr.

Quando o modo C ++ 11 é selecionado, você normalmente não precisa realizar nenhuma etapa extra
além de habilitar C ++ 11 em seu compilador C ++, se necessário. O compilador XSDCXX irá
adicionar automaticamente as definições de macro necessárias aos arquivos de cabeçalho gerados que
irá mudar a biblioteca de tempo de execução XSDCXX apenas de cabeçalho (libxsd) para o modo C ++ 11.
No entanto, se você incluir qualquer um dos cabeçalhos de tempo de execução XSDCXX diretamente em seu
aplicativo (normalmente você apenas inclui os cabeçalhos gerados), então você vai precisar
para definir o XSD_CXX11 macro para todo o seu projeto.

--char-type tipo
Gerar código usando o caractere fornecido tipo em vez do padrão carbonizar. Válido
valores são carbonizar e wchar_t.

--codificação de caracteres enc
Especifique a codificação de caracteres que deve ser usada no código gerado. Válido
valores para o carbonizar tipo de personagem são utf8 (Padrão) iso8859-1, lcp (Xerces-C ++
página de código local) e personalizadas. Se você passar personalizadas como o valor então você vai precisar
para incluir o cabeçalho de implementação do transcodificador para sua codificação no início
dos arquivos de cabeçalho gerados (consulte o --hxx-prólogo opção).

Para o wchar_t tipo de caractere o único valor válido é auto e a codificação é
selecionado automaticamente entre UTF-16 e UTF-32 / UCS-4, dependendo do wchar_t
tamanho do tipo.

--diretório de saída dir
Grave os arquivos gerados em dir em vez do diretório atual.

--generate-in-line
Gere funções simples embutidas. Esta opção aciona a criação do arquivo embutido.

--generate-xml-schema
Gere um arquivo de cabeçalho C ++ como se o esquema sendo compilado definisse o Esquema XML
namespace. Para o mapeamento C ++ / Árvore, o arquivo resultante conterá definições
para todos os tipos integrados de esquema XML. Para o mapeamento C ++ / Parser, o arquivo resultante
irá conter definições para todos os esqueletos e implementações do analisador
correspondente aos tipos internos do Esquema XML.

O arquivo de esquema fornecido ao compilador não precisa existir e é usado apenas para derivar
o nome do arquivo de cabeçalho resultante. Use o --extern-xml-schema opção para
inclua este arquivo nos arquivos gerados para outros esquemas.

--extern-xml-schema lima
Inclui um arquivo de cabeçalho derivado de lima em vez de gerar o esquema XML
mapeamento de namespace embutido. O arquivo fornecido não precisa existir e é usado apenas para
derivar o nome do arquivo de cabeçalho incluído. Use o --generate-xml-schema opção
para gerar este arquivo de cabeçalho.

--namespace-mapa XNS=cs
Espaço para nome do esquema XML do mapa XNS para namespace C ++ cs. Repita esta opção para especificar
mapeamento para mais de um namespace de esquema XML. Por exemplo, a seguinte opção:

--namespace-mapa http://example.com/foo/bar= foo :: bar

Irá mapear o http://example.com/foo/bar Namespace do esquema XML para o foo :: bar C + +
espaço para nome.

--namespace-regex regex
Adicionar regex à lista de expressões regulares usadas para traduzir o namespace do esquema XML
nomes para nomes de namespace C ++. regex é uma expressão regular semelhante ao Perl na forma
/de cinto de segurança/substituição/. Qualquer caractere pode ser usado como um delimitador em vez de /.
Escape do caractere delimitador em de cinto de segurança or substituição não é suportado.

Todas as expressões regulares são colocadas em uma pilha com o último especificado
expressão considerada primeiro. A primeira correspondência bem-sucedida é usada. Regular
expressões são aplicadas a uma string na forma

nome do arquivo namespace

Por exemplo, se você tiver um arquivo ola.xsd com namespace http://example.com/hello e
você corre xsd neste arquivo, a string em questão será:

Olá.xsd. http://example.com/hello

Para o namespace do esquema XML integrado, a string é:

XMLSchema.xsd http://www.w3.org/2001/XMLSchema

As três etapas a seguir são realizadas para cada expressão regular até a correspondência
seja encontrado:

1. A expressão é aplicada e se o resultado estiver vazio, a próxima expressão é
considerado.

2. Todos / são substituídos por ::.

3. O resultado é verificado para ser um nome de escopo C ++ válido (por exemplo, foo :: bar) Se este
teste for bem-sucedido, o resultado será usado como um nome de namespace C ++.

Como exemplo, a expressão a seguir mapeia namespaces do Esquema XML no formulário
http://example.com/foo/bar para namespaces C ++ na forma foo :: bar:

%. * http://example.com/(. +)% $ 1%

Consulte também a seção REGEX E CITAÇÕES DE SHELL abaixo.

--namespace-regex-trace
Rastreie o processo de aplicação de expressões regulares especificadas com o --namespace-
regex opção. Use esta opção para descobrir por que suas expressões regulares não funcionam
o que você esperava que eles fizessem.

--nome-reservado n[=r]
Adicionar nome n à lista de nomes que não devem ser usados ​​como identificadores. O nome
pode opcionalmente ser seguido por = e o nome de substituição r que deveria ser usado
em vez de. Todas as palavras-chave C ++ já estão nesta lista.

--incluir-com-colchetes
Use colchetes angulares (<>) em vez de aspas ("") no gerado #include directivas.

--include-prefixo prefixo
Adicionar prefixo gerar #include caminhos diretivos.

Por exemplo, se você tivesse o seguinte elemento de importação em seu esquema

<import namespace = "..." schemaLocation = "base.xsd" />

e compilou este fragmento com --include-prefixo esquemas /, então o incluir
diretiva no código gerado seria:

#include "schemas / base.hxx"

--include-regex regex
Adicionar regex à lista de expressões regulares usadas para transformar #include Directivas
caminhos. regex é uma expressão regular semelhante ao Perl na forma /de cinto de segurança/substituição/.
Qualquer caractere pode ser usado como um delimitador em vez de /. Fuga do delimitador
personagem em de cinto de segurança or substituição não é suportado.

Todas as expressões regulares são colocadas em uma pilha com o último especificado
expressão considerada primeiro. A primeira correspondência bem-sucedida é usada.

Por exemplo, a seguinte expressão transforma caminhos no formulário
esquemas / foo / bar para caminhos no formulário gerado / foo / bar:

% schemas /(.+)% gerado / $ 1%

Consulte também a seção REGEX E CITAÇÕES DE SHELL abaixo.

--include-regex-trace
Rastreie o processo de aplicação de expressões regulares especificadas com o --incluir-
regex opção. Use esta opção para descobrir por que suas expressões regulares não funcionam
o que você esperava que eles fizessem.

--guard-prefixo prefixo
Adicionar prefixo aos protetores de inclusão de cabeçalho gerados. O prefixo é transformado em superior
maiúsculas e minúsculas e caracteres que são ilegais em um nome de macro do pré-processador são substituídos por
sublinhados. Se esta opção não for especificada, a parte do diretório da entrada
arquivo de esquema é usado como um prefixo.

--hxx-sufixo sufixo
Use o fornecido sufixo em vez do padrão .hxx construir o nome do
arquivo de cabeçalho. Observe que este sufixo também é usado para construir nomes de arquivos de cabeçalho
correspondente a esquemas incluídos / importados.

--ixx-sufixo sufixo
Use o fornecido sufixo em vez do padrão .ixx construir o nome do
arquivo embutido.

--cxx-sufixo sufixo
Use o fornecido sufixo em vez do padrão .cxx construir o nome do
arquivo fonte.

--fwd-sufixo sufixo
Use o fornecido sufixo em vez do padrão -fwd.hxx construir o nome de
o arquivo de declaração de encaminhamento.

--hxx-regex regex
Use a expressão fornecida para construir o nome do arquivo de cabeçalho. regex é um
Expressão regular semelhante a Perl no formulário /de cinto de segurança/substituição/. Observe que este
expressão também é usada para construir nomes de arquivos de cabeçalho correspondentes a
esquemas incluídos / importados. Consulte também a seção REGEX E CITAÇÕES DE SHELL abaixo.

--ixx-regex regex
Use a expressão fornecida para construir o nome do arquivo embutido. regex é um
Expressão regular semelhante a Perl no formulário /de cinto de segurança/substituição/. Veja também o REGEX
E a seção SHELL CITAÇÕES abaixo.

--cxx-regex regex
Use a expressão fornecida para construir o nome do arquivo de origem. regex é um
Expressão regular semelhante a Perl no formulário /de cinto de segurança/substituição/. Veja também o REGEX
E a seção SHELL CITAÇÕES abaixo.

--fwd-regex regex
Use a expressão fornecida para construir o nome do arquivo de declaração de encaminhamento.
regex é uma expressão regular semelhante ao Perl na forma /de cinto de segurança/substituição/. Veja também
a seção REGEX E CITAÇÕES DE SHELL abaixo.

--hxx-prólogo texto
inserção texto no início do arquivo de cabeçalho.

--ixx-prólogo texto
inserção texto no início do arquivo embutido.

--cxx-prólogo texto
inserção texto no início do arquivo de origem.

--fwd-prólogo texto
inserção texto no início do arquivo de declaração de encaminhamento.

--prólogo texto
inserção texto no início de cada arquivo gerado para o qual não há nenhum arquivo-
prólogo específico.

--hxx-epílogo texto
inserção texto no final do arquivo de cabeçalho.

--ixx-epílogo texto
inserção texto no final do arquivo embutido.

--cxx-epílogo texto
inserção texto no final do arquivo de origem.

--fwd-epílogo texto
inserção texto no final do arquivo de declaração de encaminhamento.

--epílogo texto
inserção texto no final de cada arquivo gerado para o qual não há nenhum arquivo específico
epílogo.

--hxx-prologue-file lima
Insira o conteúdo do lima no início do arquivo de cabeçalho.

--ixx-prologue-file lima
Insira o conteúdo do lima no início do arquivo embutido.

--cxx-prologue-file lima
Insira o conteúdo do lima no início do arquivo de origem.

--fwd-prologue-file lima
Insira o conteúdo do lima no início do arquivo de declaração de encaminhamento.

--prólogo-arquivo lima
Insira o conteúdo do lima no início de cada arquivo gerado para o qual
não há nenhum arquivo de prólogo específico do arquivo.

--hxx-epílogo-arquivo lima
Insira o conteúdo do lima no final do arquivo de cabeçalho.

--ixx-epílogo-arquivo lima
Insira o conteúdo do lima no final do arquivo embutido.

--cxx-epílogo-arquivo lima
Insira o conteúdo do lima no final do arquivo de origem.

--fwd-epílogo-arquivo lima
Insira o conteúdo do lima no final do arquivo de declaração de encaminhamento.

--epílogo-arquivo lima
Insira o conteúdo do lima no final de cada arquivo gerado para o qual existe
nenhum arquivo de epílogo específico de arquivo.

--símbolo de exportação símbolo
inserção símbolo em lugares onde declarações de controle de exportação / importação DLL
(__declspec (dllexport / dllimport)) são necessários.

--export-xml-schema
Exportar / importar tipos no namespace do XML Schema usando o símbolo de exportação fornecido
com o --símbolo de exportação opção. O XSD_NO_EXPORT macro pode ser usada para omitir este
código durante a compilação C ++, o que pode ser útil se você quiser usar o mesmo
código gerado em várias plataformas.

--exportar mapas
Exportar mapas de suporte de polimorfismo de uma DLL Win32 para a qual este código gerado é
colocada. Isso é necessário quando sua hierarquia de tipo é dividida em várias DLLs
caso contrário, cada DLL terá seu próprio conjunto de mapas. Nesta situação o
código gerado para a DLL que contém tipos de base e / ou grupo de substituição
Os cabeçotes devem ser compilados com esta opção e o código gerado para todas as outras DLLs
deve ser compilado com --importar mapas. Esta opção só é válida junto com
--gerate-polimórfico. O XSD_NO_EXPORT macro pode ser usada para omitir este código
durante a compilação C ++, o que pode ser útil se você quiser usar o mesmo
código gerado em várias plataformas.

--importar mapas
Importar mapas de suporte de polimorfismo para uma DLL Win32 ou executável em que este
o código gerado está vinculado. Veja o --exportar mapas documentação de opções para detalhes.
Esta opção só é válida junto com --gerate-polimórfico. O XSD_NO_EXPORT
macro pode ser usada para omitir este código durante a compilação C ++, o que pode ser útil se
você gostaria de usar o mesmo código gerado em várias plataformas.

--generate-dep
Gerar fazer informações de dependência. Esta opção aciona a criação do .d
arquivo contendo as dependências dos arquivos gerados no arquivo de esquema principal como
bem como todos os arquivos de esquema que inclui / importa, transitivamente. Esse
arquivo de dependência é normalmente incluído no principal makefile para implementar
rastreamento automático de dependência.

Observe também que a geração automática de dependência não é suportada no arquivo por
modo de tipo (--arquivo por tipo) Neste caso, todos os arquivos gerados são produzidos
com uma única chamada do compilador e dependem de todos os esquemas. Como resultado, é
mais fácil estabelecer tal dependência manualmente, talvez com a ajuda do
--file-list * opções.

--generate-dep-somente
Gerar fazer informações de dependência apenas.

--dep-phony
Gere alvos falsos para arquivos de esquema incluídos / importados, fazendo com que cada um dependa
em nada. Essas regras fictícias funcionam em torno fazer erros causados ​​pela remoção de
arquivos de esquema sem também atualizar o arquivo de dependência para corresponder.

--dep-alvo alvo
Altere o destino da regra de dependência. Por padrão, ele contém todos os
Arquivos C ++, bem como o próprio arquivo de dependência, sem quaisquer prefixos de diretório. Se
você precisa de vários alvos, então você pode especificá-los como um único, espaço
argumento separado ou você pode repetir esta opção várias vezes.

--dep-sufixo sufixo
Use o fornecido sufixo em vez do padrão .d construir o nome do
arquivo de dependência.

--dep-regex regex
Use a expressão fornecida para construir o nome do arquivo de dependência. regex is
uma expressão regular semelhante ao Perl no formulário /de cinto de segurança/substituição/. Veja também o
CITAÇÃO DE REGEX E SHELL abaixo.

--disable-warning avisar
Desativar aviso de impressão com id avisar. Se todos os é especificado para o id de aviso então
todos os avisos estão desabilitados.

--arquivo de opções lima
Leia as opções adicionais de lima. Cada opção deve aparecer em uma linha separada
opcionalmente seguido por espaço e um valor de opção. Linhas vazias e linhas começando
com # são ignorados. Os valores das opções podem ser colocados em double (") ou solteiro (')
aspas para preservar os espaços em branco à esquerda e à direita, bem como para especificar espaços em branco
valores. Se o próprio valor contiver aspas à direita ou à esquerda, coloque-o entre
par extra de citações, por exemplo '"x"'. Aspas sem precedentes e sem fim são
interpretado como parte do valor da opção.

A semântica de fornecer opções em um arquivo é equivalente a fornecer o mesmo
conjunto de opções na mesma ordem na linha de comando no ponto onde o
--arquivo de opções opção é especificada, exceto que o escape e aspas do shell são
não requerido. Você pode repetir esta opção para especificar mais de um arquivo de opções.

--show-sloc
Mostra o número de linhas de código de origem física geradas (SLOC).

--sloc-limite Números
Verifique se o número de linhas de código-fonte físicas geradas (SLOC) não
excedem Números.

- licença-proprietária
Indique que o código gerado está licenciado sob uma licença proprietária em vez de
o GPL.

--custom-literais lima
Carregar string XML personalizada para mapeamentos literais C ++ de lima. Este mecanismo pode ser
útil se você estiver usando uma codificação de caracteres personalizada e algumas das strings em seu
esquemas, por exemplo, nomes de elemento / atributo ou valores de enumeração, contêm não
Caracteres ASCII. Neste caso, você precisará fornecer um mapeamento personalizado para C ++
literais para tais strings. O formato deste arquivo é especificado no custom-
literais.xsd Arquivo de esquema XML que pode ser encontrado no diretório de documentação.

--preservar-anônimo
Preserve os tipos anônimos. Por padrão, os tipos anônimos são nomeados automaticamente com
nomes derivados dos elementos / atributos envolventes. Porque mapeamentos implementados
por este compilador requer que todos os tipos sejam nomeados, esta opção só é útil se você
deseja ter certeza de que seus esquemas não têm tipos anônimos.

--show-anônimo
Mostra os elementos e atributos que são de tipos anônimos. Esta opção apenas torna
sentir junto com o --preservar-anônimo opção.

--anônimo-regex regex
Adicionar regex à lista de expressões regulares usadas para derivar nomes para nomes anônimos
tipos dos atributos / elementos envolventes. regex é um regular semelhante ao Perl
expressão na forma /de cinto de segurança/substituição/. Qualquer personagem pode ser usado como um
delimitador em vez de /. Escape do caractere delimitador em de cinto de segurança or
substituição não é suportado.

Todas as expressões regulares são colocadas em uma pilha com o último especificado
expressão considerada primeiro. A primeira correspondência bem-sucedida é usada. Regular
expressões são aplicadas a uma string na forma

nome do arquivo namespace xpath

Por exemplo:

ola.xsd http://example.com/hello elemento

ola.xsd http://example.com/hello tipo / elemento

Por exemplo, a expressão a seguir faz com que todos os nomes derivados comecem com
letras maiúsculas. Isso pode ser útil quando sua convenção de nomenclatura requer o tipo
nomes para começar com letras maiúsculas:

%. * .* (. + /) * (. +)% \ u $ 2%

Consulte também a seção REGEX E CITAÇÕES DE SHELL abaixo.

--anonymous-regex-trace
Rastreie o processo de aplicação de expressões regulares especificadas com o --anônimo-
regex opção. Use esta opção para descobrir por que suas expressões regulares não funcionam
o que você esperava que eles fizessem.

--mapa de localização ol=nl
Mapeie a localização do esquema original ol que é especificado no esquema XML inclui ou
importar elementos para o novo local do esquema nl. Repita esta opção para mapear mais de um
localização do esquema. Por exemplo, a seguinte opção mapeia o
http://example.com/foo.xsd URL para o foo.xsd arquivo local.

--mapa de localização http://example.com/foo.xsd= foo.xsd

--local-regex regex
Adicionar regex à lista de expressões regulares usadas para mapear locais de esquema que são
especificado no esquema XML inclui ou importa elementos. regex é semelhante ao Perl
expressão regular no formulário /de cinto de segurança/substituição/. Qualquer caractere pode ser usado como
um delimitador em vez de /. Escape do caractere delimitador em de cinto de segurança or
substituição não é suportado. Todas as expressões regulares são colocadas em uma pilha
com a última expressão especificada considerada primeiro. A primeira partida bem-sucedida
é usado.

Por exemplo, a seguinte expressão mapeia localizações de URL no formulário
http://example.com/foo/bar.xsd para arquivos locais no formulário barra.xsd:

% http: //.+ / (. +)% $ 1%

Consulte também a seção REGEX E CITAÇÕES DE SHELL abaixo.

--location-regex-trace
Rastreie o processo de aplicação de expressões regulares especificadas com o --localização-
regex opção. Use esta opção para descobrir por que suas expressões regulares não funcionam
o que você esperava que eles fizessem.

--arquivo por tipo
Gere um conjunto separado de arquivos C ++ para cada tipo definido no Esquema XML. Observação
que neste modo você só precisa compilar o (s) esquema (s) raiz e o código será
gerado para todos os esquemas incluídos e importados. Este modo de compilação é principalmente
útil quando alguns de seus esquemas não podem ser compilados separadamente ou têm
dependências que envolvem herança de tipo. Outras opções relacionadas a este modo
são: --type-arquivo-regex, --schema-arquivo-regex, --arquivo-tipo-fat e --lista de arquivos.

--type-arquivo-regex regex
Adicionar regex à lista de expressões regulares usadas para traduzir nomes de tipo para arquivo
nomes quando o --arquivo por tipo opção é especificada. regex é um regular semelhante ao Perl
expressão na forma /de cinto de segurança/substituição/. Qualquer personagem pode ser usado como um
delimitador em vez de /. Escape do caractere delimitador em de cinto de segurança or
substituição não é suportado. Todas as expressões regulares são colocadas em uma pilha
com a última expressão especificada considerada primeiro. A primeira partida bem-sucedida
é usado. Expressões regulares são aplicadas a uma string no formulário

namespace Digite o nome

Por exemplo, a seguinte expressão mapeia o tipo Foo que é definido no
http://example.com/bar namespace para nome de arquivo bar-foo:

%http://example.com/(. +) (. +)% $ 1- $ 2%

Consulte também a seção REGEX E CITAÇÕES DE SHELL abaixo.

--type-file-regex-trace
Rastreie o processo de aplicação de expressões regulares especificadas com o --tipo-arquivo-
regex opção. Use esta opção para descobrir por que suas expressões regulares não funcionam
o que você esperava que eles fizessem.

--schema-arquivo-regex regex
Adicionar regex à lista de expressões regulares usadas para traduzir nomes de arquivos de esquema
quando o --arquivo por tipo opção é especificada. regex é um regular semelhante ao Perl
expressão na forma /de cinto de segurança/substituição/. Qualquer personagem pode ser usado como um
delimitador em vez de /. Escape do caractere delimitador em de cinto de segurança or
substituição não é suportado. Todas as expressões regulares são colocadas em uma pilha
com a última expressão especificada considerada primeiro. A primeira partida bem-sucedida
é usado. Expressões regulares são aplicadas ao caminho absoluto do sistema de arquivos de um
arquivo de esquema e o resultado, incluindo a parte do diretório, se houver, é usado para derivar
do #include caminhos de diretiva, bem como os caminhos de arquivo C ++ gerados. Esta opção,
e o --type-arquivo-regex são úteis principalmente para colocar os arquivos gerados em
subdiretórios ou para resolver conflitos de nome de arquivo.

Por exemplo, a seguinte expressão mapeia arquivos de esquema no foo / 1.0.0 /
subdiretório para os arquivos no foo / subdiretório. Como resultado, o #include
caminhos de diretiva para tais esquemas estarão no foo / schema.hxx formulário e o
arquivos C ++ gerados serão colocados no foo / subdiretório:

%. * / foo / 1.0.0 /(.+)% foo / $ 1%

Consulte também a seção REGEX E CITAÇÕES DE SHELL abaixo.

--schema-file-regex-trace
Rastreie o processo de aplicação de expressões regulares especificadas com o --arquivo-esquema-
regex opção. Use esta opção para descobrir por que suas expressões regulares não funcionam
o que você esperava que eles fizessem.

--arquivo-tipo-fat
Gerar código correspondente a elementos globais em arquivos de tipo em vez de esquema
arquivos quando o --type-arquivo-regex opção é especificada. Esta opção é principalmente
útil ao tentar minimizar a quantidade de código-objeto que está vinculado a um
executável ao empacotar o código gerado compilado em uma biblioteca estática (arquivo).

--lista de arquivos lima
Escreva uma lista de arquivos C ++ gerados para lima. Esta opção é útil principalmente no
modo de compilação arquivo por tipo (--arquivo por tipo) para criar uma lista de C ++ gerados
arquivos, por exemplo, como um fragmento makefile.

--file-list-prólogo texto
inserção texto no início da lista de arquivos. Por conveniência, todas as ocorrências de
do \n seqüência de caracteres em texto são substituídos por novas linhas. Esta opção pode, por
exemplo, ser usado para atribuir a lista de arquivos gerada a uma variável makefile.

--file-list-epílogo texto
inserção texto no final da lista de arquivos. Por conveniência, todas as ocorrências do
\n seqüência de caracteres em texto são substituídos por novas linhas.

--file-list-delim texto
Delimite os nomes dos arquivos gravados na lista de arquivos com texto em vez de novas linhas. Como um
conveniência, todas as ocorrências do \n seqüência de caracteres em texto são substituídos por
novas linhas.

árvore cxx comando opções
--gerate-polimórfico
Gere código com reconhecimento de polimorfismo. Especifique esta opção se você usar substituição
grupos ou xsi: type. Use o - tipo polimórfico or --tipo polimórfico-tudo opção para
especificar quais hierarquias de tipo são polimórficas.

- tipo polimórfico tipo
Indique aquilo tipo é a raiz de uma hierarquia de tipo polimórfico. O compilador pode
muitas vezes determinam automaticamente quais tipos são polimórficos com base na substituição
declarações de grupo. No entanto, você pode precisar usar esta opção se não estiver usando
grupos de substituição ou se os grupos de substituição são definidos em outro esquema. Vocês
precisa especificar esta opção ao compilar cada arquivo de esquema que faz referência tipo.
A tipo argumento é um nome de tipo de esquema XML que pode ser opcionalmente qualificado com
um namespace no namespace#nome .

--tipo polimórfico-tudo
Indique que todos os tipos devem ser tratados como polimórficos.

--placa polimórfica Números
Especifique a placa de mapa polimórfico em que o código gerado deve se registrar. Esse
funcionalidade é útil principalmente para separar vários esquemas que definem o
mesmos tipos polimórficos.

--tipo-ordenado tipo
Indique a ordem desse elemento em tipo é significativo. Um exemplo seria um complexo
tipo com escolha ilimitada como um modelo de conteúdo onde a ordem do elemento em XML tem
semântica específica do aplicativo. Para tipos ordenados, o compilador gera um especial
membro de dados do contêiner e um conjunto correspondente de acessadores e modificadores que são
usado para capturar a ordem dos elementos e, para conteúdo misto, do texto.

A tipo argumento é um nome de tipo de esquema XML que pode ser opcionalmente qualificado com
um namespace no namespace#nome Formato. Observe também que você precisará especificar
esta opção ao compilar cada arquivo de esquema que possui outros tipos ordenados derivados
deste tipo.

- derivado de tipo ordenado
Trate automaticamente os tipos derivados de bases ordenadas como também ordenados. Isto é
principalmente útil se você gostaria de ser capaz de iterar o conteúdo completo
usando o contêiner de pedido de conteúdo.

--tipo-ordenado-misturado
Trate automaticamente tipos complexos com conteúdo misto conforme solicitado.

--ordenado-tipo-tudo
Indique que a ordem dos elementos em todos os tipos é significativa.

--contêiner-pedido tipo
Especifique um modelo de classe personalizado que deve ser usado como um contêiner para o conteúdo
ordem em tipos ordenados em vez do padrão std :: vector. Ver --tipo-ordenado para
mais informações sobre o tipo pedido. Esta opção é útil principalmente se você precisar
realizar pesquisas mais complexas no contêiner de ordem de conteúdo, por exemplo, por elemento
Eu iria. Nesse caso, um contêiner como o Boost multi-index pode ser mais conveniente. Observação
que se estiver usando um contêiner personalizado, você provavelmente também precisará incluir o
cabeçalhos relevantes usando o --hxx-prologue * opções.

--gerar-serialização
Gere funções de serialização. As funções de serialização convertem o modelo de objeto
de volta ao XML.

--generate-ostream
Gerar operadores de inserção ostream (operador <) para tipos gerados. Isso permite
um para imprimir facilmente um fragmento ou todo o modelo de objeto para depuração ou registro.

--gerar-doxigênio
Gere comentários de documentação adequados para extração pelo Doxygen
sistema de documentação. A documentação das anotações é adicionada aos comentários se
presente no esquema.

--generate-comparação
Gerar operadores de comparação (operador == e operador! =) para tipos complexos.
A comparação é realizada por membros.

--generate-default-ctor
Gere construtores padrão mesmo para tipos que têm membros necessários. Obrigatório
membros de uma instância construída usando tal construtor não são inicializados e
acessá-los resulta em um comportamento indefinido.

--generate-from-base-ctor
Gerar construtores que esperam uma instância de um tipo de base seguido por todos
membros necessários.

--suppress-atribuição
Suprime a geração de operadores de atribuição de cópia para tipos complexos. Se este
opção for especificada, os operadores de atribuição de cópia para tais tipos são declarados
privado e não implementado.

--gerar-separar
Gere funções de desanexação para elementos e atributos necessários. Desanexar funções
para cardinalidades opcionais e de sequência são fornecidas pelos respectivos contêineres.
Essas funções, por exemplo, permitem que você mova subárvores no modelo de objeto
dentro da mesma árvore ou entre árvores diferentes.

--gerar curinga
Gere acessadores e modificadores, bem como código de análise e serialização para XML
Caracteres curinga de esquema (qualquer e qualquer atributo) O conteúdo XML correspondido por curingas é
apresentado como fragmentos DOM. Observe que você precisa inicializar o tempo de execução Xerces-C ++
se você estiver usando esta opção.

--gerar-qualquer tipo
Extraia e armazene o conteúdo do esquema XML qualquer tipo digite como um fragmento DOM. Observação
que você precisa para inicializar o tempo de execução Xerces-C ++ se estiver usando esta opção.

--generate-inserção os
Gerar operadores de inserção de fluxo de representação de dados para o os fluxo de saída
modelo. Repita esta opção para especificar mais de um tipo de fluxo. O fluxo ACE CDR
(ACE_OutputCDR) e RPC XDR são reconhecidos pelo compilador e o necessário
#include as diretivas são geradas automaticamente. Para tipos de stream personalizados, use o
--hxx-prologue * opções para fornecer as declarações necessárias.

- extração de geração is
Gerar construtores de extração de fluxo de representação de dados para o is fluxo de entrada
modelo. Repita esta opção para especificar mais de um tipo de fluxo. O fluxo ACE CDR
(ACE_InputCDR) e RPC XDR são reconhecidos pelo compilador e o necessário
#include as diretivas são geradas automaticamente. Para tipos de stream personalizados, use o
--hxx-prologue * opções para fornecer as declarações necessárias.

--gerar-encaminhar
Gere um arquivo de cabeçalho separado com declarações de encaminhamento para os tipos que estão sendo
gerado.

--supress-parsing
Suprima a geração das funções de análise e construtores. Use esta opção
para reduzir o tamanho do código gerado quando a análise de XML não for necessária.

--generate-element-type
Gere tipos em vez de funções de análise e serialização para elementos raiz.
Isso é útil principalmente para distinguir modelos de objetos com o mesmo tipo de raiz, mas
com diferentes elementos de raiz.

--generate-elemento-mapa
Gere um mapa de elemento raiz que permite a análise e serialização uniforme de
vários elementos raiz. Esta opção só é válida junto com --gerar-elemento-
tipo.

--gerar-intelisense
Gere soluções alternativas para bugs do IntelliSense no Visual Studio 2005 (8.0). Quando isso
opção for usada, o código resultante é um pouco mais detalhado. IntelliSense em
O Visual Studio 2008 (9.0) e posterior não requer essas soluções alternativas. Suporte para
IntelliSense no Visual Studio 2003 (7.1) foi aprimorado com esta opção, mas ainda é
incompletas.

--omit-default-attribute
Omita atributos com valores padrão e fixos de documentos XML serializados.

--nome-tipo estilo
Especifique a convenção de nomenclatura de tipo que deve ser usada no código gerado. Válido
estilos são knr (Padrão) ucc e Java. Veja a seção CONVENÇÃO DE NOMEAMENTO abaixo
para obter mais informações.

- nomeação de função estilo
Especifique a convenção de nomenclatura da função que deve ser usada no código gerado.
Estilos válidos são knr (Padrão) lcc e Java. Veja a seção CONVENÇÃO DE NOMEAMENTO
abaixo para obter mais informações.

--type-regex regex
Adicionar regex à lista de expressões regulares usadas para traduzir o tipo de esquema XML
nomes para nomes de tipo C ++. Veja a seção CONVENÇÃO DE NOMEAMENTO abaixo para mais
informações.

--acessor-regex regex
Adicionar regex à lista de expressões regulares usadas para traduzir nomes de esquema XML de
elementos / atributos para nomes de função de acessador C ++. Veja a CONVENÇÃO DE NOMEAMENTO
seção abaixo para obter mais informações.

--one-accessor-regex regex
Adicionar regex à lista de expressões regulares usadas para traduzir nomes de esquema XML de
elementos / atributos com cardinalidade um para nomes de função de acessador C ++. Veja o
Seção CONVENÇÃO DE NOMEAMENTO abaixo para obter mais informações.

--opt-accessor-regex regex
Adicionar regex à lista de expressões regulares usadas para traduzir nomes de esquema XML de
elementos / atributos com cardinalidade opcional para nomes de função de acessador C ++. Ver
a seção CONVENÇÃO DE NOMEAMENTO abaixo para obter mais informações.

--seq-accessor-regex regex
Adicionar regex à lista de expressões regulares usadas para traduzir nomes de esquema XML de
elementos / atributos com sequência de cardinalidade para nomes de função de acessador C ++. Ver
a seção CONVENÇÃO DE NOMEAMENTO abaixo para obter mais informações.

--modifier-regex regex
Adicionar regex à lista de expressões regulares usadas para traduzir nomes de esquema XML de
elementos / atributos para nomes de função modificadora C ++. Veja a CONVENÇÃO DE NOMEAMENTO
seção abaixo para obter mais informações.

--one-modificador-regex regex
Adicionar regex à lista de expressões regulares usadas para traduzir nomes de esquema XML de
elementos / atributos com cardinalidade um para nomes de função modificadora C ++. Veja o
Seção CONVENÇÃO DE NOMEAMENTO abaixo para obter mais informações.

--opt-modificador-regex regex
Adicionar regex à lista de expressões regulares usadas para traduzir nomes de esquema XML de
elementos / atributos com cardinalidade opcional para nomes de função modificadora C ++. Ver
a seção CONVENÇÃO DE NOMEAMENTO abaixo para obter mais informações.

--seq-modificador-regex regex
Adicionar regex à lista de expressões regulares usadas para traduzir nomes de esquema XML de
elementos / atributos com sequência de cardinalidade para nomes de função modificadora C ++. Ver
a seção CONVENÇÃO DE NOMEAMENTO abaixo para obter mais informações.

--parser-regex regex
Adicionar regex à lista de expressões regulares usadas para traduzir o elemento XML Schema
nomes para nomes de função de análise C ++. Consulte a seção CONVENÇÃO DE NOMEAMENTO abaixo para
Mais Informações.

--serializer-regex regex
Adicionar regex à lista de expressões regulares usadas para traduzir o elemento XML Schema
nomes para nomes de função de serialização C ++. Veja a seção CONVENÇÃO DE NOMEAMENTO abaixo
para obter mais informações.

--const-regex regex
Adicionar regex à lista de expressões regulares usadas para traduzir os derivados do esquema XML
nomes para nomes de constantes C ++. Veja a seção CONVENÇÃO DE NOMEAMENTO abaixo para mais
informações.

--enumerador-regex regex
Adicionar regex à lista de expressões regulares usadas para traduzir o esquema XML
valores de enumeração para nomes de enumeradores C ++. Veja a seção CONVENÇÃO DE NOMEAMENTO abaixo
para obter mais informações.

--element-type-regex regex
Adicionar regex à lista de expressões regulares usadas para traduzir o elemento XML Schema
nomes para nomes de tipo de elemento C ++. Veja a seção CONVENÇÃO DE NOMEAMENTO abaixo para mais
informações.

--name-regex-trace
Rastreie o processo de aplicação de expressões regulares especificadas com o nome
opções de transformação. Use esta opção para descobrir porque suas expressões regulares
não faça o que você esperava que eles fizessem.

--elemento-raiz-primeiro
Trate apenas o primeiro elemento global como uma raiz do documento. Por padrão, tudo global
os elementos são considerados raízes do documento.

--root-elemento-último
Trate apenas o último elemento global como uma raiz do documento. Por padrão, tudo global
os elementos são considerados raízes do documento.

--root-elemento-tudo
Trate todos os elementos globais como raízes do documento. Este é o comportamento padrão. Por
especificando explicitamente esta opção, você pode suprimir o aviso que é emitido se
mais de um elemento global é definido.

--elemento-raiz-nenhum
Não trate nenhum elemento global como raízes do documento. Por padrão, todos os elementos globais
são consideradas raízes de documentos.

--elemento-raiz elemento
Tratar apenas elemento como uma raiz do documento. Repita esta opção para especificar mais de um
elemento raiz.

--tipo personalizado mapa,
Use um tipo C ++ personalizado em vez da classe gerada. o mapa, o argumento está no
formulário nome[=tipo[/base]], Onde nome é um nome de tipo conforme definido no esquema XML e
tipo é um nome de tipo C ++ que deve ser usado em seu lugar. Se tipo não está presente ou
vazio, então o tipo personalizado é assumido como tendo o mesmo nome e ser definido no
mesmo namespace que a classe gerada teria. Se base é especificado então o
a classe gerada ainda é gerada, mas com esse nome.

--custom-type-regex regex
Use tipos C ++ personalizados em vez das classes geradas. o regex o argumento está no
formulário /batidinha/[tipo-sub/[base-sub/]], Onde batidinha é um padrão regex que irá
ser correspondido com nomes de tipo, conforme definido no esquema XML e tipo-sub é um tipo C ++
substituição de nome que deve ser usada em seu lugar. Se tipo-sub não está presente ou está
a substituição resulta em uma string vazia, então o tipo personalizado é assumido como tendo o
mesmo nome e ser definido no mesmo namespace que a classe gerada teria.
If base-sub está presente e sua substituição resulta em uma string não vazia, então o
classe gerada ainda é gerada, mas com o resultado desta substituição como seu
nome. O padrão e as substituições estão no formato de expressão regular Perl. Ver
também a seção REGEX E CITAÇÕES DE SHELL abaixo.

--partes Números
Divida o código-fonte gerado em Números partes. Isso é útil ao traduzir grandes,
esquemas monolíticos e um compilador C ++ não é capaz de compilar a fonte resultante
código de uma vez (geralmente devido à memória insuficiente).

--partes-sufixo sufixo
Use sufixo em vez do padrão '-'para separar o nome do arquivo da parte
número.

analisador cxx comando opções
--type-mapa arquivo de mapa
Leia as informações de mapeamento de esquema XML para C ++ de arquivo de mapa. Repita esta opção para
especificar vários mapas de tipo. Os mapas de tipo são considerados em ordem de aparência e o
primeira correspondência é usada. Por padrão, todos os tipos definidos pelo usuário são mapeados para anular. Veja o
TYPE MAP seção abaixo para mais informações.

--xml-parser analisador
Use analisador como o analisador XML subjacente. Os valores válidos são xerces para Xerces-C ++
(padrão) e expat para Expat.

--gerar-validação
Gere o código de validação. O código de validação ("analisador perfeito") garante que
os documentos da instância estão em conformidade com o esquema. O código de validação é gerado por padrão
quando o analisador XML subjacente selecionado não está validando (expat).

--supress-validation
Suprime a geração de código de validação. A validação é suprimida por padrão
quando o analisador XML subjacente selecionado está validando (xerces).

--gerate-polimórfico
Gere código com reconhecimento de polimorfismo. Especifique esta opção se você usar substituição
grupos ou xsi: type.

--generate-noop-impl
Gere uma implementação de analisador de amostra que não faz nada (nenhuma operação). o
a implementação de amostra pode então ser preenchida com o código específico do aplicativo. Para um
arquivo de entrada no formulário nome.xsd esta opção aciona a geração de dois
arquivos C ++ adicionais na forma: nome-pimpl.hxx (cabeçalho de implementação do analisador
arquivo) e nome-pimpl.cxx (arquivo fonte de implementação do analisador).

--gerar-imprimir-impl
Gere uma implementação de analisador de amostra que imprime os dados XML em STDOUT. Para um
arquivo de entrada no formulário nome.xsd esta opção aciona a geração de dois
arquivos C ++ adicionais na forma: nome-pimpl.hxx (cabeçalho de implementação do analisador
arquivo) e nome-pimpl.cxx (arquivo fonte de implementação do analisador).

--gerar-test-driver
Gere um driver de teste para a implementação do analisador de amostra. Para um arquivo de entrada em
a forma nome.xsd esta opção aciona a geração de um arquivo C ++ adicional em
a forma nome-driver.cxx.

--force-overwrite
Força a substituição da implementação existente e dos arquivos de driver de teste. Usa isto
opção apenas se você não se importar em perder as mudanças que você fez na amostra
implementação ou arquivos de driver de teste.

--elemento-raiz-primeiro
Indique que o primeiro elemento global é a raiz do documento. Esta informação é
usado para gerar o driver de teste para a implementação de amostra.

--root-elemento-último
Indique que o último elemento global é a raiz do documento. Esta informação é
usado para gerar o driver de teste para a implementação de amostra.

--elemento-raiz elemento
Indique aquilo elemento é a raiz do documento. Esta informação é usada para gerar
o driver de teste para a implementação de amostra.

--skel-type-sufixo sufixo
Use o fornecido sufixo em vez do padrão _pskel para construir os nomes dos
esqueletos do analisador gerado.

--skel-file-suffix sufixo
Use o fornecido sufixo em vez do padrão -pskel para construir os nomes dos
arquivos de esqueleto de analisador gerados.

--impl-type-suffix sufixo
Use o fornecido sufixo em vez do padrão _espinha para construir os nomes dos
implementações de analisador para os tipos de esquema XML integrados, bem como analisador de amostra
implementações.

--impl-file-suffix sufixo
Use o fornecido sufixo em vez do padrão -espinha para construir os nomes dos
arquivos de implementação do analisador de amostra gerados.

NOMEAÇÃO CONVENÇÃO


O compilador pode ser instruído a usar uma convenção de nomenclatura específica no
código. Uma série de convenções amplamente utilizadas podem ser selecionadas usando o --nome-tipo e
- nomeação de função opções. Uma convenção de nomenclatura personalizada pode ser alcançada usando o --modelo-
regex, --acessor-regex, --one-accessor-regex, --opt-accessor-regex, --seq-accessor-regex,
--modifier-regex, --one-modificador-regex, --opt-modificador-regex, --seq-modificador-regex,
--parser-regex, --serializer-regex, --const-regex, --enumerador-regex e --elemento-tipo-
regex opções.

A --nome-tipo opção especifica a convenção que deve ser usada para nomear C ++
tipos. Os valores possíveis para esta opção são knr (Padrão) ucc e Java. O knr valor
(significa K&R) significa a convenção de nomenclatura padrão em minúsculas com o sublinhado
usado como um delimitador de palavra, por exemplo: foo, foo_bar. o ucc (significa camelo superior
caso) e Java valoriza sinônimos para a mesma convenção de nomenclatura onde a primeira letra de
cada palavra do nome é maiúscula, por exemplo: Foo, FooBar.

Da mesma forma, o - nomeação de função opção especifica a convenção que deve ser usada para
nomear funções C ++. Os valores possíveis para esta opção são knr (Padrão) lcc e Java.
A knr valor (significa K&R) significa o padrão, convenção de nomenclatura em minúsculas com
o sublinhado usado como um delimitador de palavra, por exemplo: foo (), foo_bar (). o lcc valor
(significa caixa baixa do camelo) significa uma convenção de nomenclatura em que a primeira letra de cada
palavra exceto a primeira em maiúscula, por exemplo: foo (), fooBar (). o Java nomeando
convenção é semelhante à de caixa baixa do camelo, exceto que as funções do acessador são
prefixadas com get, as funções modificadoras são prefixadas com set, as funções de análise são
prefixado com parse, e as funções de serialização são prefixadas com serialize, por exemplo:
getFoo (), setFooBar (), parseRoot (), serializeRoot ().

Observe que as convenções de nomenclatura especificadas com o --nome-tipo e - nomeação de função
opções executam apenas transformações limitadas nos nomes que vêm do esquema no
forma de tipo, atributo e nomes de elemento. Em outras palavras, para obter resultados consistentes,
seus esquemas devem seguir uma convenção de nomenclatura semelhante à que você gostaria de ter
no código gerado. Alternativamente, você pode usar o - * - regex opções (discutidas abaixo)
para realizar transformações adicionais nos nomes que vêm do esquema.

A --type-regex, --acessor-regex, --one-accessor-regex, --opt-accessor-regex, --seq-
acessador-regex, --modifier-regex, --one-modificador-regex, --opt-modificador-regex, --seq-
modificador-regex, --parser-regex, --serializer-regex, --const-regex, --enumerador-regex e
--element-type-regex opções permitem que você especifique expressões regulares extras para cada nome
categoria, além do conjunto predefinido que é adicionado dependendo do --nome-tipo
e - nomeação de função opções. Expressões que são fornecidas com o - * - regex opções
são avaliados antes de quaisquer expressões predefinidas. Isso permite que você substitua seletivamente
algumas ou todas as transformações predefinidas. Ao depurar suas próprias expressões, é
frequentemente útil para ver quais expressões correspondem a quais nomes. o --name-regex-trace opção
permite rastrear o processo de aplicação de expressões regulares a nomes.

O valor para o - * - regex options deve ser uma expressão regular semelhante ao perl no formulário
/de cinto de segurança/substituição/. Qualquer caractere pode ser usado como um delimitador em vez de /. Fugindo
do caractere delimitador em de cinto de segurança or substituição não é suportado. Todos os regulares
expressões para cada categoria são colocadas em uma pilha específica da categoria com o último
expressão especificada considerada primeiro. A primeira correspondência bem-sucedida é usada. Para o
--one-accessor-regex (acessores com cardinalidade um), --opt-accessor-regex (acessores
com cardinalidade opcional), e --seq-accessor-regex (acessores com sequência de cardinalidade)
categorias o --acessor-regex expressões são usadas como fallback. Para o --XNUMX-
modificador-regex, --opt-modificador-regex e --seq-modificador-regex categorias o --modificador-
regex expressões são usadas como fallback. Para o --element-type-regex categoria o
--type-regex expressões são usadas como fallback.

As expressões do nome do tipo (--type-regex) são avaliados na string de nome que tem o
seguinte formato:

[namespace ]nome[,nome][,nome][,nome]

As expressões de nome de tipo de elemento (--element-type-regex), eficaz apenas quando o
--generate-element-type opção é especificada, são avaliados na string de nome que tem o
seguinte formato:

namespace nome

No formato do nome do tipo, o namespace parte seguida por um espaço está presente apenas para global
nomes de tipo. Para tipos e elementos globais definidos em esquemas sem um namespace de destino,
do namespace parte está vazia, mas o espaço ainda está presente. No formato do nome do tipo após
inicial nome componente, até três adicionais nome componentes podem estar presentes,
separados por vírgulas. Por exemplo:

http://example.com/hello tipo

Foo

foo, iterador

foo, const, iterator

O seguinte conjunto de expressões regulares predefinidas é usado para transformar nomes de tipo quando
a convenção de nomenclatura maiúscula é selecionada:

/ (?: [^ ]* )? ([^,] +) / \ u $ 1 /

/ (?: [^ ]* )? ([^,] +), ([^,] +) / \ u $ 1 \ u $ 2 /

/ (?: [^ ]* )? ([^,] +), ([^,] +), ([^,] +) / \ u $ 1 \ u $ 2 \ u $ 3 /

/ (?: [^ ]* )? ([^,] +), ([^,] +), ([^,] +), ([^,] +) / \ u $ 1 \ u $ 2 \ u $ 3 \ u $ 4 /

As expressões acessador e modificador (- * accessor-regex e - * modificador-regex) estamos
avaliada na string de nome que tem o seguinte formato:

nome[,nome][,nome]

Depois da inicial nome componente, até dois adicionais nome componentes podem estar presentes,
separados por vírgulas. Por exemplo:

Foo

dom, documento

foo, padrão, valor

O seguinte conjunto de expressões regulares predefinidas é usado para transformar nomes de acessadores
quando o Java convenção de nomenclatura é selecionada:

/ ([^,] +) / obter \ u $ 1 /

/ ([^,] +), ([^,] +) / obter \ u $ 1 \ u $ 2 /

/ ([^,] +), ([^,] +), ([^,] +) / obter \ u $ 1 \ u $ 2 \ u $ 3 /

Para as categorias de analisador, serializador e enumerador, o correspondente
expressões são avaliadas em nomes locais de elementos e em valores de enumeração,
respectivamente. Por exemplo, a seguinte expressão regular predefinida é usada para
transformar nomes de função de análise quando o Java convenção de nomenclatura é selecionada:

/(.+)/analisar\u$1/

A categoria const é usada para criar nomes de constantes C ++ para o elemento / curinga / texto
IDs de conteúdo em tipos ordenados.

Consulte também a seção REGEX E CITAÇÕES DE SHELL abaixo.

TIPO MAPA


Arquivos de mapa de tipo são usados ​​em C ++ / Parser para definir um mapeamento entre o esquema XML e C ++
tipos. O compilador usa essas informações para determinar os tipos de retorno de publicar_*
funções em esqueletos de analisador correspondentes a tipos de esquema XML, bem como tipos de argumento
para retornos de chamada correspondentes a elementos e atributos desses tipos.

O compilador tem um conjunto de regras de mapeamento predefinidas que mapeiam tipos de esquema XML integrados para
tipos C ++ adequados (discutidos abaixo) e todos os outros tipos para anular. Ao fornecer o seu próprio
mapas de tipo, você pode substituir essas regras predefinidas. O formato do arquivo de mapa de tipo é
apresentado a seguir:

namespace namespace do esquema [ namespace cxx ]
{
( incluir nome do arquivo; )*
([ tipo ] tipo de esquema tipo cxx-ret [ tipo cxx-arg ]; )*
}

Ambos namespace do esquema e tipo de esquema são padrões regex enquanto namespace cxx, cxx-ret-
tipo e tipo cxx-arg são substituições de padrão regex. Todos os nomes podem ser opcionalmente
entre "", por exemplo, para incluir espaços em branco.

namespace do esquema determina o namespace do esquema XML. Opcional namespace cxx é prefixado para
cada nome de tipo C ++ nesta declaração de namespace. tipo cxx-ret é um nome de tipo C ++ que
é usado como um tipo de retorno para o publicar_* funções. Opcional tipo cxx-arg é um argumento
tipo para funções de retorno de chamada correspondentes a elementos e atributos desse tipo. Se cxx-
tipo argumento não é especificado, o padrão é tipo cxx-ret if tipo cxx-ret termina com * or &
(ou seja, é um ponteiro ou uma referência) e const tipo cxx-ret& de outra forma. nome do arquivo is
um nome de arquivo no formato "" ou <> e é adicionado com o #include diretiva para
o código gerado.

A # caractere inicia um comentário que termina com uma nova linha ou final de arquivo. Para especificar um
nome que contém # coloque-o entre "". Por exemplo:

namespace http://www.example.com/xmlns/my my
{
incluir "my.hxx";

# Passe maçãs por valor.
#
maçã maçã;

# Passe laranjas como ponteiros.
#
laranja orange_t *;
}

No exemplo acima, para o http://www.example.com/xmlns/my#laranja Tipo de esquema XML, o
my :: orange_t * O tipo C ++ será usado como tipo de retorno e argumento.

Várias declarações de namespace podem ser especificadas em um único arquivo. O namespace
declaração também pode ser completamente omitida para mapear tipos em um esquema sem um namespace.
Por exemplo:

incluir "my.hxx";
maçã maçã;

namespace http://www.example.com/xmlns/my
{
laranja "const orange_t *";
}

O compilador tem uma série de regras de mapeamento predefinidas que podem ser apresentadas como
os seguintes arquivos de mapa. Os tipos integrados do esquema XML baseado em string são mapeados para
std :: string or std :: wstring dependendo do tipo de caractere selecionado com o --char-type
opção (carbonizar por padrão).

namespace http://www.w3.org/2001/XMLSchema
{
booleano bool bool;

byte "char assinado" "char assinado";
unsignedByte "unsigned char" "unsigned char";

curto curto curto;
unsignedShort "unsigned short" "unsigned short";

int int;
unsignedInt "unsigned int" "unsigned int";

long "long long" "long long";
unsignedLong "unsigned long long" "unsigned long long";

inteiro "long long" "long long";

negativeInteger "long long" "long long";
nonPositiveInteger "long long" "long long";

PositiveInteger "unsigned long long" "unsigned long long";
nonNegativeInteger "unsigned long long" "unsigned long long";

flutuar flutuar flutuar;
duplo duplo duplo;
decimal duplo duplo;

string std :: string;
normalizedString std :: string;
token std :: string;
Nome std :: string;
NMTOKEN std :: string;
NCName std :: string;
ID std :: string;
IDREF std :: string;
linguagem std :: string;
anyURI std :: string;

NMTOKENS xml_schema :: string_sequence;
IDREFS xml_schema :: string_sequence;

QName xml_schema :: qname;

base64Binary std :: auto_ptr
std :: auto_ptr ;
hexBinary std :: auto_ptr
std :: auto_ptr ;

date xml_schema :: date;
dateTime xml_schema :: date_time;
duração xml_schema :: duração;
gDay xml_schema :: gday;
gMonth xml_schema :: gmonth;
gMonthDay xml_schema :: gmonth_day;
gYear xml_schema :: gyear;
gYearMonth xml_schema :: gyear_month;
time xml_schema :: time;
}

A última regra predefinida mapeia tudo o que não foi mapeado pelas regras anteriores para anular:

namespace. *
{
. * void void;
}

Quando você fornece seus próprios mapas de tipo com o --type-mapa opção, eles são avaliados primeiro.
Isso permite que você substitua seletivamente as regras predefinidas.

REGEX E SHELL CITAÇÃO


Ao inserir um argumento de expressão regular na linha de comando do shell, é frequente
necessário usar aspas (colocando o argumento entre "" ou '') para evitar que
shell de interpretar certos caracteres, por exemplo, espaços como separadores de argumento e
$ como expansões variáveis.

Infelizmente, é difícil conseguir isso de uma maneira que seja portátil entre shells POSIX,
como aqueles encontrados no GNU / Linux e UNIX e shell do Windows. Por exemplo, se você usar ""
para citar, você obterá um resultado errado com shells POSIX se sua expressão contiver $.
A maneira padrão de lidar com isso em sistemas POSIX é usar '' em seu lugar.
Infelizmente, o shell do Windows não remove '' dos argumentos quando eles são passados ​​para
formulários. Como resultado você pode ter que usar '' para POSIX e "" para Windows ($ não é
tratado como um caractere especial no Windows).

Como alternativa, você pode salvar opções de expressão regular em um arquivo, uma opção por linha,
e usar este arquivo com o --arquivo de opções opção. Com esta abordagem, você não precisa
se preocupe com a cotação do shell.

DIAGNÓSTICO


Se o arquivo de entrada não for uma definição de esquema XML W3C válida, xsdcxx irá emitir diagnóstico
mensagens para STDERR e saia com código de saída diferente de zero.

Use xsdcxx online usando serviços onworks.net


Servidores e estações de trabalho gratuitos

Baixar aplicativos Windows e Linux

Comandos Linux

Ad