关于自动生成的schema标签

关于自动生成的schema标签

我生成的标签是这样的  :

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="root-element">
    
    </xs:element>
</xs:schema>

请问这个xs前缀是什么?好像还有个什么xsd:schema,xs、xsd和什么都不写,有什么区别?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,并没有什么冲突。XML 命名空间属性被放置于元素的开始标签之中,对应的语法:

xmlns:namespace-prefix="namespaceURI"

当命名空间被定义在元素的开始标签中时,所有带有相同前缀的子元素都会与同一个命名空间相关联。

namespace-prefix:对应的前缀;namespaceURI:具体的资源地址,比如:

http://img1.sycdn.imooc.com//climg/5f4cd851098a2e9505680053.jpg

而xs就是默认的命名空间,所以默认可以给前面加xs。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

好帮手慕小班 2020-08-31 15:04:09

同学你好,同学使用的工具是不是idea呐?

    idea的语法比较严格,与eclipse中有一些不一样,在idea中xsd文件要按照idea中的规范书写,类型前要加xs,比如:

http://img1.sycdn.imooc.com//climg/5f4c9d65099aa79705670229.jpg

另外同学说的是xsd:schema标签吗,如果是,当前内容中并没有这个标签呢。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 易萧 #1
    我用的VSCode,我试了试,既可以加xs也可以不加xs,只要保持统一就好了。 看网上说的好像是个命名空间,也就是说没有什么区别吗? 根据我以前学C++的namepsace,似乎就是为了解决多个引用导致命名冲突的问题。 于是我试着把xs:改成了自己写的demo:,同样没有出错。 所以,xs或者所谓的xsd都是某种约定俗成对吧? 既然是命名空间,那么肯定能同时存在多个引用。 schema标签不能出现两次嵌套,于是我把第一个子结点改写成了这个样子: <demo2:element xmlns:demo2="http://www.w3.org/2001/XMLSchema" name="teaching-plan"> 然后我把里面的demo:string改成了demo2:string,嘿!好家伙,没报错。 那么,如果没有命名空间,默认是在全局使用,但如果有多处xmlns属性应该就会出现问题。 既然如此,那么在不发生命名冲突的情况下(只有一处xmlns),实际上功能或者特性上应该都没有什么差异的对吧?
    2020-08-31 15:25:14
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师