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'.");
         }

Reply via email to