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

推荐订阅源

博客园 - Franky
雷峰网
雷峰网
The Cloudflare Blog
WordPress大学
WordPress大学
博客园 - 聂微东
人人都是产品经理
人人都是产品经理
IT之家
IT之家
V
V2EX
博客园 - 司徒正美
小众软件
小众软件
博客园_首页
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
酷 壳 – CoolShell
酷 壳 – CoolShell
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Hugging Face - Blog
Hugging Face - Blog
T
Tailwind CSS Blog
Last Week in AI
Last Week in AI
Jina AI
Jina AI
博客园 - 叶小钗
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
阮一峰的网络日志
阮一峰的网络日志
爱范儿
爱范儿

博客园 - 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服务。