Enums don't match schema: problem with jaxb or xsd?

前端 未结 3 1464
天涯浪人
天涯浪人 2021-01-03 02:13

I\'m trying to use JAXB to unmarshal this file into Java objects. I know that there\'s a problem with SAX in J6 that rejects the maxOccurs line, and I\'ve changed it to

3条回答
  •  粉色の甜心
    2021-01-03 02:46

    XMLBeans does not generate an enum for this XML schema either. Using XMLBeans 2.5.0 (the latest from http://xmlbeans.apache.org/) the following is what is generated for educationLevelType:

    /*
     * XML Type:  educationLevelType
     * Namespace: http://nytd.acf.hhs.gov
     * Java type: gov.hhs.acf.nytd.EducationLevelType
     *
     * Automatically generated - do not modify.
     */
    package gov.hhs.acf.nytd;
    
    
    /**
     * An XML educationLevelType(@http://nytd.acf.hhs.gov).
     *
     * This is an atomic type that is a restriction of gov.hhs.acf.nytd.EducationLevelType.
     */
    public interface EducationLevelType extends org.apache.xmlbeans.XmlString
    {
        public static final org.apache.xmlbeans.SchemaType type = (org.apache.xmlbeans.SchemaType)
            org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(EducationLevelType.class.getClassLoader(), "schemaorg_apache_xmlbeans.system.s1A8CC5216945B0856A28CEF895800DEB").resolveHandle("educationleveltypeb147type");
    
        org.apache.xmlbeans.StringEnumAbstractBase enumValue();
        void set(org.apache.xmlbeans.StringEnumAbstractBase e);
    
        static final Enum UNDER_6 = Enum.forString("under 6");
        static final Enum X_6 = Enum.forString("6");
        static final Enum X_7 = Enum.forString("7");
        static final Enum X_8 = Enum.forString("8");
        static final Enum X_9 = Enum.forString("9");
        static final Enum X_10 = Enum.forString("10");
        static final Enum X_11 = Enum.forString("11");
        static final Enum X_12 = Enum.forString("12");
        static final Enum POST_SECONDARY = Enum.forString("post secondary");
        static final Enum COLLEGE = Enum.forString("college");
        static final Enum X = Enum.forString("");
    
        static final int INT_UNDER_6 = Enum.INT_UNDER_6;
        static final int INT_X_6 = Enum.INT_X_6;
        static final int INT_X_7 = Enum.INT_X_7;
        static final int INT_X_8 = Enum.INT_X_8;
        static final int INT_X_9 = Enum.INT_X_9;
        static final int INT_X_10 = Enum.INT_X_10;
        static final int INT_X_11 = Enum.INT_X_11;
        static final int INT_X_12 = Enum.INT_X_12;
        static final int INT_POST_SECONDARY = Enum.INT_POST_SECONDARY;
        static final int INT_COLLEGE = Enum.INT_COLLEGE;
        static final int INT_X = Enum.INT_X;
    
        /**
         * Enumeration value class for gov.hhs.acf.nytd.EducationLevelType.
         * These enum values can be used as follows:
         * 
         * enum.toString(); // returns the string value of the enum
         * enum.intValue(); // returns an int value, useful for switches
         * // e.g., case Enum.INT_UNDER_6
         * Enum.forString(s); // returns the enum value for a string
         * Enum.forInt(i); // returns the enum value for an int
         * 
    * Enumeration objects are immutable singleton objects that * can be compared using == object equality. They have no * public constructor. See the constants defined within this * class for all the valid values. */ static final class Enum extends org.apache.xmlbeans.StringEnumAbstractBase { /** * Returns the enum value for a string, or null if none. */ public static Enum forString(java.lang.String s) { return (Enum)table.forString(s); } /** * Returns the enum value corresponding to an int, or null if none. */ public static Enum forInt(int i) { return (Enum)table.forInt(i); } private Enum(java.lang.String s, int i) { super(s, i); } static final int INT_UNDER_6 = 1; static final int INT_X_6 = 2; static final int INT_X_7 = 3; static final int INT_X_8 = 4; static final int INT_X_9 = 5; static final int INT_X_10 = 6; static final int INT_X_11 = 7; static final int INT_X_12 = 8; static final int INT_POST_SECONDARY = 9; static final int INT_COLLEGE = 10; static final int INT_X = 11; public static final org.apache.xmlbeans.StringEnumAbstractBase.Table table = new org.apache.xmlbeans.StringEnumAbstractBase.Table ( new Enum[] { new Enum("under 6", INT_UNDER_6), new Enum("6", INT_X_6), new Enum("7", INT_X_7), new Enum("8", INT_X_8), new Enum("9", INT_X_9), new Enum("10", INT_X_10), new Enum("11", INT_X_11), new Enum("12", INT_X_12), new Enum("post secondary", INT_POST_SECONDARY), new Enum("college", INT_COLLEGE), new Enum("", INT_X), } ); private static final long serialVersionUID = 1L; private java.lang.Object readResolve() { return forInt(intValue()); } } /** * A factory class with static methods for creating instances * of this type. */ public static final class Factory { public static gov.hhs.acf.nytd.EducationLevelType newValue(java.lang.Object obj) { return (gov.hhs.acf.nytd.EducationLevelType) type.newValue( obj ); } public static gov.hhs.acf.nytd.EducationLevelType newInstance() { return (gov.hhs.acf.nytd.EducationLevelType) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().newInstance( type, null ); } public static gov.hhs.acf.nytd.EducationLevelType newInstance(org.apache.xmlbeans.XmlOptions options) { return (gov.hhs.acf.nytd.EducationLevelType) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().newInstance( type, options ); } /** @param xmlAsString the string value to parse */ public static gov.hhs.acf.nytd.EducationLevelType parse(java.lang.String xmlAsString) throws org.apache.xmlbeans.XmlException { return (gov.hhs.acf.nytd.EducationLevelType) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( xmlAsString, type, null ); } public static gov.hhs.acf.nytd.EducationLevelType parse(java.lang.String xmlAsString, org.apache.xmlbeans.XmlOptions options) throws org.apache.xmlbeans.XmlException { return (gov.hhs.acf.nytd.EducationLevelType) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( xmlAsString, type, options ); } /** @param file the file from which to load an xml document */ public static gov.hhs.acf.nytd.EducationLevelType parse(java.io.File file) throws org.apache.xmlbeans.XmlException, java.io.IOException { return (gov.hhs.acf.nytd.EducationLevelType) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( file, type, null ); } public static gov.hhs.acf.nytd.EducationLevelType parse(java.io.File file, org.apache.xmlbeans.XmlOptions options) throws org.apache.xmlbeans.XmlException, java.io.IOException { return (gov.hhs.acf.nytd.EducationLevelType) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( file, type, options ); } public static gov.hhs.acf.nytd.EducationLevelType parse(java.net.URL u) throws org.apache.xmlbeans.XmlException, java.io.IOException { return (gov.hhs.acf.nytd.EducationLevelType) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( u, type, null ); } public static gov.hhs.acf.nytd.EducationLevelType parse(java.net.URL u, org.apache.xmlbeans.XmlOptions options) throws org.apache.xmlbeans.XmlException, java.io.IOException { return (gov.hhs.acf.nytd.EducationLevelType) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( u, type, options ); } public static gov.hhs.acf.nytd.EducationLevelType parse(java.io.InputStream is) throws org.apache.xmlbeans.XmlException, java.io.IOException { return (gov.hhs.acf.nytd.EducationLevelType) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( is, type, null ); } public static gov.hhs.acf.nytd.EducationLevelType parse(java.io.InputStream is, org.apache.xmlbeans.XmlOptions options) throws org.apache.xmlbeans.XmlException, java.io.IOException { return (gov.hhs.acf.nytd.EducationLevelType) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( is, type, options ); } public static gov.hhs.acf.nytd.EducationLevelType parse(java.io.Reader r) throws org.apache.xmlbeans.XmlException, java.io.IOException { return (gov.hhs.acf.nytd.EducationLevelType) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( r, type, null ); } public static gov.hhs.acf.nytd.EducationLevelType parse(java.io.Reader r, org.apache.xmlbeans.XmlOptions options) throws org.apache.xmlbeans.XmlException, java.io.IOException { return (gov.hhs.acf.nytd.EducationLevelType) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( r, type, options ); } public static gov.hhs.acf.nytd.EducationLevelType parse(javax.xml.stream.XMLStreamReader sr) throws org.apache.xmlbeans.XmlException { return (gov.hhs.acf.nytd.EducationLevelType) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( sr, type, null ); } public static gov.hhs.acf.nytd.EducationLevelType parse(javax.xml.stream.XMLStreamReader sr, org.apache.xmlbeans.XmlOptions options) throws org.apache.xmlbeans.XmlException { return (gov.hhs.acf.nytd.EducationLevelType) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( sr, type, options ); } public static gov.hhs.acf.nytd.EducationLevelType parse(org.w3c.dom.Node node) throws org.apache.xmlbeans.XmlException { return (gov.hhs.acf.nytd.EducationLevelType) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( node, type, null ); } public static gov.hhs.acf.nytd.EducationLevelType parse(org.w3c.dom.Node node, org.apache.xmlbeans.XmlOptions options) throws org.apache.xmlbeans.XmlException { return (gov.hhs.acf.nytd.EducationLevelType) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( node, type, options ); } /** @deprecated {@link org.apache.xmlbeans.xml.stream.XMLInputStream} */ public static gov.hhs.acf.nytd.EducationLevelType parse(org.apache.xmlbeans.xml.stream.XMLInputStream xis) throws org.apache.xmlbeans.XmlException, org.apache.xmlbeans.xml.stream.XMLStreamException { return (gov.hhs.acf.nytd.EducationLevelType) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( xis, type, null ); } /** @deprecated {@link org.apache.xmlbeans.xml.stream.XMLInputStream} */ public static gov.hhs.acf.nytd.EducationLevelType parse(org.apache.xmlbeans.xml.stream.XMLInputStream xis, org.apache.xmlbeans.XmlOptions options) throws org.apache.xmlbeans.XmlException, org.apache.xmlbeans.xml.stream.XMLStreamException { return (gov.hhs.acf.nytd.EducationLevelType) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( xis, type, options ); } /** @deprecated {@link org.apache.xmlbeans.xml.stream.XMLInputStream} */ public static org.apache.xmlbeans.xml.stream.XMLInputStream newValidatingXMLInputStream(org.apache.xmlbeans.xml.stream.XMLInputStream xis) throws org.apache.xmlbeans.XmlException, org.apache.xmlbeans.xml.stream.XMLStreamException { return org.apache.xmlbeans.XmlBeans.getContextTypeLoader().newValidatingXMLInputStream( xis, type, null ); } /** @deprecated {@link org.apache.xmlbeans.xml.stream.XMLInputStream} */ public static org.apache.xmlbeans.xml.stream.XMLInputStream newValidatingXMLInputStream(org.apache.xmlbeans.xml.stream.XMLInputStream xis, org.apache.xmlbeans.XmlOptions options) throws org.apache.xmlbeans.XmlException, org.apache.xmlbeans.xml.stream.XMLStreamException { return org.apache.xmlbeans.XmlBeans.getContextTypeLoader().newValidatingXMLInputStream( xis, type, options ); } private Factory() { } // No instance of this class allowed } }

提交回复
热议问题