问题标签 [codesynthesis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1373 浏览

c++ - 使用 CodeSynthesis XSD 树映射的 C++ 类型

我正在使用 CodeSynthesis XSD C++/Tree Mapping 实用程序将现有的 xsd 转换为 c++ 代码,我们可以在其中填充值。这是我们始终确保遵循架构的原因。

完成转换后,我试图让它工作,以便我可以测试它。问题是,我不习惯在 C++ 中这样做,这是我第一次使用这个工具。

我从一个名为 ABSTRACTNETWORKMODEL 的类开始,其中包含类型versno_typefromtime_type typedef'd。这是我尝试使用的构造函数以及 typedef

所有这些都在 ABSTRACTNETWORKMODEL 类中,double_ 和 time 的定义是:

其中 time 的定义是具有多个构造函数的类:

我知道我没有正确创建一个新的 ABSTRACTNETWORKMODEL,但我不知道我需要做什么。这是我目前要做的所有事情:

当然,这会引发关于转换第二个参数的错误,但是有人可以告诉我这是不正确的吗?或者至少为我指明正确的道路,因为我现在想做的一件事就是学习更多的 C++。

0 投票
2 回答
531 浏览

c++ - 代码合成似乎没有生成“有效”的 xml 树

我一直在使用代码合成 xsd 来生成 xml 树,以确保 xml 输出与原始 xsd 的一致性。

初始测试后,一切看起来都正常,但是当我尝试输入无效值(正确的类型,但超出定义的范围)时,这些值是允许的。

尽管 xml 格式正确并且符合 xsd 中设置的类型,但它不是架构中的有效 xml。

有没有其他人使用过这个工具和/或遇到过这个问题?

0 投票
3 回答
2210 浏览

c++ - 类似于 XSTREAM 的 C++ 序列化 Clean XML

我需要编写一个 linux c++ 应用程序,它以 XML 格式保存它的设置(以便于手动编辑),并且还通过套接字和 HTTP 上的 XML 消息与现有应用程序进行通信。问题是我无法找到任何智能库来帮助我,我并不特别想编写 DOM 或 SAX 代码来编写和阅读一些非常简单的消息。

Boost Serialization 几乎是一个匹配项,但它在它生成的 xml 中添加了许多特定于 boost 的数据。这显然不适用于交换格式。我想知道是否可以使 Boost Serialization 或其他一些 c++ 序列化库生成干净的 xml。我不介意是否有一些必需的额外属性——比如版本属性,但我真的希望能够控制它们的命名并摆脱我不使用的“功能”——tracking_level 和 class_id实例。

理想情况下,我只想在 Java 中拥有类似于 xstream 的东西。我知道 c++ 缺乏自省,因此有必要进行一些手动编码 - 但如果有一个干净的解决方案来读取和写入简单的 XML 而不会产生混乱,那就太好了!

如果无法做到这一点,我也对 XML 模式是规范资源(合同优先)的工具感兴趣——这是 C++ 的一个很好的 JAXB 替代品。到目前为止,我只找到了像 CodeSynthesis XSD 这样的商业解决方案。我更喜欢开源解决方案。我已经尝试过 gSoap - 但它会生成非常丑陋的代码,而且它也是特定于 SOAP 的。

无奈之下,我也开始寻找 protobuffers 的替代序列化格式。这存在 - 但仅适用于 Java!令我惊讶的是,协议缓冲区似乎是比 XML 更受支持的数据交换格式。

我只是为这个应用程序寻找库而发疯,我真的需要一些新的想法。任何人?

0 投票
1 回答
2702 浏览

c++ - XSD:如何在子元素类型中设置属性值?

在 xsd 文件中,我有这个元素基本类型:

我想type在子类型中定义属性的值,所以我尝试了这个:

Visual Studio 似乎并不介意,但CodeSynthesis C++ 代码生成器似乎不同意:

错误:属性“类型”已在基础中定义

我该怎么写这个?我只希望type属性的值特定于每个不同的子类型。

编辑 - -

为了使问题更清楚,我将用 C++ 编写我想做的同样的事情。

这是基类:

现在,其中一个孩子可以这样实现:

如您所见,子类定义了由基类定义的属性值。甚至可以用xsd表达吗?

0 投票
3 回答
1537 浏览

c++ - XSD:如何制作多态“列表”?

我正在尝试构建一个元素类型,该元素类型保留一个元素类型列表,该列表change是其他几个子类型的基本类型。我得到了这个代码:

我使用 CodeSynthesis 生成 C++ 代码。

现在,这似乎有点过头了,因为我们在这里清楚地定义了对不同类型的访问。我想我想要的是更简单的东西,比如:

更改列表。

现在这不允许我为不同的更改子类型使用不同的标签。所以我想也许一个好的解决方案可能是使用替代组

但是我会失去使用特定子类型的属性和元素的能力。

原始解决方案是否可以做到这一点(有一个可以获取子类型的基本类型对象列表)?

0 投票
2 回答
1575 浏览

c++ - 代码综合——C++/Tree子节点序列化

我正在使用这个很棒的工具 (http://www.codesynthesis.com/products/xsd/c++/tree/) 将 xsd 转换为 c++ 代码。

我正在尝试从子节点获取 xml 字符串,但我唯一能得到的是所有 xml,如下所示:

所有的xml:

我可以让所有 xml 做这样的事情:

但我想要的是仅获取 <address> xml 子节点,例如。这有可能吗?怎样才能完成?

谢谢

0 投票
3 回答
7568 浏览

c++ - 示例 XSD 失败并显示“错误:未找到元素 X 的声明”

尽管在 xml 解析领域完全是新手,但我能够成功xsd创建有效c++并编译和链接,但编译器优化(?)远离实例化。因此,从第一步开始,我在 CodeSynthesis尝试hello world xml 示例。但这失败了:

你好.c++:

你好.xml:

你好.xsd:

我认为这正是它所说的,但这些命令并不像记录的那样工作。我发现xsdcxx似乎做正确的事(不像xsd生成 C# 或 vb.net 输出)。

此外,我不包含-I(dir) 并且它编译愉快。它会以某种方式使用错误的包含文件吗?

我究竟做错了什么?也许xsd不是正确的工具?

0 投票
1 回答
5297 浏览

c++ - C++ 的 XML 数据绑定,如 Java 的 JAXB

我在“在 C++ 中使用数据绑定和解析”这一领域将这个问题写成一个完整的**天真**。所以,请多多包涵。:)

您可能会发现此问题与THIS重复

在做了一些谷歌搜索之后,我发现 C++ 具有类似于 JAXB for java 的库,用于以“代码合成 xsd”和“Boost Serialization”的形式表示 XML 的对象

1)现在我想问的是,“Boost Serialization”可以执行 CodeSynthesis 能够执行的所有功能吗?

2)如果是,如果我们考虑到哪一个会更好用

3) 如果我们与 Java JAXB 相比,它的性能会如何?[可选问题...仅当有人有基准的链接时]

谢谢。

0 投票
2 回答
268 浏览

c++ - 规范关系运算符 (==,<,...)

考虑一个结构(如:几个成员的愚蠢聚合),其成员都实现了某种关系R(例如<):

对于大多数运算符,存在 的规范定义X R X。例如:

这对所有操作员来说都非常无聊,特别是如果您有很多成员而不仅仅是一个这样的结构。

如您所见operator<X除了operator<使用A.Bbool || bool

有没有一种方法可以通用地指定此类运算符(通过模板或内置函数?)。Boost 不是一种选择(但如果它可以做到这一点,那将会很有趣)。

如果您可以指定成员的评估顺序(为了速度),那就更好了。

编辑这个问题考虑 C++03,否则你可以使用std::tuple,我猜。

0 投票
1 回答
219 浏览

c++ - c++和xml绑定simpletype

这些天我想学习 C++ 的 XML 数据绑定,所以我找到了一个库来从 XSD 文件生成 C++ 代码。我测试了 Hello World 示例,成功创建了两个文件,头文件和 C++ 文件。该库称为CodeSynthesis XSD

了解更多信息:

www.codesynthesis.com/products/xsd/

但我注意到这个库只生成复杂类型(类、枚举、联合......),我的问题是如何生成简单类型,例如:

因为我搜索了几个小时没有找到任何解决方案或教程。