常见问题与回答
投笔从戎 @ 战争研究


前言
问:用XML制作的网页能达到用HTML做出的网页效果吗?
问:学习制作XML网页能不能只看例子,而不看文档?
问:制作XML网页要不要找本书来学习一下XML?
问:制作XML网页要不要学习XSL?
问:可以把HTML代码写进XML网页里吗?
问:目前文档中定义的标记和属性以后会不会修改?
问:目前使用的XSL文件以后会不会修改?
问:为什么在XML网页里写了扫校者等内容却显示不出来?
前言
    本文是为"战争研究"网站的制作者和合作者们编写的,总结了在使用XML建站时的一些常见问题和回答。
问:用XML制作的网页能达到用HTML做出的网页效果吗?
答:完全可以。
    正如前几篇文章已经反复提到的,我们的解决方案是利用XSL样式单把XML网页转换成HTML网页加以显示,尽管转换之后的HTML只在内存中暂时保存,并不会以文件的形式存在磁盘上,但是对于浏览器来说是真正的HTML网页,因此HTML中可用的技术都可以使用,凡是HTML能做到的都能以同样的方式完成。实际上我们目前已经使用了JavaScript和CSS,这些HTML相关技术的代码全都写在XSL样式单里,不用XML网页的制作者操心。
问:学习制作XML网页能不能只看例子,而不看文档?
答:可以,但是不推荐。
    不看文档而直接把例子拿过来COPY/PASTE,的确是一种入门的方法,但是以这种方式学习,许多细节都是全凭自己推理和猜想,费时费力而且难免猜错,不如直接看文档来得可靠。俗话说"磨刀不误砍柴功",多花几分钟仔细阅读文档可以减少出错的可能性并节省大量的纠错工作。如果你是一个网页制作人员,那么更应该在文档上多花一些时间,毕竟不论你花了一个小时还是两个小时来阅读文档,相比日后编写XML所花的几十数百个小时来说都是微不足道的。
问:制作XML网页要不要找本书来学习一下XML?
答:没有必要。
    专门学习一下XML当然可以帮助你更深入的理解我们的网页的工作方式,但这不是必需的,文档中介绍的知识己经足够你了解XML网页如何工作、如何写出正确合要求的XML网页,而专门学习XML可能要花上一两个月时间,而且对于非专业人士可能会需要更长时间,实际上写文档就是为了解决这两个问题。
问:制作XML网页要不要学习XSL?
答:没有必要。
    除非你负责编写XSL,否则完全不需要学习XSL就可以编写XML网页,只需要知道有这类文件并理解它是用来帮助浏览器显示网页的就足够了。
问:可以把HTML代码写进XML网页里吗?
答:不可以。即使写了既不显示也不起作用。
    XML网页中只能包括文档中已经定义的标记和属性,任何在文档无定义的,包括HTML标记和属性,都是非法的。理想的状态是浏览器自动检查XML网页中有没有不合规定的标记和属性,如果有就报告出来。XML也提供了至少两种实现的方法:DTD和Schema,微软也宣称IE5支持它们,但是实际试验的结果表明,似乎IE5在这方面不能按照预想的方式工作,因此我们暂时没有采用这类技术,但很可能在不久以后IE能较好的支持它们时引入这种技术。目前只能靠XML网页制作者的仔细认真来防止非法标记的出现。
问:目前文档中定义的标记和属性以后会不会修改?
答:有可能,但是可能性不大。
    我们目前定义的XML应用不可能是完美的,如果在使用一段时间后发现有不合理的地方或有更好的定义方式,我们会考虑修改XML应用。但是正如新建XML应用时一样,修改XML应用也会经过反复思考和推敲,同时会尽可能确保不对已存在的XML网页产生影响。
问:目前使用的XSL文件以后会不会修改?
答:会修改,而且会经常修改,但不需要对XML文件做任何改动。
问:为什么在XML网页里写了扫校者等内容却显示不出来?
答:XSL允许我们有选择性的显示XML网页中的一些内容而不显示另一些,目前使用的XSL显示绝大部分内容,不显示扫校者等少数内容,但是以后很可能会修改XSL,把这些内容显示出来,因此如果编写XML网页时知道这些内容,建议还是写上去,以后可能会有用。