Yes, this looks correct. Regards, BU
-----Original Message----- From: Jochen Wiedmann [mailto:[EMAIL PROTECTED] Sent: Sat 01/20/07 3:25 PM To: Uri, Brian Cc: jaxme-dev@ws.apache.org Subject: Re: ws-jaxme 0.5.2: blockDefault issues On 1/20/07, Uri, Brian <[EMAIL PROTECTED]> wrote: > 1) JAXME provides a default value of "#all" while the XMLSchema.xsd says > the default should be "". ... > 2) JAXME's BlockSet algorithm is setting opposite values. I can't reproduce your examples, but I believe that I can follow your words from the code. Please check the patch below. Does that match your concerns? Thanks, Jochen -- How fast can a year go? As fast as your childs first year. Index: C:/Workspace/ws-jaxme-0.5/src/xs/org/apache/ws/jaxme/xs/xml/impl/XsESchemaImpl.java =================================================================== --- C:/Workspace/ws-jaxme-0.5/src/xs/org/apache/ws/jaxme/xs/xml/impl/XsESchemaImpl.java (revision 498159) +++ C:/Workspace/ws-jaxme-0.5/src/xs/org/apache/ws/jaxme/xs/xml/impl/XsESchemaImpl.java (working copy) @@ -116,7 +116,7 @@ private String targetNamespacePrefix; private XsToken version; private XsDerivationSet finalDefault = new XsDerivationSet(""); - private XsBlockSet blockDefault = new XsBlockSet("#all"); + private XsBlockSet blockDefault = new XsBlockSet(""); private XsFormChoice attributeFormDefault = XsFormChoice.UNQUALIFIED; private XsFormChoice elementFormDefault = XsFormChoice.UNQUALIFIED; private XsID id; Index: C:/Workspace/ws-jaxme-0.5/src/xs/org/apache/ws/jaxme/xs/xml/XsBlockSet.java =================================================================== --- C:/Workspace/ws-jaxme-0.5/src/xs/org/apache/ws/jaxme/xs/xml/XsBlockSet.java (revision 498159) +++ C:/Workspace/ws-jaxme-0.5/src/xs/org/apache/ws/jaxme/xs/xml/XsBlockSet.java (working copy) @@ -105,18 +105,21 @@ */ public XsBlockSet(String pValue) { if ("#all".equals(pValue)) { + setExtensionAllowed(false); + setRestrictionAllowed(false); + setSubstitutionAllowed(false); + } else { setExtensionAllowed(true); setRestrictionAllowed(true); setSubstitutionAllowed(true); - } else { for (StringTokenizer st = new StringTokenizer(pValue, " "); st.hasMoreTokens(); ) { String s = st.nextToken(); if ("extension".equals(s)) { - setExtensionAllowed(true); + setExtensionAllowed(false); } else if ("restriction".equals(s)) { - setRestrictionAllowed(true); + setRestrictionAllowed(false); } else if ("substitution".equals(s)) { - setSubstitutionAllowed(true); + setSubstitutionAllowed(false); } else { throw new IllegalArgumentException("Invalid block set value: " + pValue + "; the token " + s + " did not resolve to either of 'extension', 'restriction', or 'substitution'."); }