Return-Path: Delivered-To: apmail-geronimo-dev-archive@www.apache.org Received: (qmail 94788 invoked from network); 16 Jun 2006 21:25:24 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 16 Jun 2006 21:25:24 -0000 Received: (qmail 42175 invoked by uid 500); 16 Jun 2006 21:25:21 -0000 Delivered-To: apmail-geronimo-dev-archive@geronimo.apache.org Received: (qmail 42123 invoked by uid 500); 16 Jun 2006 21:25:20 -0000 Mailing-List: contact dev-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org List-Id: Delivered-To: mailing list dev@geronimo.apache.org Received: (qmail 42112 invoked by uid 99); 16 Jun 2006 21:25:20 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 16 Jun 2006 14:25:20 -0700 X-ASF-Spam-Status: No, hits=2.6 required=10.0 tests=DNS_FROM_RFC_ABUSE,DNS_FROM_RFC_WHOIS,RCVD_IN_SORBS_WEB X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [206.190.49.139] (HELO web54409.mail.yahoo.com) (206.190.49.139) by apache.org (qpsmtpd/0.29) with SMTP; Fri, 16 Jun 2006 14:25:19 -0700 Received: (qmail 44040 invoked by uid 60001); 16 Jun 2006 21:24:58 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=Message-ID:Received:Date:From:Subject:To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=xU95eINk2Y7mYN8HPPefwU4NhoMZPEW29wf/1lb5sjiHQWqsK0qWG2LZCsM3jveKVLLBSlwesGxriAa58Ym2rBJJWCgSCtD946YK4rm/sqoO5hlmZiNRl2hKMKbQyERATpAb+uVsqF8ILi+TVbiOudWX812KMklY3zoyvj+3cSQ= ; Message-ID: <20060616212458.44038.qmail@web54409.mail.yahoo.com> Received: from [208.54.95.129] by web54409.mail.yahoo.com via HTTP; Fri, 16 Jun 2006 14:24:58 PDT Date: Fri, 16 Jun 2006 14:24:58 -0700 (PDT) From: David Jencks Subject: Namespace-driven builders and the UPA rule To: dev@geronimo.apache.org MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N For the pluggable jacc implementation (GERONIMO-1563) I've been working on making a basic namespace-driven builder framework. The code is simple and looks like it will work fine but..... there's a problem with the schema unique particle attribute rule, which basically says that in order for a schema to be valid each element can only be parsed in one way, and the way must be determined without looking forward or backwards or looking very hard at the context. OK. So, I wanted to make the geronimo security element namespace-driven, so if you used the current security-1.1 namespace you'd get our current impl, if you used something else you'd get that impl. We had ... In order to make the security element variable, it needs to be This works fine for the geronimo-application schema the problem comes with the web schemas (and perhaps the openejb schema, I haven't got that far yet). We now have With a similar combination as in the g-app schema we'd get: if the security-realm-name element was required there'd be no problem, you could tell that the naming elements are not part of the anys at the end. However if it is missing, the naming elements could match the explicit elements or the anys. I don't know how to get by this problem. xmlbeans has a no-upa option which might let use use this schema, but it's an invalid schema, so this is not completely desirable. We could turn the entire schema into a bunch of anys, but this sort of loses the point of having a schema. We could make an incompatible change to the schema, or we could special case the current security namespace and effectively introduce another element to hold other builders security info, something like (I'm not sure this is a legal schema bit) I'm going to try out the noupa option first but I'm hoping someone will come up with a generally better approach. thanks david jencks