InglésFrancésEspañol

Ad


icono de página de OnWorks

xsdcxx: en línea en la nube

Ejecute xsdcxx en el proveedor de alojamiento gratuito de OnWorks a través de Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS

Este es el comando xsdcxx que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.

PROGRAMA:

NOMBRE


xsdcxx - Esquema XML W3C al compilador C ++

SINOPSIS


xsdcxx comando [ opciones ] presentar [ presentar ...]
xsdcxx ayuda [ comando ]
xsdcxx versión

DESCRIPCIÓN


xsdcxx Genera mapeo de C ++ de tipo estático específico de vocabulario a partir del esquema XML de W3C
definiciones. Un mapeo particular para producir es seleccionado por un comando. Cada mapeo tiene un
número de mapas específicos opciones que debería aparecer, en su caso, después de la comando. Entrada
Los archivos deben ser definiciones de esquemas XML W3C. El conjunto exacto de archivos generados depende
en el mapeo y las opciones seleccionadas.

COMANDOS


árbol-cxx
Genere el mapeo C ++ / Tree. Para cada archivo de entrada en el formulario nombre.xsd las
Se generan los siguientes archivos C ++: nombre.hxx (archivo de cabecera), nombre.ixx (archivo en línea,
generado solo si el --generar en línea se especifica la opción), nombre.cxx (Fuente
archivo), y nombre-fwd.hxx (archivo de declaración de reenvío, generado solo si el
--generar hacia adelante se especifica la opción).

analizador cxx
Genere el mapeo C ++ / Parser. Para cada archivo de entrada en el formulario nombre.xsd las
Se generan los siguientes archivos C ++: nombre-pskel.hxx (archivo de encabezado del esqueleto del analizador),
nombre-pskel.ixx (archivo en línea del esqueleto del analizador, generado solo si el --generar-
en línea se especifica la opción), y nombre-pskel.cxx (archivo fuente del esqueleto del analizador). Si
las --generar-noop-impl or --generar-imprimir-impl se especifica la opción, la
Se generan los siguientes archivos de implementación de muestra adicionales: nombre-pimpl.hxx
(archivo de encabezado de implementación del analizador) y nombre-pimpl.cxx (implementación del analizador
archivo fuente). Si el --generar-controlador-de-prueba se especifica la opción, el adicional
nombre-controlador.cxx Se genera el archivo del controlador de prueba.

ayuda Imprima la información de uso y salga. Usar

xsdcxx ayuda comando

para obtener ayuda específica del comando.

versión
Imprime la versión y sal.

CAMPUS


Específico del comando opciones, si lo hay, debe aparecer después de la correspondiente comando.

común opciones
--estándar versión
Especifique el estándar C ++ que debe cumplir el código generado. Valores válidos
en c ++ 98 (predeterminado) y c ++ 11.

El estándar C ++ afecta varios aspectos del código generado que se discuten
con más detalle en varios documentos específicos de mapeo. En general, cuando C ++ 11 es
seleccionado, el código generado se basa en la semántica de movimiento y utiliza std :: unique_ptr
en lugar de obsoleto std :: auto_ptr.

Cuando se selecciona el modo C ++ 11, normalmente no es necesario realizar ningún paso adicional
además de habilitar C ++ 11 en su compilador de C ++, si es necesario. El compilador XSDCXX
agregar automáticamente la macro necesaria define a los archivos de encabezado generados que
cambiará la biblioteca de tiempo de ejecución XSDCXX de solo encabezado (libxsd) al modo C ++ 11.
Sin embargo, si incluye alguno de los encabezados de tiempo de ejecución XSDCXX directamente en su
aplicación (normalmente solo incluye los encabezados generados), entonces necesitará
para definir el XSD_CXX11 macro para todo su proyecto.

- tipo char tipo
Genera código usando el carácter provisto tipo en lugar del predeterminado tanque. Válido
los valores son tanque y wchar_t.

--char-codificación enc
Especifique la codificación de caracteres que se debe utilizar en el código generado. Válido
valores para el tanque tipo de carácter son utf8 (Predeterminado), iso8859-1, lcp (Xerces-C ++
página de códigos local), y personalizado. Si pasa personalizado como valor, entonces necesitarás
para incluir el encabezado de implementación del transcodificador para su codificación al principio
de los archivos de encabezado generados (consulte el --hxx-prólogo opción).

Para el wchar_t tipo de carácter el único valor válido es auto y la codificación es
seleccionado automáticamente entre UTF-16 y UTF-32 / UCS-4, dependiendo de la wchar_t
tamaño del tipo.

--salida-dir dir
Escribir archivos generados en dir en lugar del directorio actual.

--generar en línea
Genere funciones simples en línea. Esta opción activa la creación del archivo en línea.

--generar-esquema-xml
Genere un archivo de encabezado de C ++ como si el esquema que se compila definiera el esquema XML
espacio de nombres. Para el mapeo C ++ / Tree, el archivo resultante contendrá definiciones
para todos los tipos integrados de esquemas XML. Para el mapeo C ++ / Parser, el archivo resultante
contendrá definiciones para todos los esqueletos e implementaciones del analizador
correspondiente a los tipos incorporados del esquema XML.

El archivo de esquema proporcionado al compilador no necesita existir y solo se usa para derivar
el nombre del archivo de encabezado resultante. Utilizar el --esquema-xml-externo opción de
incluir este archivo en los archivos generados para otros esquemas.

--esquema-xml-externo presentar
Incluya un archivo de encabezado derivado de presentar en lugar de generar el esquema XML
asignación de espacio de nombres en línea. El archivo proporcionado no necesita existir y solo se usa para
derivar el nombre del archivo de encabezado incluido. Utilizar el --generar-esquema-xml opción
para generar este archivo de encabezado.

--namepace-map xns=SNC
Asignar espacio de nombres de esquema XML xns al espacio de nombres de C ++ SNC. Repita esta opción para especificar
mapeo para más de un espacio de nombres de esquema XML. Por ejemplo, la siguiente opción:

--namepace-map http://example.com/foo/bar= foo :: bar

Mapeará el http://example.com/foo/bar Espacio de nombres de esquema XML al foo :: bar C + +
espacio de nombres

- espacio de nombres-expresión regular expresiones regulares
Añada expresiones regulares a la lista de expresiones regulares utilizadas para traducir el espacio de nombres del esquema XML
nombres a nombres de espacios de nombres de C ++. expresiones regulares es una expresión regular similar a Perl en la forma
/patrón/reemplazo/. Cualquier carácter se puede utilizar como delimitador en lugar de /.
Escapar del carácter delimitador en patrón or reemplazo no es apoyado.

Todas las expresiones regulares se insertan en una pila con la última especificada
expresión considerada en primer lugar. Se utiliza la primera coincidencia que tenga éxito. Regular
las expresiones se aplican a una cadena en la forma

nombre de archivo espacio de nombres

Por ejemplo, si tiene archivo hola.xsd con espacio de nombres http://example.com/hello y
tu corres xsd en este archivo, la cadena en cuestión será:

hola.xsd. http://example.com/hello

Para el espacio de nombres de esquema XML incorporado, la cadena es:

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

Los siguientes tres pasos se realizan para cada expresión regular hasta que la coincidencia
es encontrado:

1. Se aplica la expresión y si el resultado está vacío, la siguiente expresión es
considerado.

2. Todas / son reemplazados por ::.

3. Se verifica que el resultado sea un nombre de ámbito de C ++ válido (p. Ej., foo :: bar). Si esto
prueba tiene éxito, el resultado se utiliza como un nombre de espacio de nombres de C ++.

Como ejemplo, la siguiente expresión asigna espacios de nombres de esquemas XML en la forma
http://example.com/foo/bar a los espacios de nombres de C ++ en la forma foo :: bar:

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

Consulte también la sección COTIZACIÓN DE REGEX Y SHELL a continuación.

- espacio de nombres-regex-trace
Rastrear el proceso de aplicar expresiones regulares especificadas con el - espacio de nombres-
expresiones regulares opción. Utilice esta opción para averiguar por qué sus expresiones regulares no funcionan
lo que esperabas que hicieran.

--nombre-reservado n[=r]
Agregar nombre n a la lista de nombres que no deben usarse como identificadores. El nombre
opcionalmente puede ir seguido de = y el nombre de reemplazo r eso debería ser usado
en lugar de. Todas las palabras clave de C ++ ya están en esta lista.

--incluido-con-corchetes
Utilice corchetes angulares (<>) en lugar de comillas ("") en los #incluir directivas

--include-prefijo prefijo
Añada prefijo para generar #incluir rutas directivas.

Por ejemplo, si tuviera el siguiente elemento de importación en su esquema

<importar espacio de nombres = "..." schemaLocation = "base.xsd" />

y compilé este fragmento con --include-prefijo esquemas /, entonces el incluir
directiva en el código generado sería:

#incluir "esquemas / base.hxx"

--incluir-expresiones regulares expresiones regulares
Añada expresiones regulares a la lista de expresiones regulares utilizadas para transformar #incluir Directivas
caminos. expresiones regulares es una expresión regular similar a Perl en la forma /patrón/reemplazo/.
Cualquier carácter se puede utilizar como delimitador en lugar de /. Escapar del delimitador
personaje en patrón or reemplazo no es apoyado.

Todas las expresiones regulares se insertan en una pila con la última especificada
expresión considerada en primer lugar. Se utiliza la primera coincidencia que tenga éxito.

Como ejemplo, la siguiente expresión transforma las rutas en la forma
esquemas / foo / bar a caminos en la forma generado / foo / bar:

% esquemas /(.+)% generado / $ 1%

Consulte también la sección COTIZACIÓN DE REGEX Y SHELL a continuación.

--incluir-rastro-regex
Rastrear el proceso de aplicar expresiones regulares especificadas con el --incluir-
expresiones regulares opción. Utilice esta opción para averiguar por qué sus expresiones regulares no funcionan
lo que esperabas que hicieran.

--guard-prefijo prefijo
Añada prefijo a los protectores de inclusión de encabezado generados. El prefijo se transforma en superior.
mayúsculas y minúsculas y los caracteres que son ilegales en un nombre de macro de preprocesador se reemplazan por
subrayados. Si no se especifica esta opción, la parte del directorio de la entrada
El archivo de esquema se utiliza como prefijo.

--hxx-sufijo sufijo
Use el proporcionado sufijo en lugar del predeterminado .hxx para construir el nombre del
archivo de cabecera. Tenga en cuenta que este sufijo también se usa para construir nombres de archivos de encabezado
correspondiente a esquemas incluidos / importados.

--ixx-sufijo sufijo
Use el proporcionado sufijo en lugar del predeterminado .ixx para construir el nombre del
archivo en línea.

--cxx-sufijo sufijo
Use el proporcionado sufijo en lugar del predeterminado .cxx para construir el nombre del
archivo fuente.

--fwd-sufijo sufijo
Use el proporcionado sufijo en lugar del predeterminado -fwd.hxx para construir el nombre de
el archivo de declaración de reenvío.

--hxx-expresión regular expresiones regulares
Utilice la expresión proporcionada para construir el nombre del archivo de encabezado. expresiones regulares es un
Expresión regular similar a Perl en la forma /patrón/reemplazo/. Tenga en cuenta que esto
La expresión también se usa para construir nombres de archivos de encabezado correspondientes a
esquemas incluidos / importados. Consulte también la sección COTIZACIÓN DE REGEX Y SHELL a continuación.

--ixx-expresión regular expresiones regulares
Utilice la expresión proporcionada para construir el nombre del archivo en línea. expresiones regulares es un
Expresión regular similar a Perl en la forma /patrón/reemplazo/. Ver también el REGEX
Y la sección de COTIZACIÓN DE SHELL a continuación.

--cxx-expresión regular expresiones regulares
Utilice la expresión proporcionada para construir el nombre del archivo fuente. expresiones regulares es un
Expresión regular similar a Perl en la forma /patrón/reemplazo/. Ver también el REGEX
Y la sección de COTIZACIÓN DE SHELL a continuación.

--fwd-regex expresiones regulares
Utilice la expresión proporcionada para construir el nombre del archivo de declaración de reenvío.
expresiones regulares es una expresión regular similar a Perl en la forma /patrón/reemplazo/. Vea también la
la sección de COTIZACIÓN DE REGEX Y SHELL a continuación.

--hxx-prólogo texto
recuadro texto al comienzo del archivo de encabezado.

--ixx-prólogo texto
recuadro texto al principio del archivo en línea.

--cxx-prólogo texto
recuadro texto al principio del archivo fuente.

--fwd-prólogo texto
recuadro texto al comienzo del archivo de declaración de reenvío.

--prólogo texto
recuadro texto al principio de cada archivo generado para el que no hay archivo-
prólogo específico.

--hxx-epílogo texto
recuadro texto al final del archivo de encabezado.

--ixx-epílogo texto
recuadro texto al final del archivo en línea.

--cxx-epílogo texto
recuadro texto al final del archivo fuente.

--fwd-epílogo texto
recuadro texto al final del archivo de declaración de reenvío.

--epílogo texto
recuadro texto al final de cada archivo generado para el que no hay un archivo específico
epílogo.

--hxx-prólogo-archivo presentar
Inserte el contenido del presentar al comienzo del archivo de encabezado.

--ixx-prólogo-archivo presentar
Inserte el contenido del presentar al principio del archivo en línea.

--cxx-prólogo-archivo presentar
Inserte el contenido del presentar al principio del archivo fuente.

--fwd-prólogo-archivo presentar
Inserte el contenido del presentar al comienzo del archivo de declaración de reenvío.

--prólogo-archivo presentar
Inserte el contenido del presentar al principio de cada archivo generado para el que
no hay un archivo de prólogo específico del archivo.

--hxx-archivo-epílogo presentar
Inserte el contenido del presentar al final del archivo de encabezado.

--ixx-archivo-epílogo presentar
Inserte el contenido del presentar al final del archivo en línea.

--cxx-archivo-epílogo presentar
Inserte el contenido del presentar al final del archivo fuente.

--fwd-archivo-epílogo presentar
Inserte el contenido del presentar al final del archivo de declaración de reenvío.

- archivo-epílogo presentar
Inserte el contenido del presentar al final de cada archivo generado para el que hay
ningún archivo de epílogo específico de archivo.

--símbolo de exportación símbolo
recuadro símbolo en lugares donde DLL exportan / importan declaraciones de control
(__declspec (dllexport / dllimport)) son necesarios.

--exportación-xml-esquema
Tipos de exportación / importación en el espacio de nombres del esquema XML utilizando el símbolo de exportación proporcionado
con el --símbolo de exportación opción. La XSD_NO_EXPORTAR La macro se puede utilizar para omitir esta
código durante la compilación de C ++, que puede ser útil si desea utilizar el mismo
código generado en múltiples plataformas.

--export-mapas
Exporte mapas de soporte de polimorfismo desde una DLL de Win32 en la que se encuentra este código generado.
metido. Esto es necesario cuando la jerarquía de tipos se divide en varias DLL
ya que, de lo contrario, cada DLL tendrá su propio conjunto de mapas. En esta situación el
código generado para la DLL que contiene tipos base y / o grupo de sustitución
Las cabezas deben compilarse con esta opción y el código generado para todas las demás DLL.
debe ser compilado con --importar-mapas. Esta opción solo es válida junto con
--generado-polimórfico. XSD_NO_EXPORTAR La macro se puede utilizar para omitir este código.
durante la compilación de C ++, que puede ser útil si desea utilizar el mismo
código generado en múltiples plataformas.

--importar-mapas
Importe mapas de soporte de polimorfismo a un archivo DLL o ejecutable de Win32 en el que este
el código generado está vinculado. Ver el --export-mapas documentación de opciones para obtener más detalles.
Esta opción solo es válida junto con --generado-polimórfico. XSD_NO_EXPORTAR
La macro se puede utilizar para omitir este código durante la compilación de C ++, lo que puede ser útil si
le gustaría utilizar el mismo código generado en múltiples plataformas.

--generar-dep
Generar para lograr información de dependencia. Esta opción desencadena la creación del .d
archivo que contiene las dependencias de los archivos generados en el archivo de esquema principal como
así como todos los archivos de esquema que incluye / importa, de forma transitiva. Esta
El archivo de dependencia normalmente se incluye en el archivo principal. makefile para implementar
seguimiento automático de dependencias.

Tenga en cuenta también que la generación automática de dependencias no se admite en el archivo por
modo de tipo (--archivo por tipo). En este caso, todos los archivos generados se producen
con una única invocación del compilador y dependen de todos los esquemas. Como resultado, es
Es más fácil establecer tal dependencia manualmente, tal vez con la ayuda del
- lista de archivos * .

--generar-dep-solo
Generar para lograr información de dependencia solamente.

--dep-falso
Genere objetivos falsos para archivos de esquema incluidos / importados, haciendo que cada uno dependa
en nada. Tales reglas ficticias funcionan para lograr errores causados ​​por la eliminación de
archivos de esquema sin actualizar también el archivo de dependencia para que coincida.

--dep-objetivo dirigidos
Cambie el destino de la regla de dependencia. Por defecto contiene todos los generados
Archivos C ++, así como el archivo de dependencia en sí, sin prefijos de directorio. Si
necesita varios objetivos, entonces puede especificarlos como un solo espacio
argumento separado o puede repetir esta opción varias veces.

--dep-sufijo sufijo
Use el proporcionado sufijo en lugar del predeterminado .d para construir el nombre del
archivo de dependencia.

--dep-regex expresiones regulares
Utilice la expresión proporcionada para construir el nombre del archivo de dependencia. expresiones regulares is
una expresión regular similar a Perl en la forma /patrón/reemplazo/. Ver también el
Sección de COTIZACIÓN DE REGEX Y SHELL a continuación.

--disable-advertencia advertir
Deshabilitar la advertencia de impresión con id advertir. Si todos se especifica para el ID de advertencia entonces
todas las advertencias están desactivadas.

--archivo de opciones presentar
Leer opciones adicionales de presentar. Cada opción debe aparecer en una línea separada
opcionalmente seguido de un espacio y un valor de opción. Líneas vacías y líneas que comienzan
# son ignorados. Los valores de las opciones pueden encerrarse entre el doble (") o soltero (')
comillas para preservar los espacios en blanco iniciales y finales, así como para especificar vacíos
valores. Si el valor en sí contiene comillas iniciales o finales, enciérrelo con un
par extra de comillas, por ejemplo '"X"'. Las cotizaciones no iniciales y finales son
interpretado como parte del valor de la opción.

La semántica de proporcionar opciones en un archivo es equivalente a proporcionar las mismas
conjunto de opciones en el mismo orden en la línea de comando en el punto donde el
--archivo de opciones se especifica la opción excepto que el shell de escape y las comillas son
no requerido. Puede repetir esta opción para especificar más de un archivo de opciones.

--mostrar-sloc
Muestra el número de líneas de código fuente físicas generadas (SLOC).

--sloc-límite número
Compruebe que el número de líneas de código fuente físicas generadas (SLOC) no
exceden número.

- licencia de propiedad
Indique que el código generado tiene una licencia propietaria en lugar de
la GPL.

- literales personalizados presentar
Cargue una cadena XML personalizada a asignaciones literales de C ++ desde presentar. Este mecanismo puede ser
útil si está utilizando una codificación de caracteres personalizada y algunas de las cadenas en su
Los esquemas, por ejemplo, nombres de elementos / atributos o valores de enumeración, contienen
Caracteres ASCII. En este caso, deberá proporcionar una asignación personalizada a C ++
literales para tales cadenas. El formato de este archivo se especifica en el a medida
literales.xsd Archivo de esquema XML que se puede encontrar en el directorio de documentación.

--preservar-anónimo
Conserve los tipos anónimos. Por defecto, los tipos anónimos se nombran automáticamente con
nombres derivados de los elementos / atributos adjuntos. Porque las asignaciones implementadas
por este compilador requiere que todos los tipos sean nombrados, esta opción solo es útil si
desea asegurarse de que sus esquemas no tengan tipos anónimos.

--mostrar-anónimo
Muestre elementos y atributos que sean de tipo anónimo. Esta opción solo hace
sentido junto con el --preservar-anónimo .

--anónimo-expresión regular expresiones regulares
Añada expresiones regulares a la lista de expresiones regulares utilizadas para derivar nombres para anónimos
tipos de los atributos / elementos adjuntos. expresiones regulares es un regular similar a Perl
expresión en la forma /patrón/reemplazo/. Cualquier personaje puede usarse como
delimitador en lugar de /. Escapar del carácter delimitador en patrón or
reemplazo no es apoyado.

Todas las expresiones regulares se insertan en una pila con la última especificada
expresión considerada en primer lugar. Se utiliza la primera coincidencia que tenga éxito. Regular
las expresiones se aplican a una cadena en la forma

nombre de archivo espacio de nombres xpath

Por ejemplo:

hola.xsd http://example.com/hello elementos

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

Como ejemplo, la siguiente expresión hace que todos los nombres derivados comiencen con
letras mayúsculas. Esto podría ser útil cuando su convención de nomenclatura requiera tipo
nombres que comiencen con letras mayúsculas:

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

Consulte también la sección COTIZACIÓN DE REGEX Y SHELL a continuación.

- rastreo-de-expresiones regulares anónimo
Rastrear el proceso de aplicar expresiones regulares especificadas con el --anónimo-
expresiones regulares opción. Utilice esta opción para averiguar por qué sus expresiones regulares no funcionan
lo que esperabas que hicieran.

--mapa de localización ol=nl
Asignar la ubicación del esquema original ol que se especifica en el esquema XML incluyen o
importar elementos a la nueva ubicación del esquema nl. Repita esta opción para mapear más de uno
ubicación del esquema. Por ejemplo, la siguiente opción asigna el
http://example.com/foo.xsd URL a la foo.xsd archivo local.

--mapa de localización http://example.com/foo.xsd= foo.xsd

- ubicación-expresión regular expresiones regulares
Añada expresiones regulares a la lista de expresiones regulares utilizadas para mapear ubicaciones de esquema que son
especificados en el esquema XML incluyen o importan elementos. expresiones regulares es similar a Perl
expresión regular en la forma /patrón/reemplazo/. Cualquier personaje puede usarse como
un delimitador en lugar de /. Escapar del carácter delimitador en patrón or
reemplazo no es apoyado. Todas las expresiones regulares se insertan en una pila.
con la última expresión especificada considerada en primer lugar. El primer partido que tiene éxito
se utiliza.

Por ejemplo, la siguiente expresión asigna ubicaciones de URL en el formulario
http://example.com/foo/bar.xsd a archivos locales en el formulario barra.xsd:

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

Consulte también la sección COTIZACIÓN DE REGEX Y SHELL a continuación.

--ubicación-regex-traza
Rastrear el proceso de aplicar expresiones regulares especificadas con el --localización-
expresiones regulares opción. Utilice esta opción para averiguar por qué sus expresiones regulares no funcionan
lo que esperabas que hicieran.

--archivo por tipo
Genere un conjunto separado de archivos C ++ para cada tipo definido en el esquema XML. Nota
que en este modo solo necesita compilar el (los) esquema (s) raíz y el código será
generado para todos los esquemas incluidos e importados. Este modo de compilación es principalmente
útil cuando algunos de sus esquemas no se pueden compilar por separado o tienen cíclicos
dependencias que implican la herencia de tipos. Otras opciones relacionadas con este modo
son: --tipo-archivo-regex, --esquema-archivo-regex, --archivo de tipo gordoy - lista de archivos.

--tipo-archivo-regex expresiones regulares
Añada expresiones regulares a la lista de expresiones regulares utilizadas para traducir nombres de tipos a archivos
nombres cuando el --archivo por tipo Se especifica la opción. expresiones regulares es un regular similar a Perl
expresión en la forma /patrón/reemplazo/. Cualquier personaje puede usarse como
delimitador en lugar de /. Escapar del carácter delimitador en patrón or
reemplazo no es apoyado. Todas las expresiones regulares se insertan en una pila.
con la última expresión especificada considerada en primer lugar. El primer partido que tiene éxito
se utiliza. Las expresiones regulares se aplican a una cadena en la forma

espacio de nombres escribe un nombre

Por ejemplo, el siguiente tipo de mapas de expresión foo que se define en el
http://example.com/bar espacio de nombres al nombre del archivo bar-foo:

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

Consulte también la sección COTIZACIÓN DE REGEX Y SHELL a continuación.

--tipo-archivo-regex-traza
Rastrear el proceso de aplicar expresiones regulares especificadas con el --tipo-archivo-
expresiones regulares opción. Utilice esta opción para averiguar por qué sus expresiones regulares no funcionan
lo que esperabas que hicieran.

--esquema-archivo-regex expresiones regulares
Añada expresiones regulares a la lista de expresiones regulares utilizadas para traducir nombres de archivos de esquema
cuando --archivo por tipo Se especifica la opción. expresiones regulares es un regular similar a Perl
expresión en la forma /patrón/reemplazo/. Cualquier personaje puede usarse como
delimitador en lugar de /. Escapar del carácter delimitador en patrón or
reemplazo no es apoyado. Todas las expresiones regulares se insertan en una pila.
con la última expresión especificada considerada en primer lugar. El primer partido que tiene éxito
se utiliza. Las expresiones regulares se aplican a la ruta absoluta del sistema de archivos de un
archivo de esquema y el resultado, incluida la parte del directorio, si existe, se utiliza para derivar
las #incluir rutas de directivas, así como las rutas de archivo de C ++ generadas. Esta opción,
para cada año fiscal junto con la --tipo-archivo-regex son principalmente útiles para colocar los archivos generados en
subdirectorios o para resolver conflictos de nombres de archivos.

Por ejemplo, la siguiente expresión asigna archivos de esquema en el foo / 1.0.0 /
subdirectorio a los archivos en el foo / subdirectorio. Como resultado, el #incluir
Las rutas de directivas para tales esquemas estarán en el foo / schema.hxx forma y el
Los archivos C ++ generados se colocarán en el foo / subdirectorio:

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

Consulte también la sección COTIZACIÓN DE REGEX Y SHELL a continuación.

--schema-file-regex-traza
Rastrear el proceso de aplicar expresiones regulares especificadas con el --archivo-de-esquema-
expresiones regulares opción. Utilice esta opción para averiguar por qué sus expresiones regulares no funcionan
lo que esperabas que hicieran.

--archivo de tipo gordo
Genere código correspondiente a elementos globales en archivos de tipo en lugar de esquema
archivos cuando el --tipo-archivo-regex se especifica la opción. Esta opción es principalmente
útil cuando se intenta minimizar la cantidad de código objeto que está vinculado a un
ejecutable empaquetando el código generado compilado en una biblioteca estática (archivo).

- lista de archivos presentar
Escriba una lista de archivos C ++ generados para presentar. Esta opción es principalmente útil en
modo de compilación de archivo por tipo (--archivo por tipo) para crear una lista de C ++ generado
archivos, por ejemplo, como un fragmento de archivo MAKE.

--archivo-lista-prólogo texto
recuadro texto al principio de la lista de archivos. Como conveniencia, todas las apariciones de
las \n secuencia de caracteres en texto se reemplazan con nuevas líneas. Esta opción puede, por
Por ejemplo, se puede utilizar para asignar la lista de archivos generada a una variable MAKE.

--archivo-lista-epílogo texto
recuadro texto al final de la lista de archivos. Por conveniencia, todas las apariciones del
\n secuencia de caracteres en texto se reemplazan con nuevas líneas.

--archivo-lista-delim texto
Delimite los nombres de archivo escritos en la lista de archivos con texto en lugar de nuevas líneas. Como un
conveniencia, todas las apariciones de la \n secuencia de caracteres en texto son reemplazados por
nuevas líneas.

árbol-cxx comando opciones
--generado-polimórfico
Genere código con reconocimiento de polimorfismo. Especifique esta opción si usa la sustitución
grupos o xsi: tipo. Utilizar el - tipo polimórfico or - tipo polimórfico-todos opción de
especificar qué jerarquías de tipos son polimórficas.

- tipo polimórfico tipo
Indican que tipo es una raíz de una jerarquía de tipos polimórficos. El compilador puede
a menudo determinan automáticamente qué tipos son polimórficos en función de la sustitución
declaraciones de grupo. Sin embargo, es posible que deba utilizar esta opción si no está utilizando
grupos de sustitución o si los grupos de sustitución se definen en otro esquema. usted
necesita especificar esta opción al compilar cada archivo de esquema que hace referencia tipo.
El tipo El argumento es un nombre de tipo de esquema XML que se puede calificar opcionalmente con
un espacio de nombres en el espacio de nombres#nombre .

- tipo polimórfico-todos
Indique que todos los tipos deben tratarse como polimórficos.

--placa polimórfica número
Especifique la placa de mapa polimórfica en la que debe registrarse el código generado. Esta
La funcionalidad es principalmente útil para segregar múltiples esquemas que definen el
mismos tipos polimórficos.

- tipo ordenado tipo
Indique el orden de los elementos en tipo es significante. Un ejemplo sería un complejo
tipo con elección ilimitada como modelo de contenido donde el orden de los elementos en XML tiene
semántica específica de la aplicación. Para tipos ordenados, el compilador genera un especial
miembro de datos de contenedor y un conjunto correspondiente de descriptores de acceso y modificadores que son
se utiliza para capturar el orden de los elementos y, para contenido mixto, del texto.

El tipo El argumento es un nombre de tipo de esquema XML que se puede calificar opcionalmente con
un espacio de nombres en el espacio de nombres#nombre formulario. Tenga en cuenta también que deberá especificar
esta opción al compilar cada archivo de esquema que tiene otros tipos ordenados derivados
de este tipo.

- derivado de tipo ordenado
Trate automáticamente los tipos derivados de bases ordenadas como también se ordenaron. Este es
principalmente útil si desea poder iterar sobre el contenido completo
utilizando el contenedor de orden de contenido.

- tipo ordenado-mixto
Trate automáticamente los tipos complejos con contenido mixto según lo ordenado.

--ordenado-tipo-todo
Indique que el orden de los elementos en todos los tipos es significativo.

--orden-container tipo
Especifique una plantilla de clase personalizada que debe usarse como contenedor para el contenido
orden en tipos ordenados en lugar del predeterminado std :: vector. Vea - tipo ordenado para
más información sobre el tipo ordenado. Esta opción es principalmente útil si necesita
realizar búsquedas más complejas en el contenedor de orden de contenido, por ejemplo, por elemento
identificación. En este caso, un contenedor como Boost multi-index puede ser más conveniente. Nota
que si utiliza un contenedor personalizado, lo más probable es que también deba incluir el
encabezados relevantes usando el --hxx-prólogo * .

--generar serialización
Genera funciones de serialización. Las funciones de serialización convierten el modelo de objetos
de vuelta a XML.

--generar-ostream
Generar operadores de inserción de ostream (operador <) para tipos generados. Esto permite
uno para imprimir fácilmente un fragmento o el modelo de objeto completo para depurar o registrar.

--generar-oxígeno
Genere comentarios de documentación adecuados para la extracción por parte de Doxygen.
sistema de documentación. La documentación de las anotaciones se agrega a los comentarios si
presente en el esquema.

--generar-comparación
Generar operadores de comparación (operador == y operador! =) para tipos complejos.
La comparación se realiza por miembros.

--generar-predeterminado-ctor
Genere constructores predeterminados incluso para tipos que tienen miembros requeridos. Requerido
los miembros de una instancia construida con dicho constructor no se inicializan y
acceder a ellos da como resultado un comportamiento indefinido.

--generar-desde-base-ctor
Genere constructores que esperan una instancia de un tipo base seguido de todos
miembros requeridos.

--supresión-asignación
Suprima la generación de operadores de asignación de copia para tipos complejos. Si esto
se especifica la opción, los operadores de asignación de copia para tales tipos se declaran
privado y dejado sin implementar.

--generar-separar
Genere funciones de separación para los elementos y atributos requeridos. Separar funciones
para las cardinalidades opcionales y de secuencia las proporcionan los respectivos contenedores.
Estas funciones, por ejemplo, le permiten mover subárboles en el modelo de objetos
ya sea dentro del mismo árbol o entre diferentes árboles.

--generar comodín
Genere descriptores de acceso y modificadores, así como código de serialización y análisis para XML
Comodines de esquema (cualquier y cualquier atributo). El contenido XML que coincide con comodines es
presentado como fragmentos DOM. Tenga en cuenta que debe inicializar el tiempo de ejecución de Xerces-C ++
si está utilizando esta opción.

--generar-cualquier-tipo
Extraer y almacenar contenido del esquema XML cualquier tipo escriba como un fragmento DOM. Nota
que necesita inicializar el tiempo de ejecución de Xerces-C ++ si está usando esta opción.

--generar-inserción os
Genere operadores de inserción de flujo de representación de datos para el os flujo de salida
escribe. Repita esta opción para especificar más de un tipo de flujo. La secuencia ACE CDR
(ACE_SalidaCDR) y RPC XDR son reconocidos por el compilador y los necesarios
#incluir las directivas se generan automáticamente. Para tipos de transmisión personalizados, use el
--hxx-prólogo * opciones para proporcionar las declaraciones necesarias.

--generar-extracción is
Genere constructores de extracción de flujo de representación de datos para is flujo de entrada
escribe. Repita esta opción para especificar más de un tipo de flujo. La secuencia ACE CDR
(ACE_EntradaCDR) y RPC XDR son reconocidos por el compilador y los necesarios
#incluir las directivas se generan automáticamente. Para tipos de transmisión personalizados, use el
--hxx-prólogo * opciones para proporcionar las declaraciones necesarias.

--generar hacia adelante
Genere un archivo de encabezado separado con declaraciones de reenvío para los tipos que se
generado.

--suprimir-análisis
Suprime la generación de funciones y constructores de análisis. Usa esta opción
para reducir el tamaño del código generado cuando no es necesario analizar desde XML.

--generar-tipo-de-elemento
Genere tipos en lugar de funciones de análisis y serialización para elementos raíz.
Esto es principalmente útil para distinguir modelos de objetos con el mismo tipo de raíz pero
con diferentes elementos raíz.

--generar-elemento-mapa
Genere un mapa de elementos raíz que permita el análisis y la serialización uniformes de
múltiples elementos raíz. Esta opción solo es válida junto con --generar-elemento-
tipo.

--generar-intellisense
Genere soluciones para los errores de IntelliSense en Visual Studio 2005 (8.0). Cuando esto
se utiliza la opción, el código resultante es un poco más detallado. IntelliSense en
Visual Studio 2008 (9.0) y versiones posteriores no requieren estas soluciones. Apoyo para
IntelliSense en Visual Studio 2003 (7.1) se mejora con esta opción, pero aún se
incompleto.

--omit-atributos-predeterminados
Omita atributos con valores predeterminados y fijos de documentos XML serializados.

- nomenclatura de tipo papa
Especifique la convención de nomenclatura de tipos que se debe utilizar en el código generado. Válido
los estilos son knr (Predeterminado), uccy Java. Consulte la sección CONVENCIÓN DE NOMBRES a continuación.
para obtener más información.

--nombramiento de funciones papa
Especifique la convención de nomenclatura de funciones que se debe utilizar en el código generado.
Los estilos válidos son knr (Predeterminado), lccy Java. Consulte la sección CONVENCIÓN DE NOMBRES
a continuación para más información.

--tipo-regex expresiones regulares
Añada expresiones regulares a la lista de expresiones regulares utilizadas para traducir el tipo de esquema XML
nombres a nombres de tipo C ++. Consulte la sección CONVENCIÓN DE NOMBRES a continuación para obtener más información.
información.

--accesor-expresión regular expresiones regulares
Añada expresiones regulares a la lista de expresiones regulares utilizadas para traducir nombres de esquemas XML de
elementos / atributos a los nombres de las funciones de acceso de C ++. Ver la CONVENCIÓN DE NOMBRAMIENTO
sección a continuación para más información.

--expresión regular de un acceso expresiones regulares
Añada expresiones regulares a la lista de expresiones regulares utilizadas para traducir nombres de esquemas XML de
elementos / atributos con cardinalidad uno para los nombres de las funciones de acceso de C ++. Ver el
Sección CONVENCIÓN DE NOMBRAMIENTO a continuación para obtener más información.

--opt-accesorio-regex expresiones regulares
Añada expresiones regulares a la lista de expresiones regulares utilizadas para traducir nombres de esquemas XML de
elementos / atributos con cardinalidad opcional para los nombres de las funciones de acceso de C ++. Ver
la sección CONVENCIÓN DE NOMBRES a continuación para obtener más información.

--seq-accesorio-regex expresiones regulares
Añada expresiones regulares a la lista de expresiones regulares utilizadas para traducir nombres de esquemas XML de
elementos / atributos con secuencia de cardinalidad a los nombres de las funciones de acceso de C ++. Ver
la sección CONVENCIÓN DE NOMBRES a continuación para obtener más información.

--modificador-expresión regular expresiones regulares
Añada expresiones regulares a la lista de expresiones regulares utilizadas para traducir nombres de esquemas XML de
elementos / atributos a los nombres de las funciones modificadoras de C ++. Ver la CONVENCIÓN DE NOMBRAMIENTO
sección a continuación para más información.

--un-modificador-regex expresiones regulares
Añada expresiones regulares a la lista de expresiones regulares utilizadas para traducir nombres de esquemas XML de
elementos / atributos con cardinalidad uno para los nombres de las funciones modificadoras de C ++. Ver el
Sección CONVENCIÓN DE NOMBRAMIENTO a continuación para obtener más información.

--opt-modificador-regex expresiones regulares
Añada expresiones regulares a la lista de expresiones regulares utilizadas para traducir nombres de esquemas XML de
elementos / atributos con cardinalidad opcional para los nombres de las funciones modificadoras de C ++. Ver
la sección CONVENCIÓN DE NOMBRES a continuación para obtener más información.

--seq-modificador-regex expresiones regulares
Añada expresiones regulares a la lista de expresiones regulares utilizadas para traducir nombres de esquemas XML de
elementos / atributos con secuencia de cardinalidad para nombres de funciones modificadoras de C ++. Ver
la sección CONVENCIÓN DE NOMBRES a continuación para obtener más información.

--parser-regex expresiones regulares
Añada expresiones regulares a la lista de expresiones regulares utilizadas para traducir el elemento de esquema XML
nombres a los nombres de funciones de análisis de C ++. Consulte la sección CONVENCIÓN DE NOMBRES a continuación para
más información.

--serializador-regex expresiones regulares
Añada expresiones regulares a la lista de expresiones regulares utilizadas para traducir el elemento de esquema XML
nombres a los nombres de las funciones de serialización de C ++. Consulte la sección CONVENCIÓN DE NOMBRES a continuación.
para obtener más información.

--const-expresión regular expresiones regulares
Añada expresiones regulares a la lista de expresiones regulares utilizadas para traducir XML derivado de esquemas
nombres a nombres de constantes de C ++. Consulte la sección CONVENCIÓN DE NOMBRES a continuación para obtener más información.
información.

--enumerador-regex expresiones regulares
Añada expresiones regulares a la lista de expresiones regulares utilizadas para traducir el esquema XML
valores de enumeración a nombres de enumeradores de C ++. Consulte la sección CONVENCIÓN DE NOMBRES a continuación.
para obtener más información.

--elemento-tipo-expresión regular expresiones regulares
Añada expresiones regulares a la lista de expresiones regulares utilizadas para traducir el elemento de esquema XML
nombres a los nombres de tipos de elementos de C ++. Consulte la sección CONVENCIÓN DE NOMBRES a continuación para obtener más información.
información.

--name-regex-traza
Rastrear el proceso de aplicar expresiones regulares especificadas con el nombre
opciones de transformación. Utilice esta opción para averiguar por qué sus expresiones regulares
no hagas lo que esperabas que hicieran.

- elemento-raíz-primero
Trate solo el primer elemento global como raíz del documento. Por defecto todo global
Los elementos se consideran raíces del documento.

- elemento-raíz-último
Trate solo el último elemento global como raíz del documento. Por defecto todo global
Los elementos se consideran raíces del documento.

- elemento-raíz-todo
Trate todos los elementos globales como raíces de documentos. Este es el comportamiento predeterminado. Por
especificando explícitamente esta opción, puede suprimir la advertencia que se emite si
se define más de un elemento global.

- elemento-raíz-ninguno
No trate ningún elemento global como raíces de documento. Por defecto todos los elementos globales
se consideran raíces de documentos.

- elemento-raíz elementos
Tratar solo elementos como raíz de un documento. Repita esta opción para especificar más de uno.
elemento raíz.

--tipo personalizado mapa
Utilice un tipo de C ++ personalizado en lugar de la clase generada. los mapa El argumento está en el
formulario nombre [=tipo[/bases]], dónde nombre es un nombre de tipo como se define en el esquema XML y
tipo es un nombre de tipo C ++ que debería utilizarse en su lugar. Si tipo no está presente o
vacío, se supone que el tipo personalizado tiene el mismo nombre y se define en el
mismo espacio de nombres que tendría la clase generada. Si bases se especifica entonces el
La clase generada todavía se genera pero con ese nombre.

--tipo-personalizado-regex expresiones regulares
Utilice tipos de C ++ personalizados en lugar de las clases generadas. los expresiones regulares El argumento está en el
formulario /nombre-pat/[tipo-sub/[sub base/]], dónde nombre-pat es un patrón de expresiones regulares que
coincidir con los nombres de tipo como se define en el esquema XML y tipo-sub es un tipo C ++
sustitución de nombre que debería utilizarse en su lugar. Si tipo-sub no está presente o su
la sustitución da como resultado una cadena vacía, entonces se supone que el tipo personalizado tiene la
mismo nombre y estar definido en el mismo espacio de nombres que tendría la clase generada.
If sub base está presente y su sustitución da como resultado una cadena no vacía, entonces el
La clase generada todavía se genera pero con el resultado de esta sustitución como su
nombre. El patrón y las sustituciones están en formato de expresión regular de Perl. Ver
también la sección de COTIZACIÓN DE REGEX Y SHELL a continuación.

--partes número
Dividir el código fuente generado en número partes. Esto es útil al traducir grandes,
esquemas monolíticos y un compilador de C ++ no puede compilar la fuente resultante
código de una vez (generalmente debido a memoria insuficiente).

--parts-sufijo sufijo
Uso sufijo en lugar del predeterminado '-'para separar el nombre del archivo de la parte
número.

analizador cxx comando opciones
--tipo-mapa archivo de mapa
Lea la información de mapeo de tipo XML a C ++ de archivo de mapa. Repita esta opción para
especificar varios tipos de mapas. Los mapas de tipo se consideran en orden de aparición y
se utiliza la primera coincidencia. De forma predeterminada, todos los tipos definidos por el usuario se asignan a vacío. Consulte las
Escriba la sección de MAPA a continuación para obtener más información.

--analizador-xml analizador
Uso analizador como analizador XML subyacente. Los valores válidos son xerces para Xerces-C ++
(predeterminado) y expatriado para Expat.

--generar-validación
Genere código de validación. El código de validación ("analizador perfecto") asegura que
los documentos de instancia se ajustan al esquema. El código de validación se genera de forma predeterminada
cuando el analizador XML subyacente seleccionado no es de validación (expatriado).

--suprimir-validación
Suprime la generación de código de validación. La validación está suprimida de forma predeterminada
cuando el analizador XML subyacente seleccionado está validando (xerces).

--generado-polimórfico
Genere código con reconocimiento de polimorfismo. Especifique esta opción si usa la sustitución
grupos o xsi: tipo.

--generar-noop-impl
Genere una implementación de analizador de muestra que no haga nada (sin operación). los
La implementación de muestra se puede completar con el código específico de la aplicación. Por un
archivo de entrada en el formulario nombre.xsd esta opción activa la generación de dos
archivos C ++ adicionales en la forma: nombre-pimpl.hxx (encabezado de implementación del analizador
archivo) y nombre-pimpl.cxx (archivo fuente de implementación del analizador).

--generar-imprimir-impl
Genere una implementación de analizador de muestra que imprima los datos XML en STDOUT. Por un
archivo de entrada en el formulario nombre.xsd esta opción activa la generación de dos
archivos C ++ adicionales en la forma: nombre-pimpl.hxx (encabezado de implementación del analizador
archivo) y nombre-pimpl.cxx (archivo fuente de implementación del analizador).

--generar-controlador-de-prueba
Genere un controlador de prueba para la implementación del analizador de muestra. Para un archivo de entrada en
la forma nombre.xsd esta opción activa la generación de un archivo C ++ adicional en
la forma nombre-controlador.cxx.

--force-sobrescribir
Forzar la sobrescritura de la implementación existente y los archivos del controlador de prueba. Utilizar esta
opción solo si no le importa perder los cambios que ha realizado en la muestra
implementación o archivos de controlador de prueba.

- elemento-raíz-primero
Indique que el primer elemento global es la raíz del documento. Esta informacion es
utilizado para generar el controlador de prueba para la implementación de muestra.

- elemento-raíz-último
Indique que el último elemento global es la raíz del documento. Esta informacion es
utilizado para generar el controlador de prueba para la implementación de muestra.

- elemento-raíz elementos
Indican que elementos es la raíz del documento. Esta información se utiliza para generar
el controlador de prueba para la implementación de muestra.

--sufijo-tipo-skel sufijo
Use el proporcionado sufijo en lugar del predeterminado _pskel para construir los nombres de los
esqueletos de analizador generados.

--skel-archivo-sufijo sufijo
Use el proporcionado sufijo en lugar del predeterminado -pskel para construir los nombres de los
archivos de esqueleto del analizador generados.

--sufijo de tipo simple sufijo
Use el proporcionado sufijo en lugar del predeterminado _grano para construir los nombres de los
implementaciones de analizador para los tipos de esquemas XML incorporados, así como el analizador de muestra
implementaciones

--impl-archivo-sufijo sufijo
Use el proporcionado sufijo en lugar del predeterminado -grano para construir los nombres de los
archivos de implementación de analizador de muestra generados.

NOMBRAR CONVENIO


Se puede indicar al compilador que utilice una convención de nomenclatura particular en el
código. Se pueden seleccionar varias convenciones de uso generalizado mediante el - nomenclatura de tipo y
--nombramiento de funciones opciones. Se puede lograr una convención de nomenclatura personalizada utilizando el --escribe-
expresiones regulares, --accesor-expresión regular, --expresión regular de un acceso, --opt-accesorio-regex, --seq-accesorio-regex,
--modificador-expresión regular, --un-modificador-regex, --opt-modificador-regex, --seq-modificador-regex,
--parser-regex, --serializador-regex, --const-expresión regular, --enumerador-regexy --tipo de elemento-
expresiones regulares .

El - nomenclatura de tipo La opción especifica la convención que debe usarse para nombrar C ++
tipos. Los valores posibles para esta opción son knr (Predeterminado), uccy Java. knr propuesta de
(significa K&R) significa la convención de nomenclatura estándar en minúsculas con el guión bajo
se utiliza como delimitador de palabras, por ejemplo: foo, foo_bar. los ucc (significa camello superior
caso) y Java valora un sinónimos para la misma convención de nomenclatura donde la primera letra de
cada palabra del nombre está en mayúscula, por ejemplo: Foo, FooBar.

Del mismo modo, el --nombramiento de funciones La opción especifica la convención que debe usarse para
nombrar funciones de C ++. Los valores posibles para esta opción son knr (Predeterminado), lccy Java.
El knr value (significa K&R) significa la convención de nomenclatura estándar en minúsculas con
el subrayado utilizado como delimitador de palabras, por ejemplo: foo (), foo_bar (). los lcc propuesta de
(significa minúscula de camello) significa una convención de nomenclatura donde la primera letra de cada
palabra excepto la primera en mayúscula, por ejemplo: foo (), fooBar (). los Java nombrando
La convención es similar a la de minúsculas de camello, excepto que las funciones de acceso son
con el prefijo get, las funciones modificadoras tienen el prefijo set, las funciones de análisis son
con el prefijo parse, y las funciones de serialización tienen el prefijo serialize, por ejemplo:
getFoo (), setFooBar (), parseRoot (), serializeRoot ().

Tenga en cuenta que las convenciones de nomenclatura especificadas con el - nomenclatura de tipo y --nombramiento de funciones
Las opciones realizan solo transformaciones limitadas en los nombres que provienen del esquema en el
forma de los nombres de tipo, atributo y elemento. En otras palabras, para obtener resultados consistentes,
sus esquemas deben seguir una convención de nomenclatura similar a la que le gustaría tener
en el código generado. Alternativamente, puede utilizar el - * - expresión regular opciones (discutidas a continuación)
para realizar más transformaciones en los nombres que provienen del esquema.

El --tipo-regex, --accesor-expresión regular, --expresión regular de un acceso, --opt-accesorio-regex, --seq-
accesor-regex, --modificador-expresión regular, --un-modificador-regex, --opt-modificador-regex, --seq-
modificador-expresión regular, --parser-regex, --serializador-regex, --const-expresión regular, --enumerador-regexy
--elemento-tipo-expresión regular Las opciones le permiten especificar expresiones regulares adicionales para cada nombre.
categoría además del conjunto predefinido que se agrega en función de la - nomenclatura de tipo
y --nombramiento de funciones opciones. Expresiones que se proporcionan con el - * - expresión regular opciones
se evalúan antes que cualquier expresión predefinida. Esto le permite anular selectivamente
algunas o todas las transformaciones predefinidas. Al depurar sus propias expresiones, es
a menudo es útil para ver qué expresiones coinciden con qué nombres. los --name-regex-traza opción
le permite rastrear el proceso de aplicar expresiones regulares a los nombres.

El valor para el - * - expresión regular Las opciones deben ser una expresión regular similar a Perl en la forma
/patrón/reemplazo/. Cualquier carácter se puede utilizar como delimitador en lugar de /. Escapando
del carácter delimitador en patrón or reemplazo no es apoyado. Todo lo regular
Las expresiones para cada categoría se insertan en una pila específica de categoría con la última
expresión especificada considerada en primer lugar. Se utiliza la primera coincidencia que tenga éxito. Para el
--expresión regular de un acceso (accesores con cardinalidad uno), --opt-accesorio-regex (accesores
con cardinalidad opcional), y --seq-accesorio-regex (accesores con secuencia de cardinalidad)
categorías el --accesor-expresión regular las expresiones se utilizan como respaldo. Para el --uno-
modificador-expresión regular, --opt-modificador-regexy --seq-modificador-regex categorías el --modificador-
expresiones regulares las expresiones se utilizan como respaldo. Para el --elemento-tipo-expresión regular categoría el
--tipo-regex las expresiones se utilizan como respaldo.

Las expresiones de nombre de tipo (--tipo-regex) se evalúan en la cadena de nombre que tiene el
siguiente formato:

[espacio de nombres ]nombre [,nombre ][,nombre ][,nombre ]

Las expresiones de nombre de tipo de elemento (--elemento-tipo-expresión regular), efectivo solo cuando el
--generar-tipo-de-elemento se especifica la opción, se evalúan en la cadena de nombre que tiene la
siguiente formato:

espacio de nombres nombre

En el formato de nombre de tipo, espacio de nombres parte seguida de un espacio solo está presente para global
nombres de tipos. Para tipos y elementos globales definidos en esquemas sin un espacio de nombres de destino,
las espacio de nombres parte está vacía pero el espacio todavía está presente. En el formato de nombre de tipo después
la inicial nombre componente, hasta tres adicionales nombre los componentes pueden estar presentes,
separado por comas. Por ejemplo:

http://example.com/hello tipo

foo

foo, iterador

foo, const, iterador

El siguiente conjunto de expresiones regulares predefinidas se utiliza para transformar los nombres de tipos cuando
se selecciona la convención de nomenclatura en mayúsculas y minúsculas:

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

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

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

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

Las expresiones de accesor y modificador (- * accesor-regex y - * modificador-expresión regular) son
evaluado en la cadena de nombre que tiene el siguiente formato:

nombre [,nombre ][,nombre ]

Después de la inicial nombre componente, hasta dos adicionales nombre los componentes pueden estar presentes,
separado por comas. Por ejemplo:

foo

dom, documento

foo, predeterminado, valor

El siguiente conjunto de expresiones regulares predefinidas se utiliza para transformar los nombres de los descriptores de acceso.
cuando Java se selecciona la convención de nomenclatura:

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

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

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

Para las categorías de analizador, serializador y enumerador, el correspondiente
las expresiones se evalúan en nombres locales de elementos y en valores de enumeración,
respectivamente. Por ejemplo, la siguiente expresión regular predefinida se utiliza para
transformar los nombres de las funciones de análisis cuando el Java se selecciona la convención de nomenclatura:

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

La categoría const se usa para crear nombres de constantes C ++ para el elemento / comodín / texto
ID de contenido en tipos ordenados.

Consulte también la sección COTIZACIÓN DE REGEX Y SHELL a continuación.

TIPO MAPA


Los archivos de asignación de tipos se utilizan en C ++ / Parser para definir una asignación entre el esquema XML y C ++
tipos. El compilador usa esta información para determinar los tipos de retorno de correo_*
funciones en los esqueletos del analizador que corresponden a los tipos de esquemas XML, así como a los tipos de argumentos
para devoluciones de llamada correspondientes a elementos y atributos de estos tipos.

El compilador tiene un conjunto de reglas de mapeo predefinidas que mapean tipos de esquemas XML incorporados a
tipos de C ++ adecuados (discutidos a continuación) y todos los demás tipos para vacío. Proporcionando tu propia
mapas de tipos puede anular estas reglas predefinidas. El formato del archivo de mapa de tipos es
mostrado abajo:

espacio de nombres espacio de nombres de esquema [ espacio de nombres cxx ]
{
( incluir nombre del archivo; )*
([ tipo ] tipo de esquema cxx-ret-tipo [ tipo-cxx-arg ]; )*
}

Ambos espacio de nombres de esquema y tipo de esquema son patrones de expresiones regulares mientras espacio de nombres cxx, cxx-ret-
tipoy tipo-cxx-arg son sustituciones de patrones de expresiones regulares. Todos los nombres pueden ser opcionalmente
entre "", por ejemplo, para incluir espacios en blanco.

espacio de nombres de esquema determina el espacio de nombres del esquema XML. Opcional espacio de nombres cxx tiene el prefijo
cada nombre de tipo C ++ en esta declaración de espacio de nombres. cxx-ret-tipo es un nombre de tipo C ++ que
se utiliza como un tipo de retorno para el correo_* funciones. Opcional tipo-cxx-arg es un argumento
type para funciones de devolución de llamada correspondientes a elementos y atributos de este tipo. Si cxx-
tipo arg no se especifica, por defecto es cxx-ret-tipo if cxx-ret-tipo termina con * or &
(es decir, es un puntero o una referencia) y const cxx-ret-tipo& de otra manera. nombre del archivo is
un nombre de archivo en el formato "" o <> y se agrega con el #incluir directiva a
el código generado.

El # carácter comienza un comentario que termina con una nueva línea o el final del archivo. Para especificar un
nombre que contiene # enciérrelo entre "". Por ejemplo:

espacio de nombres http://www.example.com/xmlns/my my
{
incluir "my.hxx";

# Pase las manzanas por valor.
#
manzana manzana;

# Pase las naranjas como indicadores.
#
naranja orange_t *;
}

En el ejemplo anterior, para http://www.example.com/xmlns/my#naranja Tipo de esquema XML, el
my :: orange_t * El tipo C ++ se utilizará como tipos de retorno y de argumento.

Se pueden especificar varias declaraciones de espacio de nombres en un solo archivo. El espacio de nombres
La declaración también se puede omitir por completo para asignar tipos en un esquema sin un espacio de nombres.
Por ejemplo:

incluir "my.hxx";
manzana manzana;

espacio de nombres http://www.example.com/xmlns/my
{
naranja "const orange_t *";
}

El compilador tiene una serie de reglas de mapeo predefinidas que se pueden presentar como
siguientes archivos de mapas. Los tipos integrados del esquema XML basado en cadenas se asignan a
std :: string or std :: wstring dependiendo del tipo de carácter seleccionado con el - tipo char
opción (tanque por defecto).

espacio de nombres http://www.w3.org/2001/XMLSchema
{
booleano bool bool;

byte "carácter firmado" "carácter firmado";
unsignedByte "unsigned char" "unsigned char";

corto corto corto;
unsignedShort "corto sin firmar" "corto sin firmar";

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

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

entero "largo largo" "largo largo";

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

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

flotador flotador flotador;
doble doble doble;
decimal doble doble;

string std :: string;
normalizedString std :: string;
token std :: string;
Nombre std :: string;
NMTOKEN std :: cadena;
NCName std :: cadena;
ID std :: string;
IDREF std :: cadena;
idioma std :: string;
anyURI std :: string;

NMTOKENS xml_schema :: secuencia_cadena;
IDREFS xml_schema :: secuencia_cadena;

QName xml_schema :: qname;

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

fecha xml_schema :: fecha;
dateTime xml_schema :: date_time;
duración xml_schema :: duración;
gDay xml_schema :: gday;
gMonth xml_schema :: gmonth;
gMonthDay xml_schema :: gmonth_day;
gYear xml_schema :: gyear;
gYearMonth xml_schema :: gyear_month;
hora xml_schema :: hora;
}

La última regla predefinida asigna cualquier cosa que no haya sido asignada por reglas anteriores a vacío:

espacio de nombres. *
{
. * vacío vacío;
}

Cuando proporcione sus propios mapas de tipo con la --tipo-mapa opción, se evalúan primero.
Esto le permite anular selectivamente reglas predefinidas.

REGEXACIONES Y SHELL COTIZAR


Al ingresar un argumento de expresión regular en la línea de comandos del shell, a menudo es
necesario utilizar comillas (encerrando el argumento entre "" o '') para evitar la
shell de interpretar ciertos caracteres, por ejemplo, espacios como separadores de argumentos y
$ como expansiones variables.

Desafortunadamente, es difícil lograr esto de una manera que sea portátil a través de shells POSIX,
como los que se encuentran en GNU / Linux y UNIX, y el shell de Windows. Por ejemplo, si usa ""
por citar, obtendrá un resultado incorrecto con shells POSIX si su expresión contiene $.
La forma estándar de lidiar con esto en los sistemas POSIX es usar '' en su lugar.
Desafortunadamente, el shell de Windows no elimina '' de los argumentos cuando se pasan a
aplicaciones. Como resultado, es posible que tenga que usar '' para POSIX y "" para Windows ($ no es
tratado como un carácter especial en Windows).

Alternativamente, puede guardar las opciones de expresión regular en un archivo, una opción por línea,
y use este archivo con el --archivo de opciones opción. Con este enfoque no es necesario
preocuparse por las cotizaciones de shell.

La diagnostica


Si el archivo de entrada no es una definición de esquema XML W3C válida, xsdcxx emitirá diagnóstico
mensajes a ESTDERR y salir con un código de salida distinto de cero.

Utilice xsdcxx en línea utilizando los servicios de onworks.net


Servidores y estaciones de trabajo gratuitos

Descargar aplicaciones de Windows y Linux

Comandos de Linux

Ad