23. XML Schema中,内置数据类型64位浮点数
notNegativeInteger double 表示大于等于0的整数,表示24. SAX中,开始解析XML文档的事件是文档解析结束的事件是startDocument startElement endDocument ,开始解析元素的事件是,。【3.0分】
III. 简答(12分) 隐藏/显示 25. XML模式中定义复合类型时,可使用sequence、group、choice、all元素,请简述它们的区别。 【6.0分】
区别是:
o o o o o o o sequence:指定组中的子元素按照一定顺序出现。 group:用通用名组合成组。
choice:只能使用组中的子元素之一。
all:组中的子元素在父元素内可以按照任意顺序出现。
26. 简要描述Web Services的主要技术及各种技术的作用。 【6.0分】
用于构建和使用Web服务主要有四种标准和技术:XML、SOAP、WSDL、和UDDI。 XML是Web Services平台中表示数据的基本格式,XML使用Unicode编码,采用自描述的数据结构,能够以简单的文本文档格式存储、传输、读取数据。现在XML已经作为应用程序、系统和设备之间通过Internet交换信息的通用语言而被广泛接受。 o SOAP(Simple Object Access Protocol,简单对象访问协议),是一种基于XML的轻量级消息交换协议。利用SOAP可以在两个或多个对等实体之间进行信息交换,并可以使这些实体在分散的分布式应用程序环境中相互通信。与XML一样,SOAP也独立于语言、运行平台或设备。 o WSDL(Web Services Description Language,Web Services描述语言)标准是一种XML格式,用于描述网络服务及其访问信息。它用于定义Web Services以及如何调用它们(描述Web服务的属性,例如它做什么,位于哪里和怎样调用它等)。 o UDDI是通用描述、发现和集成(Universal Description,Discovery and Integration)的英文缩写,它是由Ariba、IBM、微软等公司倡导的,它提供了在Web上描述并发现商业服务的框架。UDDI定义了一种在通用注册表中注册Web服务并划分其类别的机制。查询UDDI注册表以寻找某项服务时,将返回描述该服务接口的WSDL描述。通过WSDL描述,开发人员可以开发出与服务提供方通信的SOAP客户端接口。 IV. 编程(18分) 隐藏/显示 o
27. 对于下列XML文档:
16
创建一个Schema,并应用于给定的XML文档。要求如下: 1、Order元素在XML文档中可以1次或多次。
2、OrderID的值的格式必须是PdtXXX,其中X为数字。 3、orderDate必须是合理的日期。 4、number的值必须是2000内的正整数。
5、zip元素的内容的格式必须是XXXXXX,其中X为0-9的数字,该元素可选。 6、city元素的内容只能是北京、上海、济南、青岛之一。
7、phoneno允许如下组合:11位手机号、3位区号+8位号码、4位区号+8位号码。
【9.0分】
o o o o o o
o o o o o o 17 o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o 18 o o o o o 28. 对于下列XML文档,使用JAXP,基于SAX方式解析此文档,在控制台输出所有元素的名称、属性和内容。 分】 o o o o o o o o o o o o o o import java.io.File; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; public class SAX { public static void main(String[] args) throws Exception { SAXParserFactory spf = SAXParserFactory.newInstance(); SAXParser sp = spf.newSAXParser(); 19 o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o V. sp.parse(new File(\ } static class SAXHandler extends DefaultHandler { private StringBuffer buf = new StringBuffer(); public void startElement(String namespaceURI, String localName, String fullName, Attributes attributes) throws SAXException { System.out.println(\元素: \开始解析!\ for (int i = 0; i < attributes.getLength(); i++) { System.out.println(\属性名称:\属性值:\ + attributes.getValue(i)); } } public void endElement(String namespaceURI, String localName, String fullName) throws SAXException { String nullStr = \ if (!buf.toString().trim().equals(nullStr)) { System.out.println(\内容是: \ } buf.setLength(0); System.out.println(\元素: \解析结束!\ } public void characters(char[] chars, int start, int length) throws SAXException { buf.append(chars, start, length); } } } 上机题(20分) 隐藏/显示 20