`

day01xml约束

 
阅读更多

MyEclipse8.5
1、配置workspace ----- 建议不要采用含有空格和中文目录
所有代码保存workspace空间中
2、新建工程时,设置工程需要jre环境
MyEclipse提供多种内置layout --- 每种布局 界面不同,菜单不同
工程的属性
编码集 --- 导入其它工程时,注意编码类型一致
java build path 设置 classpath位置 ,指定当前工程引入类库
source中指定.java 文件 和.class文件 存放位置
librialies 指定当前工程引用类库
Java Compiler 指定 .java 采用 那个 版本 编译 .class文件 ----- 编译器版本
当jre版本低于编译器版本 : Bad version number in .class file

3、对已经存在工程进行分组 向下箭头有个select working set
通过分组隐藏不需要使用工程

4、快捷键
ctrl+/ 单行注释再按一下取消注释 ctrl+shift+/选中注释 反斜杠取消注释
alt+/ Content Assist模板键 --- 将代码快速补全 ---- windows 首选项 java editor templates
ctrl+1 Quick Fix快速修复 提供代码修改建议
* 使用alt+/ 无反应 修改快捷键设置 window首选项 general --- keys
* 设置代码 保存时进行格式化 windows首选项 java -editor - save actions perform the select action on save-format source code

程序调试
java程序员核心能力 --- 代码Debug能力
1、当代码出错了 --- 查看错误信息 --- 找到错误发生位置
* 从上向下找第一行你写的程序
2、根据经验猜测错误原因
通过sysout或者日志技术 打印关键数据信息到控制台
通过Eclipse自带断点调试功能,查看关键位置数据 ----- 断点调试 Break Point ----- 程序通过Debug as 运行
* F5和F7 一起使用,查看具体代码实现 F6 单独使用直接跳到代码下一行
F3 查看类代码
F4 查看类继承关系

关于代码测试工作 ----- 测试:白盒测试和黑盒测试
白盒测试测试代码结构和逻辑(可见代码测试),黑盒测试测试代码功能和性能(不可见代码测试)
* 白盒测试局限性 1、白盒测试不可能测试所有代码 2、白盒测试难度比较高 ---- 白盒测试交给软件开发工程师自己测
单体测试是一种白盒测试,测试代码功能模块 -- 测试代码单个功能

junit 是java 的单体测试技术
对选中类进行测试可以在选中类上右键新建junit
1、编写junit 在工程引用junit 类库
2、编写单体测试用例
* 创建public void 无参数的方法 、在方法前添加@Test 注解
3、每个测试方法 相当于以前编写main 函数,每个测试方法可以单独执行

在使用junit进行测试当方法非常多,每个方法输出内容到控制台,人们无法通过人工进行检查
* 自动化结果检查 --- 断言 Assert Assert类的静态方法
断言原理:调用方法,调用方法前,准备测试数据、测试数据运行结果 ------ 比较实际结果与预期结果是否相同

* 编写单体测试时,不要仅测试正确的数据和结果,测试不正确数据(非法数据)

XML技术:与数据相关技术,在企业中xml技术常用来存储数据和传输数据 ,流行原因 ----- xml与任何编程语言无关
xml 可用于 php、java、.net 任何编程语言
* 通过标签来 标记数据

什么是标记语言?
<xxx>aaa</xxx> 典型标记语言 HTML ---- 用标记 修饰文本信息

XML标记随意定义 --- 可扩展
XML典型存储和传输应用:
1、XML 充当数据库 保存数据信息 --- 试题采用xml保存的 、google 数据信息通过xml格式保存
2、在AJAX传输数据 、WebService技术 网络中传输数据时,格式采用xml
在HTML中预定义了很多标记,每个标记都有相应显示效果,xml所有标记没有被预定义
在xml中 <name>HLG</name> ---- 想确定name标记含义 ,需要对xml 添加约束

XML语法
1、文档声明
2、元素
3、属性
4、注释
5、CDATA块
6、处理指令

任何xml必须具备文档声明 <?xml version="1.0" ?>

XML是一种标记语言 存储和传输数据 --- 保存数据内容
没有指定xml 编码集 --- 默认采用ISO-8859-1 编码 (不支持中文数据)
* 注意问题 当xml 指定encoding="utf-8" 是浏览器查看编码集 ------ 浏览器查看编码集必须要和文件保存编码集一致
* 新建记事本程序采用系统默认编码集 --- 默认编码集gbk ---- 使用utf-8编码 另存为

当声明standalone = "yes" 该xml是独立xml 不依赖外面其它文件,standalone = "no" 该xml 依赖外部一些文件

XML 通过元素描述复杂关系模型数据

xml语法规范
1、所有xml元素必须结束
<abc></abc> ----- 在xml 文件中如果标签中没有内容 自结束 <abc />
2、标签不允许交叉嵌套
3、有且仅有一个根元素
4、xml文件中 空格和换行 会被解析器进行解析的
5、严格区分大小写,元素和属性名称不能以数字开始

属性定义语法 <元素名称 属性名称="属性值" 属性名称="属性值" ....>
一个元素定义多个属性的,每个属性值必须使用单引号和双引号
6、属性的值必须用单引号或者双引号 引起来
7、xml注释与html注释相同 <!-- --> 注释不能嵌套

CDATA区域内 保留不被解析器解析的内容 ----通常存放特殊代码,这些代码造成xml格式混乱
<![CDATA[
一下哪个标记 不能直接输入内容 <input type="text" /> <input type="password" /> <input type="file" /> <input type="hidden" /><a href="aaa">link</a>
</question>
]]>
CDATA和转义字符在哪些情况使用?区别?
* 优先使用CDATA XML技术存储数据,传输数据、解析数据

8、通过PI指令控制xml显示样式 (指令之前不能有注释)
当xml 使用pi指令 引用CSS --- 效果等同于HTML,进行页面数据展示 <?xml-stylesheet type="text/css" href="1.css"?>
* 通过xml进行显示数据 ,通过XSLT 修饰xml数据显示 (类似CSS)(在w3c手册中有详细介绍)

XML 技术应用 两大类
1、传输和存储数据 ----- 程序员为了简化开发,不对xml使用约束技术
* 不使用xml约束技术,xml 格式不一定正确
* 所有xml 数据内容生成,解析过程 都是通过程序来完成的
2、使用xml 作为配置文件
Android SSH ----- 程序员为了保证xml元素准确性,通常xml文档使用约束技术的

什么xml使用约束? 使用约束xml文档 --- 元素内容格式更加规范
如果企业中xml没有使用约束 ------ 通过程序生成xml和解析xml时,不使用约束,代码更加简单

XML约束技术 DTD 和 Schema

DTD技术快速入门
1、编写数据xml --- books.xml
2、编写dtd文件
* 为文档每一个元素(不同名称) <!ELEMENT
语法 <!ELEMENT 元素名称 子元素>
元素内部文本 #PCDATA
3、将xml文件与dtd文件关联起来
例如:
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT books (book)>
<!ELEMENT book (name,price)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT price (#PCDATA)>
DTD与xml关联三种方式
1、内部DTD ----- 语法 <!DOCTYPE 根元素 [dtd内容]>
2、外部DTD (引用本地DTD) ----- 语法 <!DOCTYPE 根元素 SYSTEM "本地DTD文件位置" > 例:<!DOCTYPE books SYSTEM "books.dtd">
3、公共DTD (引用网络上DTD) <!DOCTYPE 文档根结点 PUBLIC "DTD名称" "DTD文件的URL">
* 公共DTD 使用 名称 W3C规范官方组织规定的

元素(ELEMENT)定义
* 内 容特点符合含义
() 子元素、分组
, 代表子元素顺序
+ * ? ---- 正则表达式 + 1到多个 、* 任意个(0到多个)、 ? 0或者1个
| 多选一

特殊元素内容:文本类型内容 #PCDATA 子元素内容如果为空 EMPTY ANY任意内容


属性(ATTLIST)定义
语法:<!ATTLIST 元素名称 属性列表 >
属性列表:
属性名称 类型 约束
属性名称 类型 约束
属性名称 类型 约束
属性名称 类型 约束

属性类型
1、CDATA 文本类型属性
2、(值1|值2|值3 ) 三个值选一个
3、ID 表示属性值唯一以字母开头

约束
1、#REQUIERD 属性必须
2、#IMPLIED 属性可选
3、fixed value 属性值固定
4、default 默认值
例:
<!ATTLIST book
NAME CDATA #REQUIRED
author (金庸|古龙) 金庸
>
实体(ENTITY)定义
对于xml数据内容重复,可以抽取实体
语法:<!ENTITY 实体名称 "实体内容" >
<!ENTITY url "http://www.baidu.com" >
引用:&url
======= 才才 22==========================================================================================================

XML Schema 使用一套预先定义好元素和属性 开发的
----- 预先定义好元素和属性 规定了schema 结构和内容
----- 定义schema 规定xml文档 格式和内容

预先已经定义好元素和属性 ------ 定义schema ------- 定义xml实例

Schema本身也是xml ,不像DTD使用单独语法

将schema中定义元素,绑定URI地址(名称空间)上,用来唯一标识元素来自哪个schema 。
* 为什么要有名称空间? 一个xml实例 引用多个Schema ,当两个schema定义同名元素,为了区分同名元素引用自哪个文档。

Schema快速入门
1、编写数据xml文件
2、编写schema文件 .xsd
1) 引入 W3C 名称空间 xmlns="http://www.w3.org/2001/XMLSchema"
每一个元素 对应 <element>
区分复杂元素和简单元素
2) 为schema定义元素指定名称空间 URI (URI可以是任何路径)
3、在xml实例数据文件中 ,引用自定义Schema

elementFormDefault="unqualified"
1、如果schema 将 elementFormDefault="unqualified" ,xml 实例文档 引用名称空间必须使用前缀 ---- 前缀修饰根元素
2、当前xml实例文档所有子元素必须不能用前缀

名称空间 作用 --- 唯一标识schema当中定义元素

简单元素 直接编写type属性 、复杂元素 <complexType>


例子:<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="abcdefg"
elementFormDefault="qualified"
>
<!-- 每一个元素 对应 element -->
<element name="books">
<!-- 包含子元素和属性的元素 复杂元素 -->

<complexType>
<!-- 强调子元素出现顺序 -->
<sequence>
<!-- 让book元素出现多次 * -->
<element name="book" minOccurs="0" maxOccurs="unbounded">
<complexType>
<sequence>
<!-- 对于简单元素,编写type属性 -->
<element name="name" type="string"></element>
<element name="price" type="double"></element>
</sequence>
</complexType>
</element>
</sequence>
</complexType>
</element>
</schema>

分享到:
评论

相关推荐

    Day25 XML.pdf

    XML的约束分为两种:DTD约束和Schema约束。DTD约束中定义了属性类型,包括CDATA、枚举和ID等,属性值的约束有#REQUIRED(必须出现)、#IMPLIED(可选出现)、#FIXED(固定值)等。如果在DTD约束中出现错误,系统通常...

    day38 day38 06-MyEclipse配置Schema约束

    "day38 day38 06-MyEclipse配置Schema约束"这个标题指的是一个关于如何在MyEclipse中配置XML Schema约束的学习教程。在Java企业级开发中,XML文件常用于配置Spring框架的beans,因此这个主题对于理解和管理Java应用...

    传智播客_Andorid_Android项目手机卫士视频video_day01视频

    Day01的视频可能会介绍线性布局、相对布局、约束布局等,这些都是构建应用界面的基础。 4. **Activity和Intent**:Activity是Android应用中的一个基本概念,代表了用户与应用交互的一个屏幕。Intent则用于在...

    树懒_day04.2_xml笔记

    移动开发的小白树懒,现在正在努力的迈向一个强大的自己而努力,现在学习xml的DTD约束

    day023-xml解析笔记和代码.rar

    1.4 XML约束:(了解) 1. 概念:就是限制一个XML文件中标签和属性等的使用,只能按照某种规则书写 便于其他程序员学习。 2. 作用: 1. 代码校验 2. 代码提示 3. 利于达成共识形成规范 ...

    传智播客_Andorid_植物大战僵尸视频_Day01视频

    在本课程"传智播客_Andorid_植物大战僵尸游戏开发视频_Day01"中,我们将开启Android平台上的游戏编程之旅。这个系列的教程主要面向初学者,旨在通过开发经典游戏"植物大战僵尸"的简化版,帮助学员深入理解和掌握...

    XML学习笔记.doc

    HTML没有维持数据类型信息的完整性、约束、或实体间的其他关系,而XML提供了这些特征。 三、SGML、XML和HTML SGML、XML和HTML三者之间的关系可以用以下图示表示:SGML↑||XML。XML继承自SGML,而HTML是SGML的一...

    Oracle Database 2 Day DBA

    - **XML支持**:提供强大的XML存储和处理能力,支持复杂的XML文档操作。 - **Java集成**:增强了Java存储过程的支持,方便开发者利用Java编写数据库应用程序。 #### 四、美国政府使用权限 对于交付给美国政府或...

    传智168期JavaEE Spring 姜涛 day38~day40笔记

    开发者还需要创建Spring的配置文件,在src目录下创建applicationContext.xml,并引入相应的XML约束。配置文件的引入约束文档一般可以在Spring官方发布的包中找到。 ### 总结 传智168期JavaEE Spring姜涛的day38到...

    spring4_day02讲义1

    - **步骤四**:在`applicationContext.xml`中引入Spring的约束,使用XML Schema定义来确保配置的正确性。引入`&lt;context&gt;`命名空间是为了使用注解配置,例如: ```xml xmlns:xsi=...

    传智播客_Andorid_Android项目手机卫士视频video_day11视频

    2. **用户界面(UI)设计**:可能会讲解如何使用XML布局文件来创建和设计应用界面,包括各种控件(如按钮、文本框、图像视图等)的使用和布局管理器(如线性布局、相对布局、约束布局)的应用。 3. **Activity与...

    传智播客_Andorid_智慧北京视频_Day03视频

    可能会讨论线性布局、相对布局、约束布局等,以及如何使用Android Studio的布局编辑器进行可视化设计。 3. **UI组件**:Android提供了丰富的UI组件,如按钮、文本视图、图片视图、滑动选择器等。课程可能涵盖这些...

    JAVA程序员测试题.doc

    XML Schema是一种定义XML文档结构的语言,用于规定文档中元素、属性的类型和约束。在给定的XML文档中,`CDCA-WFS-WORK-CALENDAR`是根元素,它有`YEAR`和`WORKHOURSPERDAY`两个属性,还有`MONTH-FREE-DAYS`和`SPECIAL...

    spring4_day03讲义2

    【Spring4_day03讲义2】主要涵盖了Spring框架中AOP(面向切面编程)的应用,特别是如何使用AspectJ注解方式实现AOP。在CRM系统中,为满足特定需求,我们需要对所有以`save`开头的DAO方法进行权限验证,确保只有管理...

    传智播客_Andorid_智慧北京视频_Day04视频

    这节课可能会介绍线性布局、相对布局、网格布局以及约束布局等,讲解如何有效地设计和管理屏幕元素。 2. **数据存储**:Android提供了多种数据存储方式,如SQLite数据库、SharedPreferences、内部存储和外部存储。...

    传智播客_Andorid_Android项目手机卫士视频video_day05视频

    2. **Android布局设计**:可能讲解了如何使用XML进行界面布局,如线性布局、相对布局、约束布局等,以及如何通过拖拽方式在设计视图中构建用户界面。 3. **Activity与Intent**:Activity是Android应用程序的基本...

    传智播客_Andorid_Android项目手机卫士视频video_day13视频

    在本资源中,“传智播客_Andorid_Android项目手机卫士视频video_day13视频.rar”是一个关于Android开发的教程,特别是针对一个名为“手机卫士”的项目。这个项目可能是一个模仿真实世界安全应用的实践教学,旨在帮助...

    传智播客_Andorid_Android项目手机卫士视频video_day10视频

    4. **布局设计**: 使用XML布局文件创建用户界面,包括线性布局、相对布局、约束布局等,以及如何动态加载和修改布局。 5. **数据存储**: 学习SQLite数据库、SharedPreferences和文件系统的使用,用于应用程序的数据...

    Mybatis_day3.pdf

    - **数据库**:确保外键约束正确设置,使得每个用户在身份信息表中只有一条对应记录。 - **实体类**:在用户实体类中添加身份信息对象作为属性,反之亦然,表示两者之间的关系。 - **查询**:使用`...

Global site tag (gtag.js) - Google Analytics