关于xml中CDATA用法举例的信息
是什么意思
被![CDATA[]]这个标记所包含的内容将表示为纯文本,比如![CDATA[]]表示文本内容“”。
此标记用于xml文档中。在xml中,””、””、””等字符是不能直接存入的,否则xml语法检查时会报错,如果想在xml中使用这些符号,必须将其转义为实体,如”lt;”、”gt;”、”amp;”,这样才能保存进xml文档。
在使用程序读取的时候,解析器会自动将这些实体转换回””、””、””。举个例子:
age age 30 /age
上面这种写法会报错,应该这样写:
age age lt; 30 /age
值得注意的是:
(1)转义序列字符之间不能有空格;
(2) 转义序列必须以”;”结束;
(3) 单独出现的””不会被认为是转义的开始;
(4) 区分大小写。
扩展资料:
在XML中,需要转义的字符有:
(1) amp;
(2) lt;
(3) gt;
(4)" quot;
(5)' apos;
但是严格来说,在XML中只有””和””是非法的,其它三个都是可以合法存在的,但是,把它们都进行转义是一个好的习惯。
不管怎么样,转义前的字符也好,转义后的字符也好,都会被xml解析器解析,为了方便起见,使用![CDATA[]]来包含不被xml解析器解析的内容。但要注意的是:
(1) 此部分不能再包含”]]”;
(2) 不允许嵌套使用;
(3)”]]”这部分不能包含空格或者换行。
![CDATA[]]和xml转移字符的关系:
它们的功能是一样的,只是应用场景和需求有些不同:
(1)![CDATA[]]不能适用所有情况,转义字符可以;
(2) 对于短字符串![CDATA[]]写起来啰嗦,对于长字符串转义字符写起来可读性差;
(3)?![CDATA[]]表示xml解析器忽略解析,所以更快。
什么是CDATA段
CDATA DTD中的属性类型 全名:character data 在标记CDATA下,所有的标记、实体引用都被忽略,而被XML处理程序一视同仁地当做字符数据看待,CDATA的形式如下: ![CDATA[文本内容]] CDATA的文本内容中不能出现字符串“]]”,另外,CDATA不能嵌套。 DTD实例: !ATTLIST payment type CDATA "check" 指定类型为CDATA以后就可以在XML中被用于实例, 例如下面payment 元素的type属性被指定为CDATA类型后在XML中就可以赋于"check"的字符数据。 XML 实例: 在CDATA标记中的信息被解析器原封不动地传给应用程序,并且不解析该段信息中的任何控制标记。 CDATA区域是由“![CDATA["为开始标记,以“]]”为结束标记,注意CDATA为大写。 remark![CDATA[ 音标为[k?n'sist?nt] ]]/remark PHP实例: 比如:PHP中的div class="left floatl column"/div,DIV中就表示: Attribute : class Data Type : CDATA
XML文件里面的CDATA是什么 有什么作用
显示一段文字 如果是只有文字 就不会有异常,如果内部还含有其他元素呢,比如内部包含了first和last两个元素:显示一段文字 那么解析以后的结果xml就会理解成:显示一段文字如果在XML文档中使用类似" 字符是不能直接存入XML的,需要转义,而用这个标记则不需要转义而将这些符号存入XML文档。可以避免未预料的特殊符号导致XML解析出错。 c#涉及到关于XML的CDATA和验证有效性的问题==================================================当你用FLASH和xml结合做网站应用程序时,例如让人自由输入姓名时,人们可以输入一些符号,例如∶""、"/"、"?"等,当生成XML时,会破坏了XML结构,使数据中断。这就要用XML CDATA在XML文档中的所有文本都会被解析器解析。只有在CDATA部件之内的文本会被解析器忽略。Response.Write " Response.Write rs("message")Response.Write "]]"============================================标明是纯文本的,没有这个的话 字符是不能直接存入XML的,需要转义,而用这个标记则不需要转义而将这些符号存入XML文档。可以避免未预料的特殊符号导致XML解析出错。=============================================PCDATA表示已解析的字符数据。CDATA是不通过解析器进行解析的文本,文本中的标签不被看作标记。} ]] 注意上面的一个""符号.
xml CDATA区、特殊字符:= 大于等于
ML文档中包含类似"Elements look like "的文本,其中的""将被解析程序解释成一个元素,而人们实际想要的是""所表示的原义文本。
1.CDATA区:它的全称为character data,以" "开始,以" ]] " 结束,在两者之间嵌入不想被解析程序解析的原始数据,解析器不对CDATA区中的内容进行解析,而是
将这些数据原封不动地交给下游程序处理。
2.特殊字符 :
xml 中表示:?? = 小于等于、??? = 大于等于 需加? 这样的标记: xml中有的符号,需要这样表示
= 小于等于 :
= 大于等于:=]]
一些特殊字符也可用下面的替代符号所代替。
特殊字符?? 替代符号
???????????
????????????
????????????
"???????????? "
'????????????? '
eg.
select zjDailydrillrep.dailydrilrepid,
zjDailydrillrep.wellbore_id,
bore.well_legal_name,
zjDailydrillrep.spudin_date,
zjDailydrillrep.reportfor,
zjDailydrillrep.depthmkb,
zjDailydrillrep.tvdmkb,
zjDailydrillrep.format_id,
zjDailydrillrep.enginbrief,
zjDailydrillrep.Dailywellcost,
zjDailydrillrep.insert_date,
zjDailydrillrep.status,
zjDailydrillrep.comments,
zjDailydrillrep.Submitter,
zjDailydrillrep.Verifyer,
rig.rig_no,
zjDailydrillrep.Rothours,
(select GEO.CURRENT_TD
from LJ_DAILY_GEOLOGICAL_REPORT GEO
where zjDailydrillrep.WELLBORE_ID = GEO.WELLBORE_ID
and GEO.REPORT_DATE = zjDailydrillrep.REPORTFOR
and geo.half_full = '260002' and rownum ) td,--------表示rownum =1
(select GEO.CURRENT_TD
from LJ_DAILY_GEOLOGICAL_REPORT GEO
where zjDailydrillrep.WELLBORE_ID = GEO.WELLBORE_ID
and GEO.REPORT_DATE = zjDailydrillrep.REPORTFOR - 1
and geo.half_full = '260002'? and rownum ) tdbefore
from zj_Dailydrillrep zjDailydrillrep
left join COMM_WELLBORE BORE
on bore.wellbore_id = zjDailydrillrep.wellbore_id
left join zj_rig_data rig
on rig.rig_id = bore.rig_id
where 1 = 1
如何在XML字段插入带有CDATA的数据
1、创建pojo类(在一对多关联关系中,应该在“一”这端的pojo有一个“多”这一端的引用,而多这端有一这端的集合引用(即聚合关联)
2、创建pojo对应的数据库表,并插入数据
3、在ibatis配置文件中配置pojo类(配置方法:SqlMappingConfig.xml文件中添加如typeAlias alias="Key" type="com.longsky.ibatis.lock.model.Key"/配置,下文会看到。)
4、在pojo对应的xml配置文件中配置resultMap,比如在Lock.xml文件中添加
resultMap id="LockResult" class="Lock"
result property="id" column="id"/ result property="lockName" column="lockName"/
result property="keys" column="id" select="getKeysByLockId"/
/resultMap
5、在需要级联查询的查询语句中使用resultMap,比如
select id="selectAllLocks" resultMap="LockResult"
![CDATA[
select id,lockName from lock
]]
/select
在XML中说明CDATA标记及其作用
一、标注样式
命令行:DIMSTYLE”作用:创建和修改标注样式,设置当前标注样式.
一、 线性标注
一个完整的尺寸标注应包括四个组成元素:尺寸线、尺寸界线、尺寸线的端点符号和尺寸文字.
命令行:DIMLINEAR
1、 作用:标注垂直、水平或倾斜的线性尺寸.
二、 对齐尺寸标注
特点:尺寸线与所标注的线段平行,且处于倾斜位置的尺寸.命令行:[DIMALIGNED]作用:标注对齐尺寸.
三、 坐标型尺寸标注
DIMORDINATE,用于标注指定点相对于UCS原点的X坐标或Y坐标值.(绝对坐标)
四、 半径标注
DIMRADIUS,用于标注圆或圆弧的半径.
五、 直径标注
DIMDIAMETER用于标注圆或圆弧的直径.
六、 角度型尺寸标注
特点:直接标注圆弧的圆心角、任意不平行两直线之间的夹角等角度尺寸.
规定:角度数字要水平书写,尺寸的起止点是箭头.
DIMANGULAR
七、 基线标注
特点:所有尺寸公用一条尺寸界线,这条尺寸界线叫基线.
提示:先用线性尺寸命令标注第一个尺寸,再用基线型尺寸命令标注其他尺寸,标注基线型尺寸时,只需要选择第二条尺寸界线.
八、 连续标注DIMCONTINUE
1、 作用:标注连续链式尺寸.
2、 特点:第一尺寸的第二条尺寸界线是第二个尺寸的第一条尺寸界线,各尺寸首尾衔接.
九、 标注圆心标记
DIMCENTER,用于给指定的圆或圆弧画出圆心符号.
十、 引线标注LEADER
作用:完成一个带文字注释或形位公差的标注.
QLEADER(快速引线标注)
作用:快速绘制引线和进行引线标注.
十一、形位公差标注(了解)
在建筑图中几乎不存在,对于一个零件,其实际形状和位置相对于理想形状和位置存在一定的误差,该误差称为形位公差.TOLERANCE
十二、快速标注QDIM
快速标注是AUTOCAD新增的一项标注功能.一次选择多个对象,可同时标注多个相同类型的尺寸,这样可大大节省时间,提高工作效率.
十三、标注编辑DIMEDIT
1、 作用:用于修改选定标注对象的文字位置、文字内容和倾斜尺寸线.
提示:DIMTEDIT([标注]——对齐文字)用于移动或旋转标注文字,有动态拖动文字的功能.