You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ws.apache.org by Benson Margulies <bi...@gmail.com> on 2011/03/10 15:37:30 UTC

Re: [XmlSchema 2.0] XmlSchemaCollection.init() no inheritance for simple types

Please file a JIRA to ask for the behavior you'd like. I haven't though
carefully this morning about this.

On Thu, Mar 10, 2011 at 9:00 AM, Dmitry Repchevsky <dmitry.repchevski@bsc.es
> wrote:

>  Hello,
>
> I noticed that the method doesn't initialize inheritance model as specified
> in
>
> http://www.w3.org/TR/2004/PER-xmlschema-2-20040318/datatypes.html#built-in-datatypes
>
> I am fixing this in my code:
>
>     private void fixDatatypes(XmlSchema schema)
>     {
>         setSimpleTypeRestriction(schema, Constants.XSD_ANYSIMPLETYPE,
> Constants.XSD_ANYTYPE);
>         setSimpleTypeRestriction(schema, Constants.XSD_DURATION,
> Constants.XSD_ANYSIMPLETYPE);
>         setSimpleTypeRestriction(schema, Constants.XSD_DATETIME,
> Constants.XSD_ANYSIMPLETYPE);
>         setSimpleTypeRestriction(schema, Constants.XSD_TIME,
> Constants.XSD_ANYSIMPLETYPE);
>         setSimpleTypeRestriction(schema, Constants.XSD_DATE,
> Constants.XSD_ANYSIMPLETYPE);
>         setSimpleTypeRestriction(schema, Constants.XSD_YEARMONTH,
> Constants.XSD_ANYSIMPLETYPE);
>         setSimpleTypeRestriction(schema, Constants.XSD_YEAR,
> Constants.XSD_ANYSIMPLETYPE);
>         setSimpleTypeRestriction(schema, Constants.XSD_MONTHDAY,
> Constants.XSD_ANYSIMPLETYPE);
>         setSimpleTypeRestriction(schema, Constants.XSD_DAY,
> Constants.XSD_ANYSIMPLETYPE);
>         setSimpleTypeRestriction(schema, Constants.XSD_MONTH,
> Constants.XSD_ANYSIMPLETYPE);
>         setSimpleTypeRestriction(schema, Constants.XSD_BOOLEAN,
> Constants.XSD_ANYSIMPLETYPE);
>         setSimpleTypeRestriction(schema, Constants.XSD_BASE64,
> Constants.XSD_ANYSIMPLETYPE);
>         setSimpleTypeRestriction(schema, Constants.XSD_HEXBIN,
> Constants.XSD_ANYSIMPLETYPE);
>         setSimpleTypeRestriction(schema, Constants.XSD_FLOAT,
> Constants.XSD_ANYSIMPLETYPE);
>         setSimpleTypeRestriction(schema, Constants.XSD_DOUBLE,
> Constants.XSD_ANYSIMPLETYPE);
>         setSimpleTypeRestriction(schema, Constants.XSD_ANYURI,
> Constants.XSD_ANYSIMPLETYPE);
>         setSimpleTypeRestriction(schema, Constants.XSD_QNAME,
> Constants.XSD_ANYSIMPLETYPE);
>         setSimpleTypeRestriction(schema, Constants.XSD_NOTATION,
> Constants.XSD_ANYSIMPLETYPE);
>         setSimpleTypeRestriction(schema, Constants.XSD_NOTATION,
> Constants.XSD_ANYSIMPLETYPE);
>         setSimpleTypeRestriction(schema, Constants.XSD_DECIMAL,
> Constants.XSD_ANYSIMPLETYPE);
>
>         setSimpleTypeRestriction(schema, Constants.XSD_INTEGER,
> Constants.XSD_DECIMAL);
>         setSimpleTypeRestriction(schema, Constants.XSD_NONPOSITIVEINTEGER,
> Constants.XSD_INTEGER);
>         setSimpleTypeRestriction(schema, Constants.XSD_NEGATIVEINTEGER,
> Constants.XSD_NONPOSITIVEINTEGER);
>         setSimpleTypeRestriction(schema, Constants.XSD_LONG,
> Constants.XSD_INTEGER);
>         setSimpleTypeRestriction(schema, Constants.XSD_INT,
> Constants.XSD_LONG);
>         setSimpleTypeRestriction(schema, Constants.XSD_SHORT,
> Constants.XSD_INT);
>         setSimpleTypeRestriction(schema, Constants.XSD_BYTE,
> Constants.XSD_SHORT);
>         setSimpleTypeRestriction(schema, Constants.XSD_NONNEGATIVEINTEGER,
> Constants.XSD_INTEGER);
>         setSimpleTypeRestriction(schema, Constants.XSD_POSITIVEINTEGER,
> Constants.XSD_NONNEGATIVEINTEGER);
>         setSimpleTypeRestriction(schema, Constants.XSD_UNSIGNEDLONG,
> Constants.XSD_NONNEGATIVEINTEGER);
>         setSimpleTypeRestriction(schema, Constants.XSD_UNSIGNEDINT,
> Constants.XSD_UNSIGNEDLONG);
>         setSimpleTypeRestriction(schema, Constants.XSD_UNSIGNEDSHORT,
> Constants.XSD_UNSIGNEDINT);
>         setSimpleTypeRestriction(schema, Constants.XSD_UNSIGNEDBYTE,
> Constants.XSD_UNSIGNEDSHORT);
>
>         setSimpleTypeRestriction(schema, Constants.XSD_STRING,
> Constants.XSD_ANYSIMPLETYPE);
>         setSimpleTypeRestriction(schema, Constants.XSD_NORMALIZEDSTRING,
> Constants.XSD_STRING);
>         setSimpleTypeRestriction(schema, Constants.XSD_TOKEN,
> Constants.XSD_NORMALIZEDSTRING);
>         setSimpleTypeRestriction(schema, Constants.XSD_LANGUAGE,
> Constants.XSD_TOKEN);
>         setSimpleTypeRestriction(schema, Constants.XSD_NMTOKEN,
> Constants.XSD_TOKEN);
>         setSimpleTypeRestriction(schema, Constants.XSD_NAME,
> Constants.XSD_NMTOKEN);
>         setSimpleTypeRestriction(schema, Constants.XSD_NCNAME,
> Constants.XSD_TOKEN);
>         setSimpleTypeRestriction(schema, Constants.XSD_ID,
> Constants.XSD_NCNAME);
>         setSimpleTypeRestriction(schema, Constants.XSD_IDREF,
> Constants.XSD_NCNAME);
>         setSimpleTypeRestriction(schema, Constants.XSD_ENTITY,
> Constants.XSD_NCNAME);
>
>         setSimpleTypeList(schema, Constants.XSD_NMTOKENS,
> Constants.XSD_NMTOKEN);
>         setSimpleTypeList(schema, Constants.XSD_IDREFS,
> Constants.XSD_IDREF);
>         setSimpleTypeList(schema, Constants.XSD_ENTITIES,
> Constants.XSD_ENTITY);
>     }
>
>     private static void setSimpleTypeRestriction(XmlSchema schema, QName
> child, QName parent)
>     {
>         XmlSchemaSimpleType simple =
> (XmlSchemaSimpleType)schema.getTypeByName(child);
>         XmlSchemaSimpleTypeRestriction restriction = new
> XmlSchemaSimpleTypeRestriction();
>         restriction.setBaseTypeName(parent);
>
> restriction.setBaseType((XmlSchemaSimpleType)schema.getTypeByName(parent));
>         simple.setContent(restriction);
>     }
>
>     private void setSimpleTypeList(XmlSchema schema, QName child, QName
> parent)
>     {
>         XmlSchemaSimpleType simple =
> (XmlSchemaSimpleType)schema.getTypeByName(child);
>         XmlSchemaSimpleTypeList restriction = new
> XmlSchemaSimpleTypeList();
>         restriction.setItemTypeName(parent);
>
> restriction.setItemType((XmlSchemaSimpleType)schema.getTypeByName(parent));
>         simple.setContent(restriction);
>     }
>
> But probably it would be better to include in init() method ???
>
> Kind Regards,
>
> Dmitry
> --
> ------------------------------
> [image: Barcelona Supercomputing Center] National Institute of
> Bioinformatics, Life Science, Computational Node 6
> Nexus II, Jordi Girona 29, 08034 Barcelona, Spain
>
>
> WARNING / LEGAL TEXT: This message is intended only for the use of the
> individual or entity to which it is addressed and may contain information
> which is privileged, confidential, proprietary, or exempt from disclosure
> under applicable law. If you are not the intended recipient or the person
> responsible for delivering the message to the intended recipient, you are
> strictly prohibited from disclosing, distributing, copying, or in any way
> using this message. If you have received this communication in error, please
> notify the sender and destroy and delete any copies you may have received.
>
> http://www.bsc.es/disclaimer.htm
>