[ https://issues.apache.org/jira/browse/OFBIZ-7061?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15344512#comment-15344512 ] james yong commented on OFBIZ-7061: ----------------------------------- Hi [~jacques.le.roux], Was also looking at this issue. The "field" attribute is actually a tag directly under the schema tag in the xsd. Such kind of attribute needs to be prefixed in the xml. For example, from ExampleCompoundWidgets.xml, we have on line 117 {code} <sm:log message="CompoundWidgetsFunc runs" sm:level="info"/> {code} The 'level' attribute is also a direct tag under the schema tag in the xsd. So the proposed change from {code} xsi:schemaLocation="http://ofbiz.apache.org/Simple-Method http://ofbiz.apache.org/dtds/simple-methods.xsd" {code} to {code} xsi:schemaLocation="http://ofbiz.apache.org/dtds/simple-methods.xsd" {code} circumvents the prefix requirement, but introduce another problem :( I found that the proposed change will result in the default value not being recognised. For example, in {code} <simple-method method-name="validateCustomerInfo" ... ... <validate-method method="isEmail">... {code} the validate-method tag has a default value for the 'class' attribute. If we go to Party module and create a customer. The email field will fail after form submission because the default value for 'class' attribute is not found. I see there are now 2 possible solutions: 1) Add the prefix to the affected attributes in the simple methods. But the change is great. 2) Revert the simple method to use the original schema without namespace > Autocompletion for Compound Widget > ---------------------------------- > > Key: OFBIZ-7061 > URL: https://issues.apache.org/jira/browse/OFBIZ-7061 > Project: OFBiz > Issue Type: Improvement > Components: framework > Affects Versions: Trunk > Reporter: james yong > Assignee: Jacques Le Roux > Priority: Minor > Fix For: Upcoming Branch > > Attachments: OFBIZ-7061.patch, OFBIZ-7061.patch, OFBIZ-7061.patch > > > I am trying to enable auto-completion when coding compound widget. > My plan as follows: > 1. The following xsd will be modified to use namespace > site-conf.xsd > widget-form.xsd > widget-screen.xsd > widget-menu.xsd > simple-methods.xsd > For example, in site-conf.xsd, we add the following document level attribute > {code} > xmlns="http://ofbiz.apache.org/sc" targetNamespace="http://ofbiz.apache.org/sc" > {code} > 2. Import the above schema into compound-widgets.xsd so that compound widgets use only one consolidated schema. > 3. Update ExampleCompoundWidgets.xml to use the new compound-widgets.xsd. For example > {code} > <compound-widgets xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:sc="http://ofbiz.apache.org/sc" > xmlns:m="http://ofbiz.apache.org/m" > xmlns:s="http://ofbiz.apache.org/s" > xmlns:f="http://ofbiz.apache.org/f" > xmlns:sm="http://ofbiz.apache.org/sm" > xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/compound-widgets.xsd"> > <site-conf> > <sc:request-map uri="CompoundWidgets1"> > <sc:security https="true" auth="true"/> > <sc:event type="simple" invoke="CompoundWidgetsFunc" path="component://example/widget/example/ExampleCompoundWidgets.xml"/> > <sc:response name="success" type="view" value="CompoundWidgets1"/> > </sc:request-map> > <sc:request-map uri="CompoundWidgets2"><sc:security https="true" auth="true"/><sc:response name="success" type="view" value="CompoundWidgets2"/></sc:request-map> > > <sc:view-map name="CompoundWidgets1" type="screen" page="component://example/widget/example/ExampleCompoundWidgets.xml#CompoundWidgets1"/> > <sc:view-map name="CompoundWidgets2" type="screen" page="component://example/widget/example/ExampleCompoundWidgets.xml#CompoundWidgets2"/> > </site-conf> > ...... the rest > {code} > 4. Change java code to support reading xml with namespace (i.e. xml for compound widgets) > 5. Update the attributes at document level for rest of the controllers, menus, forms, simple methods and screens. Current setting will not work for schema with a namespace. For example, in controller.xml, we will change > {code} > xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/site-conf.xsd” > {code} > to > {code} > xmlns="http://ofbiz.apache.org/sc” xsi:schemaLocation="http://ofbiz.apache.org/dtds/site-conf-ns.xsd”> > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332) |
Free forum by Nabble | Edit this page |