惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

量子位
D
DataBreaches.Net
Microsoft Security Blog
Microsoft Security Blog
V
Visual Studio Blog
GbyAI
GbyAI
美团技术团队
云风的 BLOG
云风的 BLOG
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
博客园 - 叶小钗
Engineering at Meta
Engineering at Meta
博客园 - 三生石上(FineUI控件)
N
Netflix TechBlog - Medium
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
G
Google Developers Blog
博客园 - 【当耐特】
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
宝玉的分享
宝玉的分享
阮一峰的网络日志
阮一峰的网络日志
T
The Blog of Author Tim Ferriss
Y
Y Combinator Blog
U
Unit 42
P
Proofpoint News Feed
V
V2EX

博客园 - I坐标

重新开源UDS Google Wave 提名邀请发送 时尚的轮回-Ajax Castle与Mixin 用动态代理实现AOP Catalysis的建模的3个层次 Catalysis 的构成部分与框架 使用log4net将日志记入PostgreSql Log4Net Appender 之 ADONetAppender 谁对谁失去了信心? Castle与Spring.Net在用法和配置上的区别 - I坐标 - 博客园 ICE:Slice语言(六)--接口、操作和异常(一) ICE:Slice语言(五)--用户定义类型 在ClickOnce和Windows Installer之间选择 ICE:Slice语言(四)--基本类型 ICE:Slice语言(三)--模块 ICE:Slice语言(二)--源文件和词法规则 ICE:Slice语言(一)-编译 ICE:5个服务
合并XML文件与在客户端管理Web服务引用
I坐标 · 2005-01-20 · via 博客园 - I坐标

MSDN上的一篇文章,讲述了XML文件的合并、架构验证以及Web服务的一些功能。
http://www.microsoft.com/china/MSDN/library/data/xml/mis0303XMLFiles.mspx

看完后,大受启发。

说起来真惭愧,以前合并XML文档都是通过读取源XML文档的innerXML,然后与目标XML文档的innerXML组合,没想到还有这么好的方法:

1、通过XmlNode的ImportNode方法,不过ImportNode只是在文档之间传输对象的控制,因此还需要调用AppendNode方法,或者其它的Node的插入方式来把Node添加到目的文档中。不过这样可以控制到Node,对于只需要合并特定的Node的过程有较好的控制能力。

2、通过XmlReader和XmlWriter。一个XmlWriter负责生成目的XML文档,多个XmlReader负责读入多个源XML文档。XmlWriter提供有WriteNode方法,可以把XmlReader对象写入节点。不过,从表面上看,似乎更适合整篇XML文档的合并。

3、XSLT。这个也是一个比较通用的方法,但是需要较复杂的XSLT指令来达到一些特定的合并目的,但是毫无疑问,相当简单。

对于客户端对Web服务的引用管理,以前都是在VS.NET直接引用Web服务,由于引用时,工具自动把Web服务的地址硬编码到了代码中,因此,为了防止Web服务的地址修改,就不得不手工修改代码,并引入一个XML文件专门记录Web服务的地址,现在看来,那都是“杨白劳”:-P。

原来在Web服务引用工具wsdl.exe中,有一个参数:appsettingurlkey.通过指定这个参数的值,就可以通过在应用程序配置文件中增加appSetting达到管理Web服务的目的。例如:

wsdl.exe /appsettingurlkey:EchoServiceLocation http://localhost/echoservice/echo.asmx?wsdl
那么只要在配置文件中增加:

就可以了。不需要而外的修改代码,也不需要增加新的配置文件。

这篇文章还讲了如何通过UDDI管理Web服务引用,通过Post和Get方式,以及JavaScript调用Web服务。