2022
我们一起努力

w3space怎么样,w3achool

目录:

  • 1、xml的命名空间
  • 2、xml中的命名空间
  • 3、这是什么意思
  • 4、CSS 空白符留问题(white-space:pre)

xml的命名空间

XML 命名空间提供避免元素命名冲突的方法。

在 XML 中,元素名称是由开发者定义的,当两个不同的文档使用相同的元素名时,就会发生命名冲突。

这个 XML 文档携带着某个表格中的信息:

这个 XML 文档携带有关桌子的信息(一件家具):

假如这两个 XML 文档被一起使用,由于两个文档都包含带有不同内容和定义的 table 元素,就会发生命名冲突。

XML 解析器无法确定如何处理这类冲突。

此文档带有某个表格中的信息:

此 XML 文档携带着有关一件家具的信息:

现在,命名冲突不存在了,这是由于两个文档都使用了不同的名称来命名它们的 table 元素 (h:table 和 f:table)。

通过使用前缀,我们创建了两种不同类型的 table 元素。

这个 XML 文档携带着某个表格中的信息:

pre style="margin: 15px 0px 0px; padding: 20px; border: 1px dotted rgb(119, 136, 85); font-family: Consolas; width: 765px; background: rgb(245, 245, 245); line-height: 1.4;"h:table xmlns:h=""

h:tr

h:tdApples/h:td

h:tdBananas/h:td

/h:tr

/h:table/pre

此 XML 文档携带着有关一件家具的信息:

pre style="margin: 15px 0px 0px; padding: 20px; border: 1px dotted rgb(119, 136, 85); font-family: Consolas; width: 765px; background: rgb(245, 245, 245); line-height: 1.4;"f:table xmlns:f=""

f:nameAfrican Coffee Table/f:name

f:width80/f:width

f:length120/f:length

/f:table/pre

与仅仅使用前缀不同,我们为 table 标签添加了一个 xmlns 属性,这样就为前缀赋予了一个与某个命名空间相关联的限定名称。

XML 命名空间属性被放置于元素的开始标签之中,并使用以下的语法:

pre style="margin: 15px 0px 0px; padding: 20px; border: 1px dotted rgb(119, 136, 85); font-family: Consolas; width: 765px; background: rgb(245, 245, 245); line-height: 1.4;"xmlns:namespace-prefix="namespaceURI"/pre

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

注释:用于标示命名空间的地址不会被解析器用于查找信息。其惟一的作用是赋予命名空间一个惟一的名称。不过,很多公司常常会作为指针来使用命名空间指向实际存在的网页,这个网页包含关于命名空间的信息。

请访问 。

统一资源标识符 是一串可以标识因特网资源的字符。最常用的 URI 是用来标示因特网域名地址的 统一资源定位器(URL) 。另一个不那么常用的 URI 是 统一资源命名(URN) 。在我们的例子中,我们仅使用 URL。

为元素定义默认的命名空间可以让我们省去在所有的子元素中使用前缀的工作。

请使用下面的语法:

pre style="margin: 15px 0px 0px; padding: 20px; border: 1px dotted rgb(119, 136, 85); font-family: Consolas; width: 765px; background: rgb(245, 245, 245); line-height: 1.4;"xmlns="namespaceURI"/pre

这个 XML 文档携带着某个表格中的信息:

pre style="margin: 15px 0px 0px; padding: 20px; border: 1px dotted rgb(119, 136, 85); font-family: Consolas; width: 765px; background: rgb(245, 245, 245); line-height: 1.4;"table xmlns=""

tr

tdApples/td

tdBananas/td

/tr

/table/pre

此 XML 文档携带着有关一件家具的信息:

pre style="margin: 15px 0px 0px; padding: 20px; border: 1px dotted rgb(119, 136, 85); font-family: Consolas; width: 765px; background: rgb(245, 245, 245); line-height: 1.4;"table xmlns=""

nameAfrican Coffee Table/name

width80/width

length120/length

/table/pre

当开始使用 XSL 时,您不久就会看到实际使用中的命名空间。XSL 样式表用于将 XML 文档转换为其他格式,比如 HTML。

如果您仔细观察下面的这个 XSL 文档,就会看到大多数的标签是HTML标签。非 HTML 的标签都有前缀 xsl,并由此命名空间标示:" ":

pre style="margin: 15px 0px 0px; padding: 20px; border: 1px dotted rgb(119, 136, 85); font-family: Consolas; width: 765px; background: rgb(245, 245, 245); line-height: 1.4;"?xml version="1.0" encoding="ISO-8859-1"?

xsl:stylesheet version="1.0" xmlns:xsl=""

xsl:template match="/"

html

body

h2My CD Collection/h2

table border="1"

tr

th align="left"Title/th

th align="left"Artist/th

/tr

xsl:for-each select="catalog/cd"

tr

tdxsl:value-of select="title"//td

tdxsl:value-of select="artist"//td

/tr

/xsl:for-each

/table

/body

/html

/xsl:template

/xsl:stylesheet/pre

xml中的命名空间

1. 什么是defaultNamespace?

就是xmlns属性的值。defaultNamespace的作用就是它下面的没有prefix的element的Namespace就是defaultNamespace. 示例如下:

?xml version="1.0" encoding="UTF-8"?

!--defaultNamespace为, a的namespace为 --

a xmlns="" xmlns:edi=""

!--b由于没有前缀,所以会自动采用defaultNamespace, 即;

b edi:attr1="123" attr2="1.112"qwe/b

edi:a xmlns=;

!--d的namespace不再是, 而是, 因为d的父节点也定义了一个defaultNamespace: ;

dfalse/d

/edi:a

edi:a

!--注意,虽然e的父节点Namespace为, 但是e的namespace并不是, 而是;

efalse/e

/edi:a

/a

2.如果一个element定义了xmlns="xxx"属性, 那么直接具有xxx的Namespace, 除非这个element自己包含一个前缀。

...

!-- a 具有xxx 命名空间 --

!-- 属性d不具有xxx命名空间 --

a xmlns="xxx" d="ddd"

!--b也具有xxx命名空间 --

b

...

/b

!--c不具有xxx的命名空间--

edi:c

...

edi:c

/a

...

!--a不具有xxx命名空间, 因为它使用着edi的命名空间--

...

edi:a xmlns="xxx"

b

...

/b

/edi:a

...

5.3 Uniqueness of Attributes

In XML documents conforming to this specification, no tag may contain two attributes which:

have identical names, or

have qualified names with the same local part and with prefixes which have been bound to namespace names that are identical.

For example, each of the bad start-tags is illegal in the following:

!-- is bound to n1 and n2 --

!--没有prefix的attribute不具有任何命名空间--

x xmlns:n1=""

xmlns:n2=""

bad a="1" a="2" /

!--n1:a和n2:a的命名空间和属性名均相同,不允许出现在同一个element中--

bad n1:a="1" n2:a="2" /

/x

However, each of the following is legal, the second because the default namespace does not apply to attribute names:

!-- is bound to n1 and is the default --

x xmlns:n1=""

xmlns=""

good a="1" b="2" /

!--属性a的命名空间为空,而n1:a的命名空间为;

good a="1" n1:a="2" /

/x

targetNamespace

在Schema中targetNamespace定义了Schema定义出的新元素与属性的名称空间。也就是它是对所定义的XML模型进行限制:限制定义出的元素,或者属性的名称空间。与targetNamespace相关的还有两个属性:elementFormDefault ,attributeFormDefault,这两个属性的缺省值都是unqualified。 如果定义为unqualified表示定义的元素的名称空间可以缺省,此时直接引用父元素的名称空间。如果是qualified则表示,必需要指明名称空间,不能直接引用其父元素的,要指明。(如果Schema限定的文档,刚好定义了”空的名称空间“并且刚好与targetNamespace一至,可以缺省)。

在WSDL中也有一个targetNamespace,但是没有Schema中的两个属性。但其它这两个属性在WSDL中其实并不需要,不管这两个属性取值,对文档其实没有什么影响,所以也就不用定义这两个属性。

不失一般性,下面我假定WSDL与SOAP绑定。WSDL是用来定义的是服务的一些属性,targetNamespace定义的服务“收到的请求”与“发出响应”的一些属性(也许有其它的,但我没发现,如果有知道的,请指教),定义了请求与响应对应的XML元素应该使用的名称空间。从SOAP协议中,我们可以看到,响应与请求元素的父元素是env:Body,它的名称空间是SOAP标准指定了的,根据不同的SOPA协议版本不同,比如Soap1.1为 ,而Soap1.2为。

这样导致了响应与请求元素也就无法使用其父元素的名称空间,要使响应与请求的名称空间与targetNamespace一至,元素也就不能使用缺省的父元素的名称空间,必需显示的使用完整的名称空间。这样在Schema中出现的elementFormDefault ,attributeFormDefault两个属性,也就在WSDL中没有存在的必要了。

也就是WSDL与Schema中的targetNamespace基本上是一至,你完全可以相互参考起来理解。

参考文献:

;id=25672replyID=17053star=1skin=0

(Schema的官方文档)

(WSDL的官方文档)

schemaLocation是用来指定XML Schema文档路径的

新的 XML Schema 系统即将成为 W3C 推荐标准,目的是为了克服 DTD 的局限性(请参阅侧栏, DTD 的局限性 ),为 XML 文档提供丰富的语法结构。本文展示了模式的灵活性,说明如何使用 XML Schema 系统来定义最基本的 XML 文档构造块——元素。

XML Schema 比 DTD 更强大。为了说明 XML Schema 机制的强大功能,下面三个程序清单简要比较了表示元素的不同方式。 清单 1给出了一个 XML 文档片段, 清单 2用 DTD 语法声明了这两个元素, 清单 3则是相应的 XML Schema 语法形式。要注意, 清单 3中所用的是相同的 XML 语法。通过模式,验证解析器可以检查元素 InvoiceNo 是否是正整数,元素 ProductID 的首字符是否为 A 到 Z 之间的字母,后面为六个***数字。相反,引用 DTD 的验证解析器只能检查这些元素是否用字符串表示。

这是什么意思

这句话是在前端页面aspx的,意思是导入系统数据的命名空间

举个例子,

asp:HyperLink ID="HyperLink6" runat="server"%# WhiteQueen.WTools.getShortString(((System.Data.DataRowView)Container.DataItem)["news_title"].ToString(), 15, "...")%/asp:HyperLink

注意此处的System.Data.DataRowView,如果加了%@ Import Namespace="System.Data" %

那么此处只用写成DataRowView就可以了

如不理解,可以参照下面代码, 觉得有用楼主就给分吧,当然加分更好, 哈哈, 纯手打哦

%@ Page Language="C#" AutoEventWireup="true" CodeFile="NewsList.aspx.cs" Inherits="Upload_UpFiles_NewsList" %

%@ Import Namespace="System.Data" %

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""

html xmlns=""

head runat="server"

title/title

/head

body

asp:Repeater ID="Repeater6" runat="server" DataSourceID="SqlDataSource6"

onitemdatabound="Repeater6_ItemDataBound"

HeaderTemplate

div class="456-4afb-13fe-9324-c038 repheader"消息列表/div

/HeaderTemplate

ItemTemplate

div class="456-13fe-9324-c038-59a4 repitem"

asp:HyperLink ID="HyperLink6" runat="server"%# WhiteQueen.WTools.getShortString(((System.Data.DataRowView)Container.DataItem)["news_title"].ToString(), 15, "...")%/asp:HyperLink

/div

/ItemTemplate

/asp:Repeater

asp:SqlDataSource ID="SqlDataSource6" runat="server"

ConnectionString="%$ ConnectionStrings:SQL %"

SelectCommand="select * from dbo.tb_comp_News where news_type=6 and news_locked=0 order by news_updatetime desc"

/asp:SqlDataSource

/div

/body

/html

CSS 空白符留问题(white-space:pre)

楼主可能是在IE下测试的,在IE中不加文档类型声明(!DOCTYPE)是无**常解析的。建议加上适当的文档类型声明,如:

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""

赞(0)
文章名称:《w3space怎么样,w3achool》
文章链接:https://www.fzvps.com/239496.html
本站文章来源于互联网,如有侵权,请联系管理删除,本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
图片版权归属各自创作者所有,图片水印出于防止被无耻之徒盗取劳动成果的目的。

评论 抢沙发

评论前必须登录!