XML接口的XSLT设计_第1页
XML接口的XSLT设计_第2页
XML接口的XSLT设计_第3页
XML接口的XSLT设计_第4页
XML接口的XSLT设计_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Google XML接口的XSLT设计车东摘要nXML/XSLT的一些基本概念nXSLT和传统编程语言的比较nGoogle XML接口的XSLT设计中遇到的问题传统开发中的问题程序员/UI设计师职责不清晰,重复劳动很多n开发:UI和程序的开发无法并发进行n测试:无法区分数据/界面样式的错误n维护:UI的更新也需要程序员进行,程序员需要做很多日常的重复维护 开发 维护:测试/更新程序员UI设计XML设计意图:协作/分工/重用程序员(数据)n用户输入数据校验后台数据的正确性n调用XSLT模板转换XML数据源输出结果:一劳永逸UI设计师(形式)n模板设计结果:工作难度提高需要将XSLT当成一种编程语

2、言来学习,日常维护可以独立进行 开发 维护:调试/更新程序员UI设计较高的学习成本较高的学习成本XMLn格式“象”HTMLn主要面向:B2B的数据交换n更适于机器间的数据交换/绑定XSLTnXSL: eXtensible Stylesheet LanguagenXSLT: XSL Transformations n是一种将XML转换成其他格式文档的编程语言nXSLT使用XPath在XML文档中定位节点XML/XSLT的处理模式googlexml用户用户html网易网易XSLTXSLT转换过程XSLT对XML数据源转换过程XML数据源数据源结果文结果文档档xml转换过程转换过程数据源树数据源树结

3、果树结果树样式表树样式表树XSL样式表样式表XML解析xml:parseXML序列化xml:SerializerXML解析xml:parseXSLT转换器:xslt:TransformerXSLT输入:xslt:SourceXSLT输出:xslt:Result结果文结果文档档html结果文结果文档档textXML:开发/调试工具n共同遵守的标准/规范:W3C Sun-JAXPn数据格式:google.dtdnUI设计师:了解XSLT语法和调试方法编辑工具:文本编辑器/XMLSpyXSLT调试/测试工具:IE6/XTn程序员:了解工具包的使用XSLT转换引擎:xalanXML解析器:xerces

4、Google/网易服务结构亚洲数据中心美国数据中心Web ServerServlet EngineLoadbalancingRound-Robin DNS2. HTTP GET4. HTML3. XML1. HTTP GET提问?后面将通过与传统编程类比方式,简单介绍一下XSLT语言XSLT中的变量引用nxml: Tag Valuenxsl: “Tag Value” “AttrValue”流程控制n n n 匹配过程:match=“TAG”代替 m/?$#/ If ($line = /TAG/) #do transfervs.匹配过程的模块化:函数重用apply-templates代替sub

5、function () Tag1();sub Tag1 () if ($line = /Tag2/ ) Tag2(); sub Tag2 () vs.内置函数XPath Functionsnnumber last() nnumber position() nnumber count(node-set) nnode-set id(object) nstring local-name(node-set) nstring namespace-uri(node-set) nstring name(node-set) nstring string(object) nstring concat(strin

6、g1, string2, string3, string4, .) nboolean starts-with(string1, string2) XSLT Functionsnode-set document(object, node-set?) nnode-set key(keyname, object) nstring format-number(number, formatstring, decimalformat) nnode-set current() nstring unparsed-entity-uri(string) nstring generate-id(node-set)

7、nobject system-property(string) nboolean element-available(string) 模板文件的模块化:函数库重用提问?后面将具体介绍Google XML接口XSLT的模板设计过程中遇到的一些问题如何将LinkValue转成:下一页n忘掉HTML(常犯的错误常与HTML习惯有关)n在XML中和其他标记没有区别,都是符合XML标准的标记n最后问题归结为是一个新的标记,标记的属性需要引用变量正确的方法:上一页Tag 是一种简化的引用最后序列化输出不想escapingn数据源中的标引:<b> nXSLT的转换结果首先是一个符

8、合XML树,只是最后序列化成xml,html,text形式的文本n 其他常犯错误错误.XSLT有IF,但没有IF THEN ELSE正确1.2.否则会将“&j=3”当成一个符号转义3.如果没有就会序列化成:这在html中是错误的4.用xsl:choose xsl:when“/”前需要空格XSLT引擎本身的一些限制n很多XSLT工具包都是按照IANA的规范设计的。规范定义中不包含GBK,因此序列化以后部分字符成为“?”/assignments/character-setsnXSLT没有string_replace

9、(因为是流式解析过程)“” = “” 可以“” = “” 不可以用自定义函数=比较复杂,而且会影响开发者的分工协作Google接口的不足之处1.传递的参数用Param定义,构造搜索框,下一页时引用不方便2.没有一个url encoded的query字段3.不支持用户指定标引,缺省已经用“key”标引好了4.数据有冗余:前页和后页的URL其实没用:命名方式的演化5.命名方式的变化:GSP=Suggestion6.没有必要包含DTD声明,否则很多XSLT引擎的缺省设置会再向服务器端发一次请求要google.dtd1.通过固定参数顺序解决:Param0=qParam1=start2.需要在程序里预先将字符串encoding好3.通过style解决:blockquote b color:red4.需要自己通过PARAM重新构造5.肯定不能用小写(防止和html冲突),但大写缩写让客户比较难懂6.使用xml_no_dtd接口性能优化:XSLT的编译结果缓存一个很好的例子:http:/ 模板编译模板编译解析解析XSL模板模板 序

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论