Properties 是平面结构,想要表达结构复杂的信息有一定难度:
font.name = song
font.size=3
属性只应该在修改值的解释时使用,而不应该在指定值时使用,
Html: 凡是不在页面上显示的都是属性
Parse:
DOM(Documnet Object Model)--- 树形结构解析器
SAX(Simple API for XML)--流机制解析器
Jaxp--- pluggability sun 公司的xml库实现了可以插入(apache, ibm and so on)的解析器
-----------------------------------------------
XML 文档验证 --- Schema or DTD
Schema比较复杂,Relax NG(http://www/relaxng.org)也可以对XML进行验证。
Notes: 如过你使用的是DTD的相对URL(如config.dtd, 那么给解析器一个文件或URL对象,而不是InputStream。 如果必须从一个输入流来解析,那么必须提供一个实体解析器, 代码的架构如下:
import org.xml.sax.EntityResolver;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
public class MyEntityResolver implements EntityResolver{
@Override
public InputSource resolveEntity(String publicId, String systemId)
throws SAXException, IOException {
if (publicId.equals("Known SystemId")) {
// this inputSource is representative of data of DTD
return new InputSource();
} else {
return null;
}
}
}