说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

如何用Schema验证XML文档

编辑:说三道四文库 发布时间:2018-01-21 03:15
HTML文档下载 WORD文档下载 PDF文档下载
请问各位XML大虾,如何编程实现Schema验证XML文档,包括其各个字段的数据类型?
up
难道就没有人能够解决这个问题么??????
如能解决,再结贴送500分!!!!
// xmltest.cpp : Defines the entry point for the console application.
//

#include "stdafx.h" 
#include "iostream.h" 
#include "msxml.h" 
#include "atlbase.h" 
#import "msxml.dll" //引入类型库 

#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 

int Exit(); 
void LoadFromString(); 
void CreateXML(); 

//XML文本模板 
_bstr_t XMLTemple="<China><Beijing> -11 </Beijing><Beijing>-20</Beijing><Shanghai Weather=\"Cloudy\"> 9 </Shanghai></China>"; 

int main() 

cout << " XML编程--示范程序 " << endl; 

CoInitialize(NULL); //初始化COM 环境 

cout << "------生成新的XML文本 ------" << endl; 

CreateXML(); 

cout << "------读取已有XML文本 ------" << endl; 

LoadFromString(); 
return Exit(); 


void CreateXML() 

MSXML::IXMLDOMDocumentPtr pDoc; 
HRESULT hr =pDoc.CreateInstance(__uuidof(MSXML::DOMDocument)); 
if(!SUCCEEDED(hr)) 


cout << "无法创建DOMDocument对象,请检查是否安装了MS XML Parser 运行库!" << endl; 
Exit(); 



MSXML::IXMLDOMElementPtr pDocElement=pDoc->createElement("China"); 

pDoc->appendChild(pDocElement); 

cout << "生成树根:\n" << pDoc->xml << endl; 

MSXML::IXMLDOMElementPtr pNewChildElement; 

pNewChildElement=pDoc->createElement("Beijing"); 

pNewChildElement->Puttext("-11"); 

pDocElement->appendChild(pNewChildElement); 

cout << "添加节点:\n" << pDoc->xml << endl; 

pNewChildElement=pDoc->createElement("Shanghai"); 

pNewChildElement->Puttext("9"); 

pNewChildElement->setAttribute("Weather",_variant_t("Cloudy")); 

pDocElement->appendChild(pNewChildElement); 

cout << "再添加节点:\n" << pDoc->xml << endl; 

pDocElement->removeChild (pNewChildElement); 

cout << "把刚加入的节点删除:\n" << pDoc->xml << endl; 





void LoadFromString() 


MSXML::IXMLDOMDocumentPtr pDoc; 

HRESULT hr =pDoc.CreateInstance(__uuidof(MSXML::DOMDocument)); 

if(!SUCCEEDED(hr)) 


cout << "无法创建DOMDocument对象,请检查是否安装了MS XML Parser 运行库!" << endl; 
Exit(); 



pDoc->loadXML(XMLTemple); 

cout << "读取结果:\n" << pDoc->xml << endl; 

MSXML::IXMLDOMElementPtr pDocElement=pDoc->GetdocumentElement(); 

// MSXML::IXMLDOMElementPtr pElement=pDocElement->selectSingleNode("Shanghai"); 

// pDocElement->removeChild(pElement); 

MSXML::IXMLDOMNodeListPtr pLists = pDocElement->selectNodes("Beijing");
long n = pLists->Getlength();
for (int i = 0; i < n; i++)
{
MSXML::IXMLDOMElementPtr pDocElement = pLists->Getitem(i);
cout << pDocElement->Gettext() << endl;
}

cout << "定位删除Shanghai节点:\n" << pDoc->xml << endl; 

cout << "保存结果 Save .....(模拟而已)" << endl; 

cout << "\n 好了,就这么简单" << endl; 


int Exit() 

getchar(); 
return 1; 

http://expert.csdn.net/Expert/TopicView1.asp?id=2146670
数据类型、运算符与表达式(上)-C语言教程 数据类型、运算符与表达式(下)-C语言教程 最简单的C语言顺序程序设计-C语言教程 分支结构程序-C语言教程 循环控制-C语言教程 讨论关于三层结构 祝tacoell(声雨山)明天生日快乐:) 编EJB用ACCESS数据库。如何解决呀??急! linux 用什么命令發信息給所有用戶? DataSet的WriteXML()问题 opengl中二三维坐标的转换问题 有没有人做过类似MS PROJECT的东东,给点思路。。。。 初学者一个关于CLOB的问题 祝tacoell(声雨山)永远快乐 吃早餐的时间是多么愉快呀!的英文 我没有太多时间吃早餐英文 明天是我的生日,但我还是很伤心用英语怎么说? 英语翻译要词组不要句子 十分钟的车程 用英文怎么说好rt 英语翻译 10分钟车程是多少距离 车程花费10分钟怎么说?是不是The bus'ri 出租车市你预定的吗?用英语怎么说 埃及穆兄会领袖案开审 三名法官请辞印度连环爆炸案系激进组织所为日俄将首次举行外长防长级磋商 欲促进美国批发物价指数9月环比下降0.1%浙江武义江遭日化企业偷排污水 环保部上接A01版乌首富介入局势引发猜测俄媒披露中俄海上军演部分“剧本”男子酒后骑摩托摔倒 起身后竟直接去剪蔡英文发表选党主席政见:建设“优质”兵者鬼道妖罗之追逐妖父九灵双极修灵德玛西亚三基友海宁旅游巫山旅游波密旅游黔西南旅游樟木旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘