以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 DTD/XML Schema 』  (http://bbs.xml.org.cn/list.asp?boardid=23)
----  请问:如何根据schema自动生成xml啊?(vc)  (http://bbs.xml.org.cn/dispbbs.asp?boardid=23&rootid=&id=34080)


--  作者:pupu
--  发布时间:6/9/2006 1:43:00 PM

--  请问:如何根据schema自动生成xml啊?(vc)
请问:我应该如何根据一个已有的schema生成一个xml啊?用工具吗?如果我用vc制作一个数据输入界面,可以输入针对xml需要的数据,但是xml最后的生成要符合schema的定义,我应该怎么做?需要应用什么技术和工具啊?
--  作者:Allenihno
--  发布时间:6/12/2006 10:36:00 AM

--  
我正好也在研究这个。
先定义schema,由XSD文件生成C++类,再生成XML文件。

--  作者:dongdong
--  发布时间:6/12/2006 10:52:00 AM

--  
学习一下。
--  作者:pupu
--  发布时间:6/19/2006 10:03:00 AM

--  
哦?Allenihno兄的方法通用吗?我的意思是说,是不是要针对不同的schema文档,生成不同的C++类啊?那样可……:(
另外,如果生成C++类,是不是要用dom来做啊?还是如何?能否解释的稍微具体一点?谢了先^_^
--  作者:Allenihno
--  发布时间:6/19/2006 10:44:00 AM

--  
XMLSpy2005可以由schema文件自动生成4个C++工程,其中Altova,AltovaXMl定义了基本Schema数据类型,如节点,字符,枚举等,以及基本的成员函数(实现了对DOM API的封装)。另外两个工程是根据自定义的schema结构生成的类和测试工程(如,book和booktest)。
生成XML文件时,就可以利用book工程的类来创建需要的结构。很遗憾,这并不是通用的方法。除非你定义的schema是通用的。

--  作者:pupu
--  发布时间:6/19/2006 10:53:00 AM

--  
嗯,了解了,谢谢Allenihno兄弟,我再仔细研究一下^_^。另外如果可以生成xml结构树之类的也是可以利用的吧,希望可以找到更通用的方法啊
--  作者:Allenihno
--  发布时间:6/23/2006 9:36:00 AM

--  
大家一起研究。如果能把XSD文件内容更简洁的表示出来,用户就可以根据规则生成符合规定的xml文件。但是,对于不同应用,我们定义的XSD是不一样的。PUPU说的通用的方法是要达到哪种目的与程度呢?
--  作者:pupu
--  发布时间:6/23/2006 10:10:00 AM

--  
我希望达到的目的分为两个阶段:
首先是通过给定(手工编辑)一个xsd文件,生成一个符合xsd文件规定的xml结构,然后用户只要通过我的程序界面填入他们要填入的数据内容就可以生成一个完整健壮的xml文件(当然要符合xsd的规定);
其次是我要做一个或几个新xsd文件,用于规定和约束并生成之前手工编辑的xsd文件(其实也是xml嘛),这些新xsd文件是用于建立一些特定类型或是结构简单的xsd文件(之前手工编辑的xsd文件),即模板;
通过上面两个步骤,实现用户可以通过程序自行创建一些简单的xml结构(xsd),并通过简单的输入纯数据来完成xml文件的创建,使对xml没有什么了解的用户也可以顺利创建不同结构的xml文档;
呵呵……好像说的有点乱吧?不知讲明白没有,呵呵……
--  作者:pupu
--  发布时间:6/23/2006 10:19:00 AM

--  
新的xsd文件可以通过程序来创建,比如说树控件+dom……呵呵,我初步是这么想的,但是实现起来可能会有些复杂,总之想先做一些简单的试验什么的,能够达成第一步就是实现以后的关键了,现在的问题是如何对任意给定的xsd,都能顺利的生成xml结构,即空的xml啊?一定要通用啊,不然整个计划就没有意义了,呵呵……
--  作者:Allenihno
--  发布时间:6/28/2006 11:33:00 AM

--  
我现在在做你的第一步。不过,用户不是通过GUI来填写数据。用户提供或者手工绘制使用模型,通过对图的遍历将信息存入中间数据结构中。我的工作是从数据结构中读取信息,生成xml文件,再将xml文件中的信息解析。
--  作者:pupu
--  发布时间:7/12/2006 3:59:00 PM

--  
出差了一段时间:(
唉~我最终还是放弃schema了,vc加文本模板=>空xml结构=>vc+dom填充xml数据,唉~虽然不是很灵活,但是总算是从原理上实现了,现在试验中……
时间紧啊,不然一定好好研究schema的方法,现在这样在灵活性上有很大局限的!无奈啊,Allenihno兄弟研究有进展吗?希望这个帖可以漂在上面大家好好研究出个完美方案啊!


--  作者:ipcfg
--  发布时间:7/14/2006 2:39:00 PM

--  
如果是delphi的话,可能比较省事,用delphi自带的xml导入一个dtd文件,delphi自动根据模式文件创建一个类,用的时候实例华一个类,xmlclass.xxx.xx赋值后,直接生成xml,很简单,用别的话,可能要自己写一个这样的工具
--  作者:pupu
--  发布时间:7/17/2006 9:32:00 AM

--  
如楼上所说,针对不同的schema就要重新生成类,重新编译,这不是我们的初衷,所以通用性还是不够啊
--  作者:ipcfg
--  发布时间:7/17/2006 10:56:00 AM

--  
那只有分析xsd文件了,这个肯定很复杂,一直也想写一个这样的工具,就是没有好的思路
--  作者:alphafeng
--  发布时间:10/17/2006 3:26:00 PM

--  
我最近需要用C#实现这个功能,请问最后这个问题你们是怎么解决的。使用MSXML SOM可行吗?
--  作者:飞天梦1999
--  发布时间:3/15/2007 1:45:00 PM

--  
各位大虾,谁用 c++完成一个执行程序,通过调用Xerces,生成XML。等待中……


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
109.375ms