XML的语法、结构以及相关的一些技术(2)
发布时间:2007-10-23 07:27:00
另外一种Xlink链接方式是Extended Link,它的特点是可以一次设定多个链接对象。同样,在使用Extended Link类型的Xlink元素前必须在DTD中声明这个元素。声明方式和Simple Link类型的Xlink元素类似,不同之处有两点,第一,声明xml:link属性时,语句变为:xml:link CDATA #FIXED “extended”;第二,没有任何href属性和任何目标描述,声明Extended Link类型的Xlink元素,必须包括一套包含href定位的子元素。即在声明了Extended Link类型的Xlink元素之后,还必须声明一个xml:link属性值为locator的子元素。例如:
〈!ELEMENT aaa ANY〉
〈!ATTLIST aaa
xml:link CDATA #FIXED "extended"
inline (true|false) "true"
content-role CDATA #IMPLIED
content-title CDATA #IMPLIED〉
〈!ELEMENT bbb ANY〉
〈!ATTLIST bbb
xml:link CDATA #FIXED "locator"
role CDATA #IMPLIED
href CDATA #REAUIRED
title CDATA #IMPLIED
show (embed|replace|new) "replace"
actuate (auto|user) "user"
behavior CDATA #IMPLIED
〉
这样,我们就可以在XML文件中使用定义过的Extended Link的Xlink元素。如:
〈aaa〉文章资料
〈bbb href="http://www.cbinews.com/XML1.htm title="XML入门"/〉
〈bbb href="http://www.cbinews.com/XML2.htm title="XML进阶"/〉
〈bbb href="http://www.cbinews.com/XML3.htm title="XML应用"/〉
〈/aaa〉
当我们通过CSS或XSL将这个XML文件在浏览器中显示出来后,用户点击“文章资料”这个Extended Link的Xlink链接,将会出现一个选单,列出所有子元素中的标题,并将用户带到相应的位置。
2.Xpointer:Xpointer用来设定XML文件内不同位置的链接,和HTML中的内链接类似,但是,Xpointer提供了5种不同的在XML文件内定位的方法,可将地址定位到相应的地方,功能上比HTML中的内链接更为强大。
绝对定位:root()——将地址定位到XML文件中的根元素位置。
属性名(x)——将地址定位到属性值为x的特定属性位置。
相对定位:child(x)——将地址定位到当前地址下的第x个子标记处。
child(x,y)——将地址定位到当前地址下第x个标记名为y的标记处。
child(x).child(y,z)——将地址定位到当前地址下的第x个标记处,然后将这个标记作为当前地址,再找出该标记下的第y个标记名为Z的控制标记。
范围定位:span(Xpointer1,Xpointer2)——选择所有的在第一个Xpointer开始和第二个Xpointer结束之间的内容。其中Xpointer1、Xpointer2表示其他的定位方法。
属性定位:attr(x)——找出第一个具有x属性的标记。
字符串定位:搜寻特定的字符串,然后将地址定位到特定的字符串处。
合并定位:将上述的定位方法进行组合,产生更多的功能。各种定位方法之间用“.” 符号分隔。


猜你喜欢
- 目录一、生产环境,开发环境切换第一种方法:通过配置.env文件来实现第二种方法二、过滤器三、moment时间库使用一、生产环境,开发环境切换
- 前言本文主要给大家介绍了关于WebSocket部署服务器外网无法连接的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍
- package com.groundhog.codingmouse; import java.sql.Connection; import
- 最近在处理语音检索相关的事。 其中用到语音识别,调用的是讯飞与百度的api,前者使用js是实现,后者用python3实现(因为自己使用pyt
- 前言不要在用手敲生成Excel数据报表了,用Python自动生成Excel数据报表!废话不多说让我们愉快地开始吧~开发工具Python版本:
- 代码如下所示:表landundertake结构如下所示:表appraiser结构如下所示:access代码:代码如下:TRANSFORM F
- 由于研究关系需要自己手动给卷积层初始化权值,但是好像博客上提到的相关文章比较少(大部分都只提到使用nn.init里的按照一定分布初始化方法)
- 前言在使用echarts绘图时可能遇到一些特别的需求,如,当x周表示日期且数据较多(如三个月,按天统计),此时如果按照echarts的默认配
- CREATE TABLE table1( [ID] [bigint] IDENTITY(1,1) NOT NULL, [Name] [nva
-   这篇博客讲的是SQL server的分页方法,用的SQL server 2012版本。下面都用pag
- 问题:我想上传文件时后改名,下载时又将名改回来。 如:我上传一张“我的照片.jpg”上传后改为系统数名“20040302001.jpg”下载
- 一、分析阶段 一般来说,在系统分析阶段往往有太多需要关注的地方,系统各种功能性、可用性、可靠性、安全性需求往往吸引了我们大部分的注意力,但是
- 任务描述本次实践是一个多分类任务,需要将照片中的宝石分别进行识别,完成宝石的识别实践平台:百度AI实训平台-AI Studio、Paddle
- URL dispatcher简单点理解就是根据URL,将请求分发到相应的方法中去处理,它是对URL和View的一个映射,它的实现其实也很简单
- 前言Python 字符串是一个内置的类型序列。字符串可用于处理 Python 中的文本数据。Python 字符串是 Unicode 点的不可
- mysql-5.7以后压缩包安装有了不小的变化,本文针对之前安装mysql5.7.18的笔记进行了总结,分享给大家第一步:到官网下载http
- 两个MySql服务的应用 一、如何在同一系统中安装两个MySql服务。 安装一个5.0版本的,再安装一个5.1版本的就可以了。我用的是mys
- 一、打开摄像头import cv2import numpy as npdef video_demo(): capture = c
- PyQt5树形结构控件QTreeWidget简介QTreeWidget 类根据预设的模型提供树形显示控件。QTreeWidget 使用类似于
- 无限循环如果条件判断语句永远为 true,循环将会无限的执行下去,如下实例:#!/usr/bin/python# -*- coding: U