-
Notifications
You must be signed in to change notification settings - Fork 99
Compiling Large Schema Sets
highsource edited this page Oct 25, 2014
·
2 revisions
XML Schema is often used to standardize information exchange in certain subject areas or industries. This often results in large sets of schemas. In this guide I will refer to http://schemas.opengis.net which provide XML Schemas for OGC standards.
These schemas often have some or all of the following characteristics:
- Large set of schemas.
- Available from some schema repository on the web.
- Referencing each other via includes and imports.
- Includes and imports sometimes via absolute and sometimes via relative URLs.
- Versioned. Sometimes the version is included into the namespace URI (example:
http://www.opengis.net/gml/3.2
). - Sometimes containing errors (invalid schemas) and sometimes constructs not supported by JAXB/XJC.
- Often producing naming collisions during compilation (colliding property and class names and colliding methods in the object factory) and all kinds of other compilation problems.
So compiling such sets may be quite a challenge.
This document aims to provide some guidance on this subject. It is largely based on experiences I've made in the frame of the OGC Schemas project which compiles schemas from http://schemas.opengis.net.
WORK IN PROGRESS
Based on the following discussion:
- Home
- Migration guide
-
JAXB Maven Plugin
- Quick Start
-
User Guide
- Basic Usage
- Specifying What To Compile
- Referencing Resources in Maven Artifacts
- Using Catalogs
- Using Episodes
- Modular Schema Compilation
- Controlling the Output
- Using JAXB Plugins
- Using a Specific JAXB Version
- Configuring Extension, Validation and XML Security
- IDE Integration
- Miscellaneous
- Configuring Proxies
- Maven Documentation
- Configuration Cheat Sheet
- Common Pitfalls and Problems
-
JAXB2 Basics Plugins
- Using JAXB2 Basics Plugins
- JSR-305 Support
-
JAXB2 Basics Plugins List
- SimpleEquals Plugin
- SimpleHashCode Plugin
- Equals Plugin
- HashCode Plugin
- ToString Plugin
- Copyable Plugin
- Mergeable Plugin
- Inheritance Plugin
- AutoInheritance Plugin
- Wildcard Plugin
- Setters Plugin
- Simplify Plugin
- EnumValue Plugin
- JAXBIndex Plugin
- FixJAXB1058 Plugin
- Commons Lang Plugin
- Default Value Plugin
- Fluent API Plugin
- Namespace Prefix Plugin
- Value Constructor Plugin
- Boolean Getter Plugin
- CamelCase Plugin
- XML ElementWrapper Plugin
- Parent Pointer Plugin
- Property Listener Injector Plugin
- Annox
- JAXB Annotate Plugin
-
HyperJAXB3
- Build System Support
- Customization Guide
- Databases
- Development guide
- Extension guide
- FAQ
- IDE Support
- Java Persistence
- JAXB
- JDK Support
- Project Templates
-
Reference
- Adding vendor-specific annotations
- Features
- Integrating Hyperjaxb3 in builds
- Introduction
- Making schema-derived classes ready for JPA
- Adding required properties
- Applying workarounds for JAXB vs. JPA conflicts
- Enforcing top-level classes
- Generating equals and hashCode methods
- Generating ORM metadata
- Generating persistence unit descriptor
- JPA 2 Support
- Making classes serializable
- Testing generated mappings
- Reference - single page
- Related Projects
- Sample projects
- Solutions
- Target Scenarios
- Test Projects
- Tutorials
- Best Practices
- FAQ
- Sample Projects
- Support
- License
- Distribution