会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 134118个问题

学了这次的视频,我了解了下一直不太懂的命名空间

命名空间的出现是为了解决dtd不能解决的xml的命名冲突问题,这次课的视频里,xsd文件没有定义自己的命名空间。

然后在book.xml中引入book.xsd的时候属性使用的是

xsi:noNamespaceSchemaLocation="book.xsd"

不指定命名空间,只指定用于模式校验的xsd文档的位置,这种写法,XML模式处理器已经可以校验到xml里的写法问题了。如图:具体报错:

The content of element 'book' is not complete. One of '{price}' is expected.

说明已经检验成功了

image.png

在这里老师用的是

xsi:noNamespaceSchemaLocation="{book.xsd}" 而这种写法在我的idea里面是报红的。 至于视频里老师不报红,我猜测不同工具的不同文件,可能工具没有识别出来语法错误,把验证插件给关闭了。image.png为什么老师要多此一举,使用java的相关类,SchemaFactory进行解析, 是不是因为要让我们了解如果脱离eclipse或者相关IDE,没有XML解析器,在只有xml文件及xsd文件的基础上,java也可以完成使用schema对xml文档的校验。

(扩充:自己测试了一下似乎谷歌浏览器无法完成使用schema对xml文档的校验,不报任何错误。)

这点在视频里没有提到。。这里存在疑问:(******) 


另外给大家一种使用命名空间的方式校验:targetNamespace在book.xsd中给当前命名空间起名字,名称任意:http://www.example.org/books 这个是可以更改的

<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/books" 
elementFormDefault="qualified">
    <xs:element name="books">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="book" maxOccurs="unbounded">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="name" type="xs:string"></xs:element>
                            <xs:element name="author" type="xs:string"></xs:element>
                            <xs:element name="price" type="xs:double"></xs:element>
                        </xs:sequence>
                        <xs:attribute name="id" type="xs:positiveInteger"></xs:attribute>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

book.xml 使用命名空间http://www.example.org/books

<?xml version="1.0" encoding="UTF-8" ?>
<books xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://www.example.org/books"
        xsi:schemaLocation="http://www.example.org/books book.xsd">
    <book id="1001">
        <name>html的使用</name>
        <author>张三</author>
        <price>51.6</price>
    </book>
    <book id="1002">
        <name>css的使用</name>
        <author>李四</author>
        <price>40.6</price>
    </book>
</books>

注释掉第一个book元素的price元素

结果:具体报错:The content of element 'book' is not complete. One of '{"http://www.example.org/books":price}' is expected.

image.png

想让老师解答一下带****号的那里的疑问!谢谢!

JAVA 全系列/第二阶段:JAVA 基础深化和提高/XML 技术(旧) 30844楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/面向对象详解和JVM底层内存分析 30845楼
Python全系列/第三阶段:Python 网络与并发编程/并发编程 30848楼
Python全系列/下架-第十二阶段:Python_大型电商项目(5天后下架)/Django项目阶段-电商项目(旧) 30850楼

1.png

为啥p1是self,p2是other,p1p2不应该都是self.name吗

Python全系列/第一阶段:AI驱动的Python编程/面向对象 30851楼

1.png

老师,我问一下我圈红的那个圈应该怎么弄

Python全系列/第一阶段:AI驱动的Python编程/面向对象 30852楼

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>自定义右击菜单案例</title>
    <style>
        *{padding: 0;margin: 0}
        ul{
            list-style: none;
            background-color: darkgray;
            min-width: 220px;
            display: inline-block;
            position: absolute;
            display: none;
        }
        ul li{
              height: 30px;
              line-height: 30px;
              padding:5px 20px;
              cursor: pointer;
            transition: 0.3s;

        }
        ul li:hover{
            background-color: olivedrab;
            color: #fff;
        }
    </style>
</head>
<body>
<ul>
    <li>北京尚学堂</li>
    <li>欢迎你</li>
    <li>去百度搜索页面中选中的内容</li>
    <li>赚大钱</li>
</ul>
<textarea cols="80" rows="20"></textarea>
<script>
    var ul=document.querySelector("ul");
    document.oncontextmenu=function (eve) {
        return false;//表示事件禁用
    }
    document.onmouseup=function (eve) {
    //eve.button能够判断鼠标用的是哪个按钮
        //0左键  1滑轮 2邮件
        if (eve.button==2){
         ul.style.display="inline-block";
         //设置鼠标点击的位置
            ul.style.left=eve.clientX+"px";
            ul.style.top=eve.clientY+"px";
        }else {
            //关闭菜单
            ul.style.display="none";
        }
    }
    //点击某一菜单选项时触发的事件(事件委托)
    ul.onmousedown=function (eve) {
     if (eve.target.innerHTML=='北京尚学堂'){
        alert("那就去吧");
     }else if (eve.target.innerHTML=='欢迎你') {
         if (confirm('欢迎你?')) {
             window.close();}
     }else if (eve.target.innerHTML=='去百度搜索页面中选中的内容'){
             var result=document.getSelection().toString();
             window.open('http://www.baidu.com/s?wd='+result);
         }else {
         var result=prompt("输入内容然后去百度");
         window.open('http://www.baidu.com/s?wd='+result);
     }
    }
</script>
</body>
</html>

老师我写的这个怎么不跳转百度?为什么要变成字符串的形式?8.jpg

WEB前端全系列/第二阶段:JavaScript编程模块/面向对象编程 30853楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/面向对象详解和JVM底层内存分析 30854楼
Python全系列/第四阶段:函数式编程和核心特性/生成器和装饰器 30855楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637