2011年计算机二级考试JAVA知识点整理(75)

来源:计算机等级考试    发布时间:2012-08-29    计算机等级考试视频    评论

  DOMResult result = new DOMResult();

  try {

  validator.validate(source, result);

  Document augmented = (Document) result.getNode();

  // do whatever you need to do with the augmented document...

  }

  catch (SAXException ex) {

  System.out.println(args[0] + " is not valid because ");

  System.out.println(ex.getMessage());

  }

  }

  }

  这个过程的输入和输出都有一定的限制。不能用于所有的流输入和输出。SAX 源可以扩展成 SAX 结果,DOM 源扩展成 DOM 结果,但是 SAX 源不能扩展成 DOM 结果,反之亦然。如果需要这么做,首先扩展成匹配的结果:SAX 对 SAX、 DOM 对 DOM,然后使用 TrAX 的恒等转换改变模型。

  但不建议使用这种技术。将文档需要的全部信息放在一个实例中,要比分解成实例和模式更可靠。您可以验证,但并非所有的人都能验证。

  类型信息

  W3C XML Schema Language 在很大程度上依赖于类型 这一概念。元素和属性被声明为 int、double、date、duration、person、PhoneNumber 或其他您能够想到的类型。Java Validation API 提供了一种手段来报告这些类型,虽然令人吃惊的是该特性独立于包的其他部分。

  类型用 org.w3c.dom.TypeInfo 对象表示。这个简单的接口通过 清单 5 来说明,它给出了类型的本地名和名称空间 URI。还可以告诉您它是否派生自其他类型。除此以外,理解这种类型就是您的程序的任务了。Java 语言没有说明它的含义,或者将其转化成 double 和 java.util.Date 这样的 Java 类型。

  清单 5. DOM TypeInfo 接口

  package org.w3c.dom;

  public interface TypeInfo {

  public static final int DERIVATION_RESTRICTION;

  public static final int DERIVATION_EXTENSION;

  public static final int DERIVATION_UNION;

  public String getTypeName();

  public String getTypeNamespace()

  public boolean isDerivedFrom(String namespace, String name, int derivationMethod);

  }

  要获得 TypeInfo 对象,需要向 Schema 对象请求 ValidatorHandler 而不是 Validator。ValidatorHandler 实现了 SAX 的 ContentHandler 接口。然后将该处理程序安装到 SAX 解析器中。

  还要在 ValidatorHandler(不是解析器)中安装您自己的 ContentHandler,ValidatorHandler 将把扩展的事件转发到您的 ContentHandler。

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答