博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
xml 转xsd->xsd转c,c++
阅读量:3559 次
发布时间:2019-05-20

本文共 1680 字,大约阅读时间需要 5 分钟。

from

Trang 是一种命令行的可以XML生成XSD的工具,生成XML文件对应的XSD文件只需要3个简单的步骤:

第一步  下载Trang

从 上下载trang-version.zip

第二步 解压zip

将trang-version.zip解压到某个目录,比如d:\trang

第三步  生成XSD

假设在 d:\ 下有一个xml文件  person.xml

[html] 
  1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>  
  2. <person NAME="ZhangSan">  
  3.     <address country="China">  
  4.         <state>beijing</state>  
  5.     </address>  
  6.     <Job>IT</Job>  
  7. </person>  

打开windows命令行,将当前位置变更到 d:\

输入

java -jar %TrangHome%\trang.jar  person.xml  person.xsd

 ( %TrangHome%表示Trang解压目录,  trang.jar 接受两个参数,第一个为源文件,第二个为目标文件)

ok!你可以看到在 d:\  下就生成了 person.xsd 文件

[html] 
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">  
  3.   <xs:element name="person">  
  4.     <xs:complexType>  
  5.       <xs:sequence>  
  6.         <xs:element ref="address"/>  
  7.         <xs:element ref="Job"/>  
  8.       </xs:sequence>  
  9.       <xs:attribute name="NAME" use="required" type="xs:NCName"/>  
  10.     </xs:complexType>  
  11.   </xs:element>  
  12.   <xs:element name="address">  
  13.     <xs:complexType>  
  14.       <xs:sequence>  
  15.         <xs:element ref="state"/>  
  16.       </xs:sequence>  
  17.       <xs:attribute name="country" use="required" type="xs:NCName"/>  
  18.     </xs:complexType>  
  19.   </xs:element>  
  20.   <xs:element name="state" type="xs:NCName"/>  
  21.   <xs:element name="Job" type="xs:NCName"/>  
  22. </xs:schema>  
使用xbinder根据xsd生成c_c++源码
berserkerr 发表于 2005-4-25 12:57:00

我在网上找了一个XML Data binding的工具,叫做XBinder,支持XML Schema和C/C++之间的映射,支持windows,linux和各种unix平台。其主页为http://obj-sys.com/products_xbinder.shtml ,我已经把各平台下的xbinder安装文件放在\\172.18.42.200\Incoming\xgm\xbinder下。

使用xbinder的步骤为:

1.    根据xsd生成c/c++源代码(*.c或*.cpp, *.h)和makefile文件

2.    在自己的c/c++文件里include前一步骤所生成的h文件,使用前一步骤生成的c++ class或c struct

3.    make (要将xbinder的库文件link起来,这些都已经在自动生成的makefile中写好了)

我在windows下试了一下,根据OTA的schema文件FS_OTA_AirBookRS.xsd,生成了一系列cpp和h文件,并可以使用。

 |  |  | 

转载地址:http://fsprj.baihongyu.com/

你可能感兴趣的文章
vue-cli3.0设置环境变量
查看>>
vue父组件直接操作子组件的方法(不通过$emit和$on)
查看>>
vue上传文件到UCloud
查看>>
获取input选择文件的本地地址
查看>>
React绑定全局方法或变量
查看>>
js监听div标签上面的自定义属性
查看>>
navcat如何重置窗口
查看>>
代码注入
查看>>
off-by-one
查看>>
ctf-pwn的一些小技巧
查看>>
POJ 1915 Knight Moves
查看>>
Git 撤销修改
查看>>
Git 删除文件
查看>>
Git与远程仓库关联以及关联错误解决方法
查看>>
[HDU] 平方和与立方和
查看>>
[HDU 2096] 小明A+B
查看>>
[HDU 2520] 我是菜鸟,我怕谁(不一样的for循环)
查看>>
[HDU 1215] 七夕节(求因子,不超时)
查看>>
[POJ 1915] Knight Moves
查看>>
Memcache技术精华
查看>>