英语法语西班牙语

Ad


OnWorks 网站图标

xsdcxx - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 xsdcxx

这是命令 xsdcxx,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


xsdcxx - W3C XML 模式到 C++ 编译器

概要


xsdcxx 命令 [ 选项 ] 文件 [ 文件 ...]
xsdcxx 帮助 [ 命令 ]
xsdcxx 版本

商品描述


xsdcxx 从 W3C XML Schema 生成特定于词汇表的、静态类型的 C++ 映射
定义。 要产生的特定映射由 命令. 每个映射都有一个
映射特定数量 选项 如果有的话,应该出现在 命令。 输入
文件应该是 W3C XML Schema 定义。 生成文件的确切集合取决于
在选定的映射和选项上。

指令


cxx-树
生成 C++/Tree 映射。 对于表单中的每个输入文件 名称.xsd
生成以下 C++ 文件: 名称.hxx (头文件), 名称.ixx (内联文件,
只有当 --生成内联 选项已指定), 名称.cxx (源
文件),以及 名称-fwd.hxx (前向声明文件,仅当
--生成转发 选项已指定)。

cxx解析器
生成 C++/Parser 映射。 对于表单中的每个输入文件 名称.xsd
生成以下 C++ 文件: 名称-pskel.hxx (解析器骨架头文件),
名称-pskel.ixx (解析器骨架内联文件,仅当 - 产生-
一致 选项被指定),和 名称-pskel.cxx (解析器骨架源文件)。 如果
--生成-noop-impl or --生成打印-impl 选项被指定,
生成以下附加示例实现文件: 名称-pimpl.hxx
(解析器实现头文件)和 名称-pimpl.cxx (解析器实现
源文件)。 如果 --生成测试驱动程序 选项被指定,额外的
名称驱动程序.cxx 生成测试驱动文件。

帮助 打印使用信息并退出。 用

xsdcxx 帮助 命令

获取特定于命令的帮助。

版本
打印版本并退出。

配置


命令特定 选项, 如果有, 应该出现在相应的 命令.

常见 选项
--标准 版本
指定生成的代码应符合的 C++ 标准。 有效值
,那恭喜你, C ++ 98 (默认)和 C ++ 11.

C++ 标准影响所讨论的生成代码的各个方面
在各种特定于映射的文档中更详细地说明。 总的来说,当 C++11 是
选择,生成的代码依赖于移动语义并使用 std::unique_ptr
而不是弃用 标准::auto_ptr.

选择 C++11 模式时,通常不需要执行任何额外的步骤
如果需要,除了在 C++ 编译器中启用 C++11。 XSDCXX 编译器将
自动将必要的宏定义添加到生成的头文件中
将切换仅标头的 XSDCXX 运行时库(库文件) 到 C++11 模式。
但是,如果您将任何 XSDCXX 运行时标头直接包含在您的
应用程序(通常您只包含生成的标题),那么您将需要
定义 XSD_CXX11 整个项目的宏。

--char 类型 类型
使用提供的字符生成代码 类型 而不是默认值 坦克。 有效
价值观是 坦克wchar_t.

--char 编码 ENC
指定应在生成的代码中使用的字符编码。 有效的
的值 坦克 字符类型是 utf8 (默认), ISO8859-1, LCP (Xerces-C++
本地代码页),以及 习俗. 如果你通过 习俗 作为价值,那么你将需要
在开头包含编码的转码器实现标头
生成的头文件(参见 --hxx-序言 选项)。

如报名参加 wchar_t 字符类型唯一有效的值是 汽车 编码是
在 UTF-16 和 UTF-32/UCS-4 之间自动选择,具体取决于 wchar_t
字体大小。

--输出目录 DIR
将生成的文件写入 DIR 而不是当前目录。

--生成内联
内联生成简单的函数。 此选项会触发内联文件的创建。

--生成 xml 架构
生成 C++ 头文件,就像正在编译的架构定义 XML 架构一样
命名空间。 对于 C++/Tree 映射,生成的文件将包含定义
适用于所有 XML 架构内置类型。 对于 C++/Parser 映射,生成的文件
将包含所有解析器框架和实现的定义
对应于 XML Schema 内置类型。

提供给编译器的模式文件不需要存在,仅用于派生
生成的头文件的名称。 使用 --extern-xml-架构 选项
将此文件包含在为其他模式生成的文件中。

--extern-xml-架构 文件
包含派生自的头文件 文件 而不是生成 XML 模式
命名空间映射内联。 提供的文件不需要存在,仅用于
导出包含的头文件的名称。 使用 --生成 xml 架构 选项
生成这个头文件。

--命名空间映射 XNS=CNS
映射 XML 架构命名空间 XNS 到 C++ 命名空间 CNS. 重复此选项以指定
映射多个 XML 模式命名空间。 例如,以下选项:

--命名空间映射 http://example.com/foo/bar=富::酒吧

将映射 http://example.com/foo/bar XML Schema 命名空间 富::酒吧 C + +中
命名空间。

--命名空间正则表达式 正则表达式
地址 正则表达式 到用于转换 XML 架构命名空间的正则表达式列表
名称转换为 C++ 名称空间名称。 正则表达式 是一个类似于 Perl 的正则表达式,形式为
/模式/替代/. 任何字符都可以用作分隔符而不是 /.
转义中的分隔符 模式 or 替代 不支持。

所有正则表达式都被压入堆栈,最后指定
首先考虑表达。 使用成功的第一个匹配项。 常规的
表达式应用于表单中的字符串

文件名 命名空间

例如,如果您有文件 你好.xsd 带命名空间 http://example.com/hello
你跑 XSD 在这个文件上,那么有问题的字符串将是:

你好.xsd。 http://example.com/hello

对于内置的 XML 架构命名空间,字符串是:

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

对每个正则表达式执行以下三个步骤,直到匹配
发现:

1. 应用表达式,如果结果为空,则下一个表达式为
考虑过的。

2。 所有 / 被替换为 ::.

3. 结果被验证为有效的 C++ 作用域名称(例如, 富::酒吧)。 如果这
测试成功,结果用作 C++ 命名空间名称。

例如,以下表达式以以下形式映射 XML 架构命名空间
http://example.com/foo/bar 到 C++ 命名空间的形式 富::酒吧:

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

另请参阅下面的正则表达式和外壳引用部分。

--命名空间正则表达式跟踪
跟踪应用指定的正则表达式的过程 --命名空间-
正则表达式 选项。 使用此选项找出您的正则表达式不起作用的原因
你期望他们做什么。

--保留名称 n[=r]
添加名称 n 到不应用作标识符的名称列表。 名字
可以选择后跟 = 和替换名称 r 应该使用的
反而。 所有 C++ 关键字都已在此列表中。

--包含带括号
在生成的文件中使用尖括号 (<>) 而不是引号 ("") 的#include 指令。

--包含前缀 字首
地址 字首 生成 的#include 指令路径。

例如,如果您的架构中有以下导入元素

<导入 命名空间="..." schemaLocation="base.xsd"/>

并编译了这个片段 --包含前缀 模式/,那么包含
生成的代码中的指令是:

的#include “模式/base.hxx”

--include-正则表达式 正则表达式
地址 正则表达式 到用于转换的正则表达式列表 的#include 指示
路径。 正则表达式 是一个类似于 Perl 的正则表达式,形式为 /模式/替代/.
任何字符都可以用作分隔符而不是 /. 分隔符的转义
字符 模式 or 替代 不支持。

所有正则表达式都被压入堆栈,最后指定
首先考虑表达。 使用成功的第一个匹配项。

例如,以下表达式将路径转换为以下形式
模式/foo/bar 到表单中的路径 生成/foo/bar:

%schemas/(.+)%已生成/$1%

另请参阅下面的正则表达式和外壳引用部分。

--include-正则表达式-trace
跟踪应用指定的正则表达式的过程 - 包括-
正则表达式 选项。 使用此选项找出您的正则表达式不起作用的原因
你期望他们做什么。

--guard-前缀 字首
地址 字首 生成标题包含守卫。 前缀转换为upper
预处理器宏名称中非法的大小写和字符被替换为
下划线。 如果未指定此选项,则输入的目录部分
模式文件用作前缀。

--hxx-后缀 后缀
使用提供的 后缀 而不是默认值 .hxx 构造名称
头文件。 注意这个后缀也用于构造头文件的名称
对应于包含/导入的模式。

--ixx-后缀 后缀
使用提供的 后缀 而不是默认值 .ixx 构造名称
内联文件。

--cxx-后缀 后缀
使用提供的 后缀 而不是默认值 .cxx 构造名称
源文件。

--fwd-后缀 后缀
使用提供的 后缀 而不是默认值 -fwd.hxx 构造名称
前向声明文件。

--hxx-正则表达式 正则表达式
使用提供的表达式来构造头文件的名称。 正则表达式 是一个
形式为类似 Perl 的正则表达式 /模式/替代/。 注意这个
表达式也用于构造对应的头文件名
包含/导入的模式。 另请参阅下面的正则表达式和外壳引用部分。

--ixx-正则表达式 正则表达式
使用提供的表达式来构造内联文件的名称。 正则表达式 是一个
形式为类似 Perl 的正则表达式 /模式/替代/. 另见正则表达式
和壳牌报价部分下面。

--cxx-正则表达式 正则表达式
使用提供的表达式来构造源文件的名称。 正则表达式 是一个
形式为类似 Perl 的正则表达式 /模式/替代/. 另见正则表达式
和壳牌报价部分下面。

--fwd-正则表达式 正则表达式
使用提供的表达式来构造前向声明文件的名称。
正则表达式 是一个类似于 Perl 的正则表达式,形式为 /模式/替代/。 另请参见
下面的正则表达式和外壳引用部分。

--hxx-序言 文本
插页 文本 在头文件的开头。

--ixx-序言 文本
插页 文本 在内联文件的开头。

--cxx-序言 文本
插页 文本 在源文件的开头。

--fwd-序言 文本
插页 文本 在前向声明文件的开头。

- 序幕 文本
插页 文本 在每个没有文件的生成文件的开头 -
具体序言。

--hxx-尾声 文本
插页 文本 在头文件的末尾。

--ixx-尾声 文本
插页 文本 在内联文件的末尾。

--cxx-尾声 文本
插页 文本 在源文件的末尾。

--fwd-尾声 文本
插页 文本 在前向声明文件的末尾。

- 结语 文本
插页 文本 在没有特定文件的每个生成文件的末尾
结语。

--hxx-序言文件 文件
插入内容 文件 在头文件的开头。

--ixx-序言文件 文件
插入内容 文件 在内联文件的开头。

--cxx-序言文件 文件
插入内容 文件 在源文件的开头。

--fwd-序言文件 文件
插入内容 文件 在前向声明文件的开头。

--序言文件 文件
插入内容 文件 在每个生成的文件的开头
没有特定于文件的序言文件。

--hxx-尾声文件 文件
插入内容 文件 在头文件的末尾。

--ixx-尾声文件 文件
插入内容 文件 在内联文件的末尾。

--cxx-尾声文件 文件
插入内容 文件 在源文件的末尾。

--fwd-尾声文件 文件
插入内容 文件 在前向声明文件的末尾。

--结尾文件 文件
插入内容 文件 在每个生成的文件的末尾
没有特定于文件的尾声文件。

--导出符号 符号
插页 符号 在 DLL 导出/导入控制语句的地方
(__declspec(dllexport/dllimport))是必要的。

--export-xml-模式
使用提供的导出符号在 XML 架构命名空间中导出/导入类型
--导出符号 选项。 该 XSD_NO_EXPORT 宏可以用来省略这个
C++ 编译期间的代码,如果您想使用相同的代码,这可能很有用
跨多个平台生成的代码。

--导出地图
从生成的代码所在的 Win32 DLL 导出多态支持映射
放置。 当您的类型层次结构分为多个 DLL 时,这是必要的
因为否则每个 DLL 都会有自己的一组映射。 在这种情况下
为包含基本类型和/或替换组的 DLL 生成的代码
应使用此选项和为所有其他 DLL 生成的代码编译头文件
应该编译 --导入地图. 此选项仅与
--生成多态。 该 XSD_NO_EXPORT 宏可用于省略此代码
在 C++ 编译期间,如果您想使用相同的
跨多个平台生成的代码。

--导入地图
导入多态支持映射到 Win32 DLL 或可执行文件
生成的代码是链接的。 见 --导出地图 选项文档了解详情。
此选项仅与 --生成多态。 该 XSD_NO_EXPORT
宏可用于在 C++ 编译期间省略此代码,如果
您想在多个平台上使用相同的生成代码。

--生成-dep
产生 使 依赖信息。 此选项会触发创建 .d
包含生成的文件对主架构文件的依赖关系的文件作为
以及它包含/导入的所有模式文件,可传递。 这个
然后通常将依赖文件包含在主文件中 生成文件 实施
自动依赖跟踪。

另请注意,每个文件中不支持自动依赖项生成
类型模式(--每个类型的文件)。 在这种情况下,所有生成的文件都被生成
使用单个编译器调用并依赖于所有模式。 结果,它是
更容易手动建立这样的依赖关系,也许在帮助下
--文件列表* 选项​​。

--仅生成依赖项
产生 使 仅依赖信息。

--depphony
为包含/导入的模式文件生成虚假目标,导致每个目标依赖
无所事事。 这样的虚拟规则可以解决 使 删除导致的错误
模式文件,而无需更新依赖文件以匹配。

--dep-目标 目标
更改依赖规则的目标。 默认情况下,它包含所有生成的
C++ 文件以及依赖文件本身,没有任何目录前缀。 如果
您需要多个目标,然后您可以将它们指定为单个空间-
分隔参数,或者您可以多次重复此选项。

--dep-后缀 后缀
使用提供的 后缀 而不是默认值 .d 构造名称
依赖文件。

--dep-正则表达式 正则表达式
使用提供的表达式来构造依赖文件的名称。 正则表达式 is
形式为 Perl 的正则表达式 /模式/替代/。 另请参阅
下面的正则表达式和外壳引用部分。

--禁用-警告 警告
禁用带有 id 的打印警告 警告。 如果 所有 为警告 id 指定然后
所有警告都被禁用。

--选项文件 文件
阅读其他选项 文件. 每个选项应出现在单独的行上
可选后跟空格和选项值。 空行和行开始
# 被忽略。 选项值可以包含在双 (") 或单个 (')
引号以保留前导和尾随空格以及指定空
值。 如果值本身包含尾随或前导引号,请用
额外的一对引号,例如 '“X”'. 非前导和非尾随引号是
解释为选项值的一部分。

在文件中提供选项的语义等同于提供相同的
命令行上相同顺序的一组选项
--选项文件 选项被指定,除了外壳转义和引用是
不需要。 您可以重复此选项以指定多个选项文件。

--显示-sloc
显示生成的物理源代码行数 (SLOC)。

--sloc-限制 NUM
检查生成的物理源代码行数 (SLOC)
超过 NUM.

--专有许可证
表明生成的代码是根据专有许可证而不是
GPL。

--自定义文字 文件
将自定义 XML 字符串加载到 C++ 文字映射 文件. 这种机制可以
如果您使用自定义字符编码和某些字符串,则很有用
模式,例如元素/属性名称或枚举值,包含非
ASCII 字符。 在这种情况下,您需要提供到 C++ 的自定义映射
此类字符串的文字。 此文件的格式在 定做
文字.xsd 可在文档目录中找到的 XML 架构文件。

--保留-匿名
保留匿名类型。 默认匿名类型自动命名为
从封闭元素/属性派生的名称。 因为映射实现
这个编译器要求所有类型都被命名,这个选项只有在你
想确保您的架构没有匿名类型。

--显示-匿名
显示匿名类型的元素和属性。 此选项只会使
感觉与 --保留-匿名 选项。

--匿名正则表达式 正则表达式
地址 正则表达式 到用于派生匿名名称的正则表达式列表
来自封闭属性/元素的类型。 正则表达式 是一个类似 Perl 的正则
形式表达 /模式/替代/. 任何字符都可以用作
分隔符而不是 /. 转义中的分隔符 模式 or
替代 不支持。

所有正则表达式都被压入堆栈,最后指定
首先考虑表达。 使用成功的第一个匹配项。 常规的
表达式应用于表单中的字符串

文件名 命名空间 路径

例如:

你好.xsd http://example.com/hello element

你好.xsd http://example.com/hello 类型/元素

例如,以下表达式使所有派生名称都以
大写字母。 当您的命名约定需要类型时,这可能很有用
名称以大写字母开头:

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

另请参阅下面的正则表达式和外壳引用部分。

--匿名正则表达式跟踪
跟踪应用指定的正则表达式的过程 - 匿名的-
正则表达式 选项。 使用此选项找出您的正则表达式不起作用的原因
你期望他们做什么。

--位置地图 ol=nl
映射原始模式位置 ol XML 架构中指定的包含或
将元素导入到新的架构位置 nl. 重复此选项以映射多个
模式位置。 例如,以下选项映射
http://example.com/foo.xsd 网址 foo.xsd 本地文件。

--位置地图 http://example.com/foo.xsd=foo.xsd

--位置-正则表达式 正则表达式
地址 正则表达式 到用于映射模式位置的正则表达式列表
XML Schema 中指定的包含或导入元素。 正则表达式 是一个类似 Perl 的
表单中的正则表达式 /模式/替代/. 任何字符都可以用作
一个分隔符而不是 /. 转义中的分隔符 模式 or
替代 不支持。 所有的正则表达式都被压入堆栈
首先考虑最后一个指定的表达式。 成功的第一场比赛
用来。

例如,以下表达式以以下形式映射 URL 位置
http://example.com/foo/bar.xsd 到本地文件的形式 酒吧.xsd:

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

另请参阅下面的正则表达式和外壳引用部分。

--位置正则表达式跟踪
跟踪应用指定的正则表达式的过程 - 地点-
正则表达式 选项。 使用此选项找出您的正则表达式不起作用的原因
你期望他们做什么。

--每个类型的文件
为 XML Schema 中定义的每种类型生成一组单独的 C++ 文件。 笔记
在这种模式下,您只需要编译根模式,代码将是
为所有包含和导入的模式生成。 这种编译方式主要是
当您的某些模式无法单独编译或具有循环时很有用
涉及类型继承的依赖项。 与此模式相关的其他选项
是: --类型文件正则表达式, --架构文件正则表达式, --fat 类型文件--文件列表.

--类型文件正则表达式 正则表达式
地址 正则表达式 到用于将类型名称转换为文件的正则表达式列表
名字当 --每个类型的文件 选项被指定。 正则表达式 是一个类似 Perl 的正则
形式表达 /模式/替代/. 任何字符都可以用作
分隔符而不是 /. 转义中的分隔符 模式 or
替代 不支持。 所有的正则表达式都被压入堆栈
首先考虑最后一个指定的表达式。 成功的第一场比赛
用来。 正则表达式应用于表单中的字符串

命名空间 类型名称

例如,下面的表达式映射类型 FOO 中定义的
http://example.com/bar 命名空间到文件名 酒吧富:

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

另请参阅下面的正则表达式和外壳引用部分。

--类型文件正则表达式跟踪
跟踪应用指定的正则表达式的过程 --类型文件-
正则表达式 选项。 使用此选项找出您的正则表达式不起作用的原因
你期望他们做什么。

--架构文件正则表达式 正则表达式
地址 正则表达式 到用于转换架构文件名的正则表达式列表
--每个类型的文件 选项被指定。 正则表达式 是一个类似 Perl 的正则
形式表达 /模式/替代/. 任何字符都可以用作
分隔符而不是 /. 转义中的分隔符 模式 or
替代 不支持。 所有的正则表达式都被压入堆栈
首先考虑最后一个指定的表达式。 成功的第一场比赛
用来。 正则表达式应用于文件系统的绝对路径
模式文件和结果,包括目录部分,如果有的话,用于派生
的#include 指令路径以及生成的 C++ 文件路径。 这个选项,
随着 --类型文件正则表达式 主要用于将生成的文件放入
子目录或解决文件名冲突。

例如,以下表达式映射架构文件​​中的 富/1.0.0/
子目录中的文件 富/ 子目录。 结果,该 的#include
此类模式的指令路径将在 foo/schema.hxx 形式和
生成的 C++ 文件将被放入 富/ 子目录:

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

另请参阅下面的正则表达式和外壳引用部分。

--架构文件正则表达式跟踪
跟踪应用指定的正则表达式的过程 --模式文件-
正则表达式 选项。 使用此选项找出您的正则表达式不起作用的原因
你期望他们做什么。

--fat 类型文件
将全局元素对应的代码生成为类型文件而不是模式
文件时 --类型文件正则表达式 选项被指定。 这个选项主要是
在尝试最小化链接到一个目标代码的数量时很有用
通过将编译生成的代码打包到静态(存档)库中来执行。

--文件列表 文件
将生成的 C++ 文件列表写入 文件. 此选项主要用于
file-per-type 编译模式(--每个类型的文件) 创建生成的 C++ 列表
文件,例如,作为 makefile 片段。

--file-list-序言 文本
插页 文本 在文件列表的开头。 为方便起见,所有出现的
\n 中的字符序列 文本 替换为新行。 这个选项可以,对于
例如,用于将生成的文件列表分配给 makefile 变量。

--文件列表尾声 文本
插页 文本 在文件列表的末尾。 为方便起见,所有出现的
\n 中的字符序列 文本 替换为新行。

--文件列表delim 文本
使用以下命令分隔写入文件列表的文件名 文本 而不是新行。 作为一个
方便,所有出现的 \n 中的字符序列 文本 被替换为
新线路。

cxx-树 命令 选项
--生成多态
生成多态感知代码。 如果您使用替换,请指定此选项
团体或 xsi:类型。 使用 --多态型 or --多态类型-所有 选项
指定哪些类型层次结构是多态的。

--多态型 类型
表明 类型 是多态类型层次结构的根。 编译器可以
通常根据替换自动确定哪些类型是多态的
组声明。 但是,如果您不使用,则可能需要使用此选项
替换组或者替换组是否在另一个模式中定义。 你
编译每个引用的模式文件时需要指定此选项 类型.
类型 参数是一个 XML 模式类型名称,可以选择用
中的命名空间 命名空间#姓名 形式。

--多态类型-所有
指示所有类型都应视为多态。

--多晶板 NUM
指定生成的代码应该注册的多态地图板。 这个
功能主要用于隔离定义
相同的多态类型。

--有序类型 类型
指示元素顺序 类型 意义重大。 一个例子是一个复杂的
具有无限选择的类型作为内容模型,其中 XML 中的元素顺序具有
特定于应用程序的语义。 对于有序类型,编译器生成一个特殊的
容器数据成员和一组相应的访问器和修饰符
用于捕获元素的顺序,对于混合内容,文本的顺序。

类型 参数是一个 XML 模式类型名称,可以选择用
中的命名空间 命名空间#姓名 形式。 另请注意,您需要指定
编译每个具有其他有序类型派生的模式文件时使用此选项
从这种类型。

--有序类型派生
自动将从有序基派生的类型也视为有序的。 这是
如果您希望能够遍历完整的内容,主要是有用的
使用内容顺序容器。

--有序类型混合
按顺序自动处理具有混合内容的复杂类型。

--有序类型全部
表明所有类型中的元素顺序都很重要。

--订单容器 类型
指定应用作内容容器的自定义类模板
按有序类型排序而不是默认类型 性病::矢量。 看 --有序类型
有关有序类型的更多信息。 如果您需要,此选项主要有用
在内容顺序容器中执行更复杂的查找,例如按元素
ID。 在这种情况下,像 Boost multi-index 这样的容器可能会更方便。 笔记
如果使用自定义容器,您很可能还需要包含
相关标题使用 --hxx-序言* 选项​​。

--生成序列化
生成序列化函数。 序列化函数转换对象模型
回到 XML。

--生成ostream
生成 ostream 插入操作符 (运算符<) 用于生成的类型。 这允许
一个可以轻松打印片段或整个对象模型以进行调试或记录。

--生成-doxygen
生成适合 Doxygen 提取的文档注释
文档系统。 注释中的文档会添加到注释中,如果
存在于架构中。

--生成比较
生成比较运算符 (运算符==运算符!=) 用于复杂类型。
比较是按成员进行的。

--生成默认构造函数
甚至为具有必需成员的类型生成默认构造函数。 必需的
使用这种构造函数构造的实例的成员不会被初始化,并且
访问它们会导致未定义的行为。

--从基础向量生成
生成期望基类型实例后跟所有的构造函数
所需成员。

--suppress-赋值
禁止为复杂类型生成复制赋值运算符。 如果这
指定选项,则声明此类类型的复制赋值运算符
私有且未实施。

--生成分离
为所需的元素和属性生成分离函数。 分离功能
可选的和顺序的基数由各自的容器提供。
例如,这些函数允许您移动对象模型中的子树
要么在同一棵树内,要么在不同的树之间。

--生成通配符
为 XML 生成访问器和修饰符以及解析和序列化代码
架构通配符 (任何任何属性)。 通配符匹配的 XML 内容是
呈现为 DOM 片段。 注意需要初始化Xerces-C++运行时
如果您使用此选项。

--生成任意类型
提取和存储 XML 模式的内容 任何类型 类型为 DOM 片段。 笔记
如果使用此选项,则需要初始化 Xerces-C++ 运行时。

--生成插入 os
生成数据表示流插入运算符 os 输出流
类型。 重复此选项以指定多个流类型。 ACE CDR 流
(ACE_输出CDR) 和 RPC XDR 被编译器和必要的
的#include 指令是自动生成的。 对于自定义流类型使用
--hxx-序言* 选项以提供必要的声明。

--生成-提取 is
生成数据表示流提取构造函数 is 输入流
类型。 重复此选项以指定多个流类型。 ACE CDR 流
(ACE_输入CDR) 和 RPC XDR 被编译器和必要的
的#include 指令是自动生成的。 对于自定义流类型使用
--hxx-序言* 选项以提供必要的声明。

--生成转发
生成一个单独的头文件,其中包含类型的前向声明
产生。

--抑制解析
抑制解析函数和构造函数的生成。 使用这个选项
在不需要从 XML 解析时减少生成的代码大小。

--生成元素类型
为根元素生成类型而不是解析和序列化函数。
这主要用于区分具有相同根类型的对象模型,但
具有不同的根元素。

--生成元素映射
生成允许统一解析和序列化的根元素映射
多个根元素。 此选项仅与 --生成元素-
类型.

--生成智能感知
为 Visual Studio 2005 (8.0) 中的 IntelliSense 错误生成解决方法。 当这
选项,生成的代码稍微冗长一些。 智能感知
Visual Studio 2008 (9.0) 及更高版本不需要这些变通方法。 支持
使用此选项改进了 Visual Studio 2003 (7.1) 中的 IntelliSense,但仍然
不完整。

--省略默认属性
从序列化的 XML 文档中省略具有默认值和固定值的属性。

--类型命名 样式
指定应在生成的代码中使用的类型命名约定。 有效的
风格是 n (默认), UCCjava的. 请参阅下面的命名约定部分
获取更多信息.

--函数命名 样式
指定应在生成的代码中使用的函数命名约定。
有效的样式是 n (默认), LCCjava的. 请参阅命名约定部分
了解更多信息。

--type-正则表达式 正则表达式
地址 正则表达式 到用于转换 XML Schema 类型的正则表达式列表
名称转换为 C++ 类型名称。 有关更多信息,请参阅下面的命名约定部分
信息。

--访问器正则表达式 正则表达式
地址 正则表达式 到用于翻译 XML 模式名称的正则表达式列表
C++ 访问器函数名称的元素/属性。 见命名约定
以下部分了解更多信息。

--one-accessor-正则表达式 正则表达式
地址 正则表达式 到用于翻译 XML 模式名称的正则表达式列表
基数为 XNUMX 的元素/属性到 C++ 访问器函数名称。 见
有关更多信息,请参阅下面的命名约定部分。

--opt-accessor-正则表达式 正则表达式
地址 正则表达式 到用于翻译 XML 模式名称的正则表达式列表
具有基数的元素/属性对于 C++ 访问器函数名称是可选的。 看
有关更多信息,请参阅下面的命名约定部分。

--seq-accessor-正则表达式 正则表达式
地址 正则表达式 到用于翻译 XML 模式名称的正则表达式列表
具有基数序列的元素/属性到 C++ 访问器函数名称。 看
有关更多信息,请参阅下面的命名约定部分。

--修饰符-正则表达式 正则表达式
地址 正则表达式 到用于翻译 XML 模式名称的正则表达式列表
C++ 修饰符函数名称的元素/属性。 见命名约定
以下部分了解更多信息。

--一个修饰符正则表达式 正则表达式
地址 正则表达式 到用于翻译 XML 模式名称的正则表达式列表
基数为 XNUMX 的元素/属性到 C++ 修饰符函数名称。 见
有关更多信息,请参阅下面的命名约定部分。

--opt-修饰符-正则表达式 正则表达式
地址 正则表达式 到用于翻译 XML 模式名称的正则表达式列表
具有基数的元素/属性对于 C++ 修饰符函数名称是可选的。 看
有关更多信息,请参阅下面的命名约定部分。

--seq-修饰符-正则表达式 正则表达式
地址 正则表达式 到用于翻译 XML 模式名称的正则表达式列表
具有基数序列的元素/属性到 C++ 修饰符函数名称。 看
有关更多信息,请参阅下面的命名约定部分。

--解析器正则表达式 正则表达式
地址 正则表达式 到用于翻译 XML Schema 元素的正则表达式列表
名称到 C++ 解析函数名称。 请参阅下面的命名约定部分
更多信息。

--serializer-正则表达式 正则表达式
地址 正则表达式 到用于翻译 XML Schema 元素的正则表达式列表
名称到 C++ 序列化函数名称。 请参阅下面的命名约定部分
获取更多信息.

--const-正则表达式 正则表达式
地址 正则表达式 到用于翻译 XML 模式衍生的正则表达式列表
名称转换为 C++ 常量名称。 有关更多信息,请参阅下面的命名约定部分
信息。

--枚举器-正则表达式 正则表达式
地址 正则表达式 到用于翻译 XML 模式的正则表达式列表
枚举值到 C++ 枚举器名称。 请参阅下面的命名约定部分
获取更多信息.

--元素类型正则表达式 正则表达式
地址 正则表达式 到用于翻译 XML Schema 元素的正则表达式列表
名称到 C++ 元素类型名称。 有关更多信息,请参阅下面的命名约定部分
信息。

--名称正则表达式跟踪
跟踪应用名称指定的正则表达式的过程
转换选项。 使用此选项找出您的正则表达式的原因
不要做你期望他们做的事情。

-- 根元素优先
仅将第一个全局元素视为文档根。 默认所有全局
元素被视为文档根。

--根元素-最后
仅将最后一个全局元素视为文档根。 默认所有全局
元素被视为文档根。

--根元素全部
将所有全局元素视为文档根。 这是默认行为。 经过
明确指定此选项,您可以抑制发出的警告,如果
定义了多个全局元素。

--根元素无
不要将任何全局元素视为文档根。 默认所有全局元素
被视为文档根。

--根元素 element
只治疗 element 作为文档根。 重复此选项以指定多个
根元素。

--自定义类型 地图
使用自定义 C++ 类型而不是生成的类。 这 地图 论证是在
申请 姓名[=类型[/基地]], 在哪里 姓名 是 XML Schema 中定义的类型名称,并且
类型 是应该使用的 C++ 类型名称。 如果 类型 不存在或
为空,则假定自定义类型具有相同的名称并在
与生成的类具有相同的命名空间。 如果 基地 被指定然后
生成的类仍然生成,但具有该名称。

--自定义类型正则表达式 正则表达式
使用自定义 C++ 类型而不是生成的类。 这 正则表达式 论证是在
申请 /姓名拍拍/[类型子/[基子/]], 在哪里 姓名拍拍 是一个正则表达式模式,它将
与 XML Schema 中定义的类型名称匹配,并且 类型子 是 C++ 类型
应该使用的名称替换。 如果 类型子 不存在或其
替换结果为空字符串,则假定自定义类型具有
相同的名称并在与生成的类相同的命名空间中定义。
If 基子 存在并且它的替换导致一个非空字符串然后
生成的类仍然会生成,但是这个替换的结果作为它的
姓名。 模式和替换采用 Perl 正则表达式格式。 看
还有下面的正则表达式和外壳引用部分。

- 部分 NUM
将生成的源代码拆分为 NUM 部分。 这在翻译大文件时很有用,
单体架构和 C++ 编译器无法编译生成的源代码
一次编码(通常是由于内存不足)。

--parts-后缀 后缀
使用 后缀 而不是默认的 '-' 将文件名与零件分开
数。

cxx解析器 命令 选项
--类型映射 地图文件
从 XML Schema 到 C++ 类型的映射信息读取 地图文件. 重复此选项以
指定几个类型映射。 类型映射按外观顺序考虑,
使用第一个匹配。 默认情况下,所有用户定义的类型都映射到 无效。 请参阅
类型地图部分下面的更多信息。

--xml-解析器 解析器
使用 解析器 作为底层 XML 解析器。 有效值为 Xerces 用于 Xerces-C++
(默认)和 外籍人士 对于外籍人士。

--生成验证
生成验证码。 验证代码(“完美解析器”)确保
实例文档符合模式。 默认生成验证码
当所选择的底层XML解析器是非验证时(外籍人士).

--抑制验证
抑制验证码的生成。 默认情况下禁止验证
当所选择的底层XML解析器验证时(Xerces).

--生成多态
生成多态感知代码。 如果您使用替换,请指定此选项
团体或 xsi:类型.

--生成-noop-impl
生成不执行任何操作(无操作)的示例解析器实现。 这
然后可以用特定于应用程序的代码填充示例实现。 为
表单中的输入文件 名称.xsd 此选项触发生成两个
其他形式的 C++ 文件: 名称-pimpl.hxx (解析器实现头
文件)和 名称-pimpl.cxx (解析器实现源文件)。

--生成打印-impl
生成将 XML 数据打印到 STDOUT 的示例解析器实现。 为
表单中的输入文件 名称.xsd 此选项触发生成两个
其他形式的 C++ 文件: 名称-pimpl.hxx (解析器实现头
文件)和 名称-pimpl.cxx (解析器实现源文件)。

--生成测试驱动程序
为示例解析器实现生成测试驱动程序。 对于输入文件
表格 名称.xsd 此选项会触发额外的 C++ 文件的生成
表格 名称驱动程序.cxx.

--强制覆盖
强制覆盖现有的实现和测试驱动程序文件。 用这个
选项仅当您不介意丢失您在示例中所做的更改时
实现或测试驱动程序文件。

-- 根元素优先
指示第一个全局元素是文档根。 这个信息是
用于为示例实现生成测试驱动程序。

--根元素-最后
表明最后一个全局元素是文档根。 这个信息是
用于为示例实现生成测试驱动程序。

--根元素 element
表明 element 是文档根。 该信息用于生成
示例实现的测试驱动程序。

--skel 类型后缀 后缀
使用提供的 后缀 而不是默认值 _pskel 构造名称
生成的解析器骨架。

--skel-文件后缀 后缀
使用提供的 后缀 而不是默认值 -pskel 构造名称
生成的解析器骨架文件。

--impl 类型后缀 后缀
使用提供的 后缀 而不是默认值 _pimpl 构造名称
内置 XML 模式类型的解析器实现以及示例解析器
实现。

--impl 文件后缀 后缀
使用提供的 后缀 而不是默认值 -粉刺 构造名称
生成的示例解析器实现文件。

命名 习俗


可以指示编译器在生成的文件中使用特定的命名约定
代码。 可以使用以下命令选择许多广泛使用的约定 --类型命名
--函数命名 选项。 自定义命名约定可以使用 - 类型-
正则表达式, --访问器正则表达式, --one-accessor-正则表达式, --opt-accessor-正则表达式, --seq-accessor-正则表达式,
--修饰符-正则表达式, --一个修饰符正则表达式, --opt-修饰符-正则表达式, --seq-修饰符-正则表达式,
--解析器正则表达式, --serializer-正则表达式, --const-正则表达式, --枚举器-正则表达式--元素类型-
正则表达式 选项​​。

--类型命名 选项指定用于命名 C++ 的约定
类型。 此选项的可能值为 n (默认), UCCjava的。 该 n 折扣值
(代表 K&R)用下划线表示标准的小写命名约定
用作单词分隔符,例如:foo, foo_bar。 这 UCC (代表上骆驼-
情况)和 java的 值相同命名约定的同义词,其中第一个字母
名称中的每个单词都大写,例如:Foo、FooBar。

同样的, --函数命名 选项指定应该用于的约定
命名 C++ 函数。 此选项的可能值为 n (默认), LCCjava的.
n 值(代表 K&R)表示标准的小写命名约定
用作单词分隔符的下划线,例如:foo()、foo_bar()。 这 LCC 折扣值
(代表小驼峰大写)表示命名约定,其中每个字母的第一个字母
除了第一个单词大写,例如:foo(), fooBar()。 这 java的 命名
除了访问器函数是
以 get 为前缀,修饰函数以 set 为前缀,解析函数为
以parse为前缀,序列化函数以serialize为前缀,例如:
getFoo()、setFooBar()、parseRoot()、serializeRoot()。

请注意,使用指定的命名约定 --类型命名--函数命名
options 仅对来自架构中的名称执行有限的转换
类型、属性和元素名称的形式。 换句话说,要获得一致的结果,
您的模式应该遵循与您想要的相似的命名约定
在生成的代码中。 或者,您可以使用 ---*-正则表达式 选项(下面讨论)
对来自模式的名称执行进一步的转换。

--type-正则表达式, --访问器正则表达式, --one-accessor-正则表达式, --opt-accessor-正则表达式, --seq-
访问器正则表达式, --修饰符-正则表达式, --一个修饰符正则表达式, --opt-修饰符-正则表达式, --seq-
修饰符正则表达式, --解析器正则表达式, --serializer-正则表达式, --const-正则表达式, --枚举器-正则表达式
--元素类型正则表达式 选项允许您为每个名称指定额外的正则表达式
类别以及根据添加的预定义集 --类型命名
--函数命名 选项。 随附的表达式 ---*-正则表达式 选项
在任何预定义表达式之前计算。 这允许您有选择地覆盖
部分或全部预定义转换。 在调试自己的表达式时,
通常有助于查看哪些表达式匹配哪些名称。 这 --名称正则表达式跟踪 选项
允许您跟踪将正则表达式应用于名称的过程。

的值 ---*-正则表达式 options 应该是一个类似于 perl 的正则表达式
/模式/替代/. 任何字符都可以用作分隔符而不是 /. 逃跑
中的分隔符 模式 or 替代 不支持。 所有的常规
每个类别的表达式被推入一个特定于类别的堆栈中,最后一个
首先考虑指定的表达式。 使用成功的第一个匹配项。 为了
--one-accessor-正则表达式 (基数为一的访问器), --opt-accessor-正则表达式 (存取器
基数可选),和 --seq-accessor-正则表达式 (具有基数序列的访问器)
分类 --访问器正则表达式 表达式用作后备。 为了 - 一-
修饰符正则表达式, --opt-修饰符-正则表达式--seq-修饰符-正则表达式 分类 --修饰符-
正则表达式 表达式用作后备。 为了 --元素类型正则表达式 分类
--type-正则表达式 表达式用作后备。

类型名称表达式 (--type-正则表达式) 在具有
以下格式:

[命名空间 ]姓名[,姓名][,姓名][,姓名]

元素类型名称表达式 (--元素类型正则表达式),仅当
--生成元素类型 选项被指定,在名称字符串上进行评估
以下格式:

命名空间 姓名

在类型名称格式中 命名空间 部分后跟一个空格仅适用于全局
类型名称。 对于在没有目标命名空间的模式中定义的全局类型和元素,
命名空间 部分是空的,但空间仍然存在。 在类型名称格式后
最初的 姓名 组件,最多三个附加 姓名 组件可以存在,
被逗号隔开。 例如:

http://example.com/hello 类型

FOO

foo, 迭代器

foo,const,迭代器

以下一组预定义的正则表达式用于在以下情况下转换类型名称
选择了大写字母命名约定:

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

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

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

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

访问器和修饰符表达式 (--*访问器正则表达式--* 修饰符正则表达式) 是
对具有以下格式的名称字符串进行评估:

姓名[,姓名][,姓名]

初始后 姓名 组件,最多两个额外的 姓名 组件可以存在,
被逗号隔开。 例如:

FOO

dom, 文档

foo,默认值,值

以下一组预定义的正则表达式用于转换访问器名称
java的 选择命名约定:

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

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

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

对于解析器、序列化器和枚举器类别,对应的正则
表达式根据元素的本地名称和枚举值进行计算,
分别。 例如,以下预定义的正则表达式用于
转换解析函数名称时 java的 选择命名约定:

/(.+)/解析\u$1/

const 类别用于为元素/通配符/文本创建 C++ 常量名称
有序类型的内容 ID。

另请参阅下面的正则表达式和外壳引用部分。

MAP


C++/Parser 中使用类型映射文件来定义 XML Schema 和 C++ 之间的映射
类型。 编译器使用此信息来确定 邮政_*
对应于 XML 模式类型和参数类型的解析器骨架中的函数
用于对应于这些类型的元素和属性的回调。

编译器有一组预定义的映射规则,将内置的 XML 模式类型映射到
合适的 C++ 类型(下面讨论)和所有其他类型 无效. 通过提供您自己的
您可以覆盖这些预定义规则的类型映射。 类型映射文件的格式为
介绍如下:

命名空间 模式命名空间 [ cxx-命名空间 ]
{
( 包括 文档名称; )*
([ 类型 ] 模式类型 cxx-ret 类型 [ cxx-arg 类型 ]; )*
}

以上皆是 模式命名空间模式类型 是正则表达式模式,而 cxx-命名空间, cxx-ret-
类型cxx-arg 类型 是正则表达式模式替换。 所有名称都可以是可选的
例如,括在“”中以包含空格。

模式命名空间 确定 XML 架构命名空间。 可选的 cxx-命名空间 前缀为
此命名空间声明中的每个 C++ 类型名称。 cxx-ret 类型 是一个 C++ 类型名称
用作返回类型 邮政_* 职能。 可选的 cxx-arg 类型 是一个论点
对应于这种类型的元素和属性的回调函数的类型。 如果 cxx-
参数类型 未指定,默认为 cxx-ret 类型 if cxx-ret 类型 以。。结束 * or &
(也就是说,它是一个指针或引用)和 常量 cxx-ret 类型& 除此以外。 文档名称 is
" " 或 < > 格式的文件名,并添加 的#include 指令
生成的代码。

# 字符开始以新行或文件结尾结尾的注释。 指定一个
名称包含 # 将其括在“”中。 例如:

命名空间 http://www.example.com/xmlns/my my
{
包括“my.hxx”;

# 按值传递苹果。
#
苹果苹果;

# 将橙子作为指针传递。
#
橙色orange_t*;
}

在上面的例子中,对于 http://www.example.com/xmlns/my#橙子 XML 模式类型,
我的::orange_t* C++ 类型将用作返回类型和参数类型。

可以在单个文件中指定多个命名空间声明。 命名空间
也可以完全省略声明以映射没有命名空间的模式中的类型。
例如:

包括“my.hxx”;
苹果苹果;

命名空间 http://www.example.com/xmlns/my
{
橙色“const orange_t*”;
}

编译器有许多预定义的映射规则,可以表示为
以下地图文件。 基于字符串的 XML Schema 内置类型被映射到
标准::字符串 or 标准::wstring 取决于使用 选择的字符类型 --char 类型
选项 (坦克 默认)。

命名空间 http://www.w3.org/2001/XMLSchema
{
布尔布尔布尔;

byte "signed char" "signed char";
unsignedByte "无符号字符" "无符号字符";

短短短;
unsignedShort "unsigned short" "unsigned short";

诠释诠释诠释;
unsignedInt "unsigned int" "unsigned int";

long "long long" "long long";
unsignedLong "unsigned long long" "unsigned 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";

浮动浮动浮动;
双双双;
十进制双倍;

字符串 std::string;
标准化字符串 std::string;
令牌标准::字符串;
名称 std::string;
NMTOKEN std::字符串;
NC 名称 std::字符串;
标识标准::字符串;
IDREF std::字符串;
语言标准::字符串;
任何 URI 标准::字符串;

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 ;

日期 xml_schema::date;
日期时间 xml_schema::date_time;
持续时间 xml_schema::duration;
gDay xml_schema::gday;
gMonth xml_schema::gmonth;
gMonthDay xml_schema::gmonth_day;
gYear xml_schema::gyear;
gYearMonth xml_schema::gyear_month;
时间 xml_schema::time;
}

最后一个预定义规则将之前规则未映射的任何内容映射到 无效:

命名空间 .*
{
.* 无效无效;
}

当您提供自己的类型映射时 --类型映射 选项,它们首先被评估。
这允许您有选择地覆盖预定义的规则。

正则表达式 AND SHELL 引用


在 shell 命令行中输入正则表达式参数时,通常是
必须使用引号(将参数括在“”或“ ”中)以防止
shell 解释某些字符,例如,空格作为参数分隔符和
$ 作为变量扩展。

不幸的是,很难以跨 POSIX shell 可移植的方式实现这一点,
例如在 GNU/Linux 和 UNIX 以及 Windows shell 上找到的那些。 例如,如果您使用“”
对于引用,如果表达式包含 $,则使用 POSIX shell 会得到错误的结果。
在 POSIX 系统上处理此问题的标准方法是使用“ ”。
不幸的是,Windows shell 在将参数传递给参数时不会从参数中删除“ ”
应用程序。 因此,您可能必须对 POSIX 使用“ ”,对 Windows 使用“”($ 不是
在 Windows 上被视为特殊字符)。

或者,您可以将正则表达式选项保存到文件中,每行一个选项,
并将此文件与 --选项文件 选项。 使用这种方法,您无需
担心 shell 引用。

诊断


如果输入文件不是有效的 W3C XML 模式定义, xsdcxx 将发出诊断
留言给 斯特德 并以非零退出代码退出。

使用 onworks.net 服务在线使用 xsdcxx


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad