[JAVA]怎样验证XML文件是否符合schema定义

两种方法: 1。 使用SAX解析: [java] /*** * @param xmlPath – XML文件路径 * @param schemaPath – Schema文件路径 */ public void saxValidation(String xmlPath, String schemaPath){ try { SAXParserFactory saxParserFactory = SAXParserFactory.newInstance(); saxParserFactory.setNamespaceAware(true); saxParserFactory.setValidating(true); SAXParser saxParser = saxParserFactory.newSAXParser(); saxParser.setProperty(“http://java.sun.com/xml/jaxp/properties/schemaLanguage”, “http://www.w3.org/2001/XMLSchema”); saxParser.setProperty(“http://java.sun.com/xml/jaxp/properties/schemaSource”, schemaPath); DefaultHandler handler = new DefaultHandler(); saxParser.parse(xmlPath, handler); } catch(SAXException exc) { exc.printStackTrace(); } } [/java] 2。 使用DOM解析: […]

使用JAVA将彩色图片变为1bit黑白图片

最近做的project需要涉及到对扫描图片的文字识别,需要将扫描得到的彩色图片变为1bit的黑白图片。 搜索到很多解决方案,基本的归纳为两个步骤,首先要将彩色图片变为8bit灰度图片(grayscale image),然后再进一步变为1bit的单色图片(1bit monochrome)。 方案一:使用ColorConvert和Dithering操作 1、代码 目前JAVA最新的图片处理包应该是JAI(Java Advanced Imaging),在JAI API的FAQ页面上,找到了下面的方法来完成这两步工作: 将彩色图片转换为8bit灰度图片(使用ColorConvert颜色转换操作) [java] public RenderedImage convertTo8BitGray(RenderedImage colorImage){ ParameterBlock pb = new ParameterBlock(); pb.addSource(colorImage); ColorModel cm = new ComponentColorModel( ColorSpace.getInstance(ColorSpace.CS_GRAY), new int[]{8}, false, false, Transparency.OPAQUE, DataBuffer.TYPE_BYTE); pb.add(cm); RenderedImage grayImage = JAI.create(“ColorConvert”, pb); return grayImage; }[/java] 将8bit灰度图片转换为1bit黑白图片 (使用errordiffusion或ordereddither操作) [java] public RenderedImage applyDithering(RenderedImage grayImage, boolean isErrorDiffusion){ // Load the […]

从Java到C++ — 对比Java与C++编程的不同

原作:Cay Horstmann 英文原文 翻译:Aqua  prglab.com 注:很多程序员包括本人在内都是先学会的Java,然后才学的C++,其实C++与Java有很多相似和互通之处,有相当的Java知识可以对应转化到C++概念,从而帮助我们快速上手。这篇文章介绍的内容就对从Java向C++转变很有帮助,所以翻译推荐给有同样需要的朋友。翻译中加入了本人的理解,不完全是全文照搬。有不明或异议,请参考原文,或留言讨论。还是那句话,推荐多读原版资料。 学习怎样从一种编程语言转移到另一种编程语言是今日的程序员必须面对的现实,还好,C++和Java有很多共同的特点,所以从Java转到C++就容易许多。C++比Java复杂很多,本文并没打算涵盖所有C++的功能。但是如果你能够熟练掌握本文中的所有知识点,也足够有效的使用C++了。

推荐一本Java处理XML的书

XML是现在程序员必备的技能了,有次面试就被问到有没有写过处理XML的程序,用的是什么。记得以前最常用的DOM parser是Apache的Xcerces,在Java 1.4以后,Java标准中有了自己的处理XML的API,叫做JAXP。 Elliotte Rusty Harold的这本书Processing XML with Java详细介绍了如何使用Java编程语言处理XML文档,是一本实用而且综合的指南与教程。书中简要概述了 XML基础,包括XML语法、DTD、模式、有效性,样式单和XML协议XML-RPC、SOAP与RSS。本书的核心内容是深入介绍了Java编程人员用Java生成与操纵XML文档时所用的关键XML API,包括SAX、DOM(文档对象模型)和JDOM。此外,还介绍了这些核心API的许多重要补充,包括XPath,XSLT,TrAX与JAXP,是所有需要使用XML的Java编程人员的宝贵参考资料。 现在这本书的英文版全文已经在线发布在XML的资源网站Cafe con Leche。本书也有中文译本,名为《Java语言与XML处理教程:SAX,DOM,JDOM,JAXP与TrAX指南》,以前卓越可以找到,现在好像找不到了。

[节选]新一代专家系统工具——基于Java的Jess(转载)

转自:http://www.360doc.com/showWeb/0/1/42844.aspx 近10 年来,随着计算机技术和人工智能技术的飞速发展,尤其是网络技 术的进步,专家系统也有了新的重大发展,出现了以Java为核心技术的专家系统开发工具。由美国Sandia实验室推出的专家系统外壳Jess(Java expert system shell)就是其中的一个出色代表,本文将介绍它的来龙去脉和主要特点。