主要观点:XML 模式对于 XML 文档的结构有严格规则或一般指导作用,有时人们因某些原因接受不符合 XML 模式的输入,通过 SAX XMLFilter可在解组操作中添加命名空间。
关键信息:
- Java 模型中定义了
Customer类,使用@XmlRootElement注解,且在package-info中用@XmlSchema指定命名空间。 - 输入 XML 文档未命名空间限定,通过
NamespaceFilter(继承XMLFilterImpl)在startElement和endElement方法中添加默认命名空间。 - 在演示中,使用
SAXParser创建XMLReader并包裹XMLFilter,将UnmarshallerHandler作为内容处理器,解析输入 XML 后获取Customer对象,再将其编组回 XML 输出,输出包含基于元数据的命名空间限定。
重要细节: NamespaceFilter中定义了静态常量NAMESPACE为命名空间地址。- 在
Demo类中通过一系列步骤创建JAXBContext、XMLFilter等,进行 XML 解析和编组操作。
进一步阅读提供了相关的 JAXB 与命名空间等主题的链接。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。