xsl在xml中定义

时间:2012-11-16 20:21:46

标签: xml xslt namespaces xsd

我在movies.xml中的前几行如下:

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="movies_style.xsl"?>
<movies 
    xmlns="http://www.w3schools.com" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.w3schools.com file:///B:/USC/Academic/DBMS/HWS/no3/movie_sch.xsd">

和movies_style.xsl中的前几行如下:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:fo="http://www.w3.org/1999/XSL/Format">

问题是如果从movies.xml文件中删除模式文件并仅将标记保留为<movies>,那么正确的样式表将显示为输出,否则浏览器中不显示任何内容,并且错误在控制台中显示为:

“不安全的尝试从URL文件加载URL文件:/// B:/USC/Academic/DBMS/HWS/no3/movies_style.xsl:/// B:/ USC / Academic / DBMS / HWS / no3 / movies.xml。域,协议和端口必须匹配。“

看起来有些命名空间错误。谁能指出究竟是什么?

2 个答案:

答案 0 :(得分:0)

问题似乎是架构文件无法通过Web访问。它位于使用该文件访问的B:驱动器上:但XML和XSL可能使用http访问:并且浏览器(假设您正在使用浏览器查看)将无法使用文件加载:由于安全问题。尝试重新定位模式文件,以便可以使用HTTP加载。

答案 1 :(得分:0)

已将targetnamespace指定为w3schools.org。不应该在那里。这就是问题所在。