googlexml接口的xslt设计

上传人:ldj****22 文档编号:48796809 上传时间:2018-07-20 格式:PPT 页数:26 大小:300.50KB
返回 下载 相关 举报
googlexml接口的xslt设计_第1页
第1页 / 共26页
googlexml接口的xslt设计_第2页
第2页 / 共26页
googlexml接口的xslt设计_第3页
第3页 / 共26页
googlexml接口的xslt设计_第4页
第4页 / 共26页
googlexml接口的xslt设计_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《googlexml接口的xslt设计》由会员分享,可在线阅读,更多相关《googlexml接口的xslt设计(26页珍藏版)》请在金锄头文库上搜索。

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

2、LT当成一 种编程语言来学习 ,日常维护可以独 立进行开发 维护:调试/更新 程序员 UI设计较高的学习成本较高的学习成本XMLn格式“象”HTMLn主要面向:B2B的数据交换n更适于机器间的数据交换/绑定XSLTnXSL: eXtensible Stylesheet LanguagenXSLT: XSL Transformations n是一种将XML转换成其他格式文档的编程语 言nXSLT使用XPath在XML文档中定位节点XML/XSLT的处理模式google xml用户 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语法和调试方法 编辑工具:文本编辑器/XMLSpy XSLT调试/测试工具:IE6/XTn程序员:了解工具包的使用 XSLT转换引擎:xalan XML解析器:xercesGoogle

4、/网易服务结构 亚洲数据中心 美国数据中心Web ServerServlet EngineLoad balancingRound-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 transfer vs.匹配过程的模块化:函数重用 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(stri

6、ng1, string2, string3, string4, .) nboolean starts-with(string1, string2) XSLT Functions node-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-s

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

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

9、= “” 可以 “” = “” 不可以 用自定义函数=比较复杂,而且会影响开发 者的分工协作Google接口的不足之处n传递的参数用Param定义,构 造搜索框,下一页时引用不方便n没有一个url encoded的query字 段n不支持用户指定标引,缺省已经 用“key”标引好了n数据有冗余:前页和后页的URL 其实没用:命名方式的演化n命名方式的变化: GSP=Suggestionn没有必要包含DTD声明,否则很 多XSLT引擎的缺省设置会再向服 务器端发一次请求要google.dtdn通过固定参数顺序解决 :Param0=q Param1=startn需要在程序里预先将字符串 encoding好n通过style解决: blockquote b color:redn需要自己通过PARAM重新构造n肯定不能用小写(防止和html冲突 ),但大写缩写让客户比较难懂n使用xml_no_dtd接口性能优化:XSLT的编译结果缓存一个很好的例子: http:/ 模板编译解析XSL模板 序列化输出通用性设计n模板中的URL尽量使用 可以模板和程序页面的名称无关 程序员和UI设计师的工作尽可能互不影 响提问?个人感受n理解新标准的设计意图,但不要指望用新标 准解决所有问题;n新标准往往只是用来解决旧标准不擅长解决 的问题;n实际问题的解决往往是通过传统方法和新方 法结合起来实现的。 谢谢!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号