schemalocation,import,谁能,高分。(要求既解释xml,也解释对应的xsd的语法,尤其是命名空间部分和import 部分,越详细越好

xiaotuzi 2008-06-16 06:49:13
doublenamespacefix.xml
<?xml version="1.0"?>
<!-- Namespace: http://dyomedea.com/ns/library -->
<library xlmns="http://dyomedea.com/ns/library" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="k:\学电脑\个人网站设计\XMLTRY~1\doublenamespaceFix.xsd">
<!-- <library xmlns:l="http://dyomedea.com/ns/library" xlmns="http://dyomedea.com/ns/library" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://dyomedea.com/ns/library I:\学电脑\个人网站设计\XMLTRY~1\doublenamespace.xsd"> -->
<book id="b0836217462" xmlns:lib="http://dyomedea.com/ns/library">
<title>
Being a Dog Is a Full-Time Job
</title>
<lib:authors>
<person id="CMS" xmlns="http://dyomedea.com/ns/library">
<name>
Charles M Schulz
</name>
</person>
</lib:authors>
</book>
</library>


doublenamespacefix.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:lib="http://dyomedea.com/ns/library" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import namespace="http://dyomedea.com/ns/library" schemaLocation="doublenamespaceFix1.xsd"/>
<xs:element name="title" type="xs:string"/>
<xs:element name="library">
<xs:complexType>
<xs:sequence>
<xs:element ref="book"/>
</xs:sequence>
<xs:attribute name="xlmns" use="required">
<xs:simpleType>
<xs:restriction base="xs:anyURI">
<xs:enumeration value="http://dyomedea.com/ns/library"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="book">
<xs:complexType>
<xs:sequence>
<xs:element ref="title"/>
<xs:element ref="lib:authors"/>
</xs:sequence>
<xs:attribute name="id" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="b0836217462"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>


doublenamespacefix1.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:lib="http://dyomedea.com/ns/library" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://dyomedea.com/ns/library">
<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element ref="lib:name"/>
</xs:sequence>
<xs:attribute name="id" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="CMS"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="name" type="xs:string"/>
<xs:element name="authors">
<xs:complexType>
<xs:sequence>
<xs:element ref="lib:person"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

...全文
177 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
gongxuxuxu 2009-11-23
  • 打赏
  • 举报
回复
为啥doublenamespacefix1.xsd 有 targetnamespace,而doublenamespacefix.xsd 没有呢?
targetNamespace 在Schema中targetNamespace定义了Schema定义出的新元素与属性的名称空间。因为 <xs:enumeration value="CMS"/>

它还有个作用是为了 在一个xml 同时使用 doublenamespacefix1.xsd 和 doublenamespacefix.xsd
两个schema 时. 告诉该xml 这个属性来至哪个 schema

qiuming0306 2008-07-09
  • 打赏
  • 举报
回复
新元素节点就是原来的xml文档的节点和说明都不包含的节点,而是后来因为某种需要在原来的节点内新添加的节点
xiaotuzi 2008-07-08
  • 打赏
  • 举报
回复
5. 为啥doublenamespacefix1.xsd 有 targetnamespace,而doublenamespacefix.xsd 没有呢?
targetNamespace 在Schema中targetNamespace定义了Schema定义出的新元素与属性的名称空间。因为 <xs:enumeration value="CMS"/>
这个是新元素!

这句话不太理解,啥是新元素?
qiuming0306 2008-07-07
  • 打赏
  • 举报
回复
???还没结贴!o(∩_∩)o...
qiuming0306 2008-07-03
  • 打赏
  • 举报
回复
2.我发表的疑问里面:doublenamespacefix1.xsd 文件中有
<xs: element ref="lib: name"/> 和 <xs:element ref="lib: person"/> 但我在这个文档里面没有定义过 lib: name 和 lib: person, 只定义过 <xs: element name="name" type="xs: string"/> 和 <xs: element name="person">,那么,lib: name和lib: person 指什么呢?
是指你的 name,person元素因为在 <lib:authors>这个元素下面,因为authors属于lib命名空间同样的它的子元素也要属于lib这个命名空间!
3.xml文档中
<book id="b0836217462" xmlns: lib="http://dyomedea.com/ns/library"> 。。。 </book> 引用的lib,该lib 命名空间是存在于(或由)doublenamespacefix.xsd 定义呢?还是 由 doublenamespacefix1.xsd 来定义呢?
答:一样的,他们分别定义了这个命名空间,不过因为是一样的命名空间如果xsd本身没有命名空间限定的话可以看成是一个文件。就是像你在html引用了2个同名的css文件一样。看你引用哪个文件来验证了!应用谁就是谁定义的。

4. <lib: authors>。。。 </lib: authors>我知道由名称为lib的命名空间限定,但究竟是 doublenamespacefix.xsd 定义呢?还是 由 doublenamespacefix1.xsd 来定义呢?两个都有 <xs: schema xmlns: lib="http://dyomedea.com/ns/library" 。。。。
同3
5. 为啥doublenamespacefix1.xsd 有 targetnamespace,而doublenamespacefix.xsd 没有呢?
targetNamespace 在Schema中targetNamespace定义了Schema定义出的新元素与属性的名称空间。因为 <xs:enumeration value="CMS"/>
这个是新元素!


6. 为什么xml文档里面要加 noNamespaceSchemaLocation?做啥用?
是当找不到验证文件的时候走这个路径!





xiaotuzi 2008-06-19
  • 打赏
  • 举报
回复
顶顶顶顶,,,,,顶
xiaotuzi 2008-06-18
  • 打赏
  • 举报
回复
1.想具体地问点问题。

2.我发表的疑问里面:doublenamespacefix1.xsd 文件中有

<xs: element ref="lib: name"/> 和 <xs:element ref="lib: person"/> 但我在这个文档里面没有定义过 lib: name 和 lib: person, 只定义过 <xs: element name="name" type="xs: string"/> 和 <xs: element name="person">,那么,lib: name和lib: person 指什么呢?

3.xml文档中

<book id="b0836217462" xmlns: lib="http://dyomedea.com/ns/library"> 。。。</book> 引用的lib,该lib 命名空间是存在于(或由)doublenamespacefix.xsd 定义呢?还是 由 doublenamespacefix1.xsd 来定义呢?

4.<lib: authors>。。。</lib: authors>我知道由名称为lib的命名空间限定,但究竟是 doublenamespacefix.xsd 定义呢?还是 由 doublenamespacefix1.xsd 来定义呢?两个都有<xs: schema xmlns: lib="http://dyomedea.com/ns/library" 。。。。

5. 为啥doublenamespacefix1.xsd 有 targetnamespace,而doublenamespacefix.xsd 没有呢?

6. 为什么xml文档里面要加 noNamespaceSchemaLocation?做啥用?

谢谢。



xiaotuzi 2008-06-17
  • 打赏
  • 举报
回复
呼唤传说中的高手。。。

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧