You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Aaron Gourley (JIRA)" <ji...@apache.org> on 2006/11/29 17:46:22 UTC

[jira] Created: (AXIS2-1790) schemaLocation element of import statements should contain URI reference to schema document.

schemaLocation element of import statements should contain URI reference to schema document.
--------------------------------------------------------------------------------------------

                 Key: AXIS2-1790
                 URL: http://issues.apache.org/jira/browse/AXIS2-1790
             Project: Apache Axis 2.0 (Axis2)
          Issue Type: Improvement
          Components: wsdl
    Affects Versions: 1.1
         Environment: Windows XP, Java 5 Update 9
            Reporter: Aaron Gourley


>From W3C schemaLocation spec: http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/structures.html#composition-schemaImport
Additional reference: http://www.stylusstudio.com/w3c/schema0/schemaLocation.htm#attribute-schemaLocation

<import
  id = ID
  namespace = anyURI
  schemaLocation = anyURI
  {any attributes with non-schema namespace . . .}>
  Content: (annotation?)
</import>

"In a schema, the  include element has a required schemaLocation  attribute, and it contains a URI reference which must identify a schema document."

Axis2 is currently using a relative SchemaLocation, which on its own can not be used to identify the schema document.  This actually causes a compatibility problem between Glue clients and such WSDLs published by Axis2.

WSDL published by Axis2:
<wsdl:definitions targetNamespace="http://www.csapi.org/wsdl/parlayx/terminal_location/v2_0/service">
<wsdl:documentation>TerminalLocation</wsdl:documentation>
    <wsdl:types>
        <xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0/local">
            <xsd:import namespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0" schemaLocation="TerminalLocation?xsd=xsd0"/>
            <xsd:import namespace="http://www.csapi.org/schema/parlayx/common/v2_0" schemaLocation="TerminalLocation?xsd=xsd2"/>
     .....
    <wsdl:service name="TerminalLocation">
        <wsdl:port name="TerminalLocationSOAP11port_http" binding="tns:TerminalLocationSOAP11Binding">
            <soap:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
        </wsdl:port>
        <wsdl:port name="TerminalLocationSOAP12port_http" binding="tns:TerminalLocationSOAP12Binding">
            <soap12:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
        </wsdl:port>
        <wsdl:port name="TerminalLocationHttpport1" binding="tns:TerminalLocationHttpBinding">
            <http:address location="http://localhost:9080/TerminalLocationService/rest/TerminalLocation"/>
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>

When Glue parses this WSDL, it simply creates a URI from the string "TerminalLocation?xsd=xsd0".  Since the prefix ("http://localhost:9080/TerminalLocationService/services/") is not shown in the WSDL, a FileNotFoundException occurs and the bind fails.  I have not been able to find a workaround using Glue.

I realize that the easy solution is to say that this is a Glue problem, but would it be at all possible to include the address location in the generated WSDL?

Suggested fix:
1. In AxisService's adjustSchemaLocation(XmlSchema, XmlSchemaExternal, Hashtable, Hashtable) method:
    - Change getName() in default mode to getEndpoint()
2. In AxisService2WSDL2's generateOM() method:
    - add call to axisService.setCustomSchemaNamePrefix(axisService.getEndpoint() + "?xsd=") before call to populateSchemaMappings() is made.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Reopened: (AXIS2-1790) schemaLocation element of import statements should contain URI reference to schema document.

Posted by "Nandana Mihindukulasooriya (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AXIS2-1790?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Nandana Mihindukulasooriya reopened AXIS2-1790:
-----------------------------------------------


> schemaLocation element of import statements should contain URI reference to schema document.
> --------------------------------------------------------------------------------------------
>
>                 Key: AXIS2-1790
>                 URL: https://issues.apache.org/jira/browse/AXIS2-1790
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Improvement
>          Components: wsdl
>    Affects Versions: 1.1
>         Environment: Windows XP, Java 5 Update 9
>            Reporter: Aaron Gourley
>            Assignee: Deepal Jayasinghe
>         Attachments: axis2-kernel-SNAPSHOT.jar, schema-import-generation.patch, XsdAndWsdlImportTestService.aar
>
>
> From W3C schemaLocation spec: http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/structures.html#composition-schemaImport
> Additional reference: http://www.stylusstudio.com/w3c/schema0/schemaLocation.htm#attribute-schemaLocation
> <import
>   id = ID
>   namespace = anyURI
>   schemaLocation = anyURI
>   {any attributes with non-schema namespace . . .}>
>   Content: (annotation?)
> </import>
> "In a schema, the  include element has a required schemaLocation  attribute, and it contains a URI reference which must identify a schema document."
> Axis2 is currently using a relative SchemaLocation, which on its own can not be used to identify the schema document.  This actually causes a compatibility problem between Glue clients and such WSDLs published by Axis2.
> WSDL published by Axis2:
> <wsdl:definitions targetNamespace="http://www.csapi.org/wsdl/parlayx/terminal_location/v2_0/service">
> <wsdl:documentation>TerminalLocation</wsdl:documentation>
>     <wsdl:types>
>         <xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0/local">
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0" schemaLocation="TerminalLocation?xsd=xsd0"/>
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/common/v2_0" schemaLocation="TerminalLocation?xsd=xsd2"/>
>      .....
>     <wsdl:service name="TerminalLocation">
>         <wsdl:port name="TerminalLocationSOAP11port_http" binding="tns:TerminalLocationSOAP11Binding">
>             <soap:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationSOAP12port_http" binding="tns:TerminalLocationSOAP12Binding">
>             <soap12:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationHttpport1" binding="tns:TerminalLocationHttpBinding">
>             <http:address location="http://localhost:9080/TerminalLocationService/rest/TerminalLocation"/>
>         </wsdl:port>
>     </wsdl:service>
> </wsdl:definitions>
> When Glue parses this WSDL, it simply creates a URI from the string "TerminalLocation?xsd=xsd0".  Since the prefix ("http://localhost:9080/TerminalLocationService/services/") is not shown in the WSDL, a FileNotFoundException occurs and the bind fails.  I have not been able to find a workaround using Glue.
> I realize that the easy solution is to say that this is a Glue problem, but would it be at all possible to include the address location in the generated WSDL?
> Suggested fix:
> 1. In AxisService's adjustSchemaLocation(XmlSchema, XmlSchemaExternal, Hashtable, Hashtable) method:
>     - Change getName() in default mode to getEndpoint()
> 2. In AxisService2WSDL2's generateOM() method:
>     - add call to axisService.setCustomSchemaNamePrefix(axisService.getEndpoint() + "?xsd=") before call to populateSchemaMappings() is made.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Issue Comment Edited: (AXIS2-1790) schemaLocation element of import statements should contain URI reference to schema document.

Posted by "Dobri Kitipov (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AXIS2-1790?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12637023#action_12637023 ] 

dobri edited comment on AXIS2-1790 at 10/6/08 12:27 AM:
----------------------------------------------------------------

Hi Amila,
It seems that the fix you have applied into the trunk is ok, but needs a little fix related to import of XSDs. I did some tests and found out that the fix is not complete when you request xsd with "...?xsd".
The problem is that if GENERATE_ABSOLUTE_LOCATION_URIS is set to "true" and you import an xsd that in turn imports another external xsd then the latter has relative path again.

You can test this with the AAR attached to the current JIRA (i.e. XsdAndWsdlImportTestService.aar). Rrequest http://<YOUR_HOST>/axis2/services/MultiDimentionalArrayInteropTestService?xsd=xsd0.xsd and you will see the following:

<xs:import namespace="http://jaxb.dev.java.net/array" schemaLocation="MultiDimentionalArrayInteropTestService?xsd=xsd1.xsd"/>

instead of schemaLocation with absolute path set:

<xs:import namespace="http://jaxb.dev.java.net/array" schemaLocation="http://<YOUR_HOST>/axis2/services/MultiDimentionalArrayInteropTestService?xsd=xsd1.xsd"/>

The problem was caused by the AxisService private void adjustSchemaLocation(...) method.

I am applying a patch for this, but the patch removes and the not thrown cached AxisFault exception from private String getServiceEPR() method. 

Thank you,

      was (Author: dobri):
    Hi Amila,
It seems that the fix you have applied into the trunk is ok, but is missing a little part of work. I did some tests and found out that the fix is not complete when you request xsd with "...?xsd".
The problem is that if GENERATE_ABSOLUTE_LOCATION_URIS is set to "true" and you import an xsd that in turn imports another external xsd then the latter has relative path again.

You can test this with the AAR attached to the current JIRA (i.e. XsdAndWsdlImportTestService.aar). Rrequest http://<YOUR_HOST>/axis2/services/MultiDimentionalArrayInteropTestService?xsd=xsd0.xsd and you will see the following:

<xs:import namespace="http://jaxb.dev.java.net/array" schemaLocation="MultiDimentionalArrayInteropTestService?xsd=xsd1.xsd"/>

instead of schemaLocation with absolute path set:

<xs:import namespace="http://jaxb.dev.java.net/array" schemaLocation="http://<YOUR_HOST>/axis2/services/MultiDimentionalArrayInteropTestService?xsd=xsd1.xsd"/>

The problem was caused by the AxisService private void adjustSchemaLocation(...) method.

I am applying a patch for this, but the patch removes and the not thrown cached AxisFault exception from private String getServiceEPR() method. 

Thank you,
  
> schemaLocation element of import statements should contain URI reference to schema document.
> --------------------------------------------------------------------------------------------
>
>                 Key: AXIS2-1790
>                 URL: https://issues.apache.org/jira/browse/AXIS2-1790
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Improvement
>          Components: wsdl
>    Affects Versions: 1.1
>         Environment: Windows XP, Java 5 Update 9
>            Reporter: Aaron Gourley
>            Assignee: Deepal Jayasinghe
>         Attachments: axis2-kernel-SNAPSHOT.jar, AxisService.patch, schema-import-generation.patch, XsdAndWsdlImportTestService.aar
>
>
> From W3C schemaLocation spec: http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/structures.html#composition-schemaImport
> Additional reference: http://www.stylusstudio.com/w3c/schema0/schemaLocation.htm#attribute-schemaLocation
> <import
>   id = ID
>   namespace = anyURI
>   schemaLocation = anyURI
>   {any attributes with non-schema namespace . . .}>
>   Content: (annotation?)
> </import>
> "In a schema, the  include element has a required schemaLocation  attribute, and it contains a URI reference which must identify a schema document."
> Axis2 is currently using a relative SchemaLocation, which on its own can not be used to identify the schema document.  This actually causes a compatibility problem between Glue clients and such WSDLs published by Axis2.
> WSDL published by Axis2:
> <wsdl:definitions targetNamespace="http://www.csapi.org/wsdl/parlayx/terminal_location/v2_0/service">
> <wsdl:documentation>TerminalLocation</wsdl:documentation>
>     <wsdl:types>
>         <xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0/local">
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0" schemaLocation="TerminalLocation?xsd=xsd0"/>
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/common/v2_0" schemaLocation="TerminalLocation?xsd=xsd2"/>
>      .....
>     <wsdl:service name="TerminalLocation">
>         <wsdl:port name="TerminalLocationSOAP11port_http" binding="tns:TerminalLocationSOAP11Binding">
>             <soap:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationSOAP12port_http" binding="tns:TerminalLocationSOAP12Binding">
>             <soap12:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationHttpport1" binding="tns:TerminalLocationHttpBinding">
>             <http:address location="http://localhost:9080/TerminalLocationService/rest/TerminalLocation"/>
>         </wsdl:port>
>     </wsdl:service>
> </wsdl:definitions>
> When Glue parses this WSDL, it simply creates a URI from the string "TerminalLocation?xsd=xsd0".  Since the prefix ("http://localhost:9080/TerminalLocationService/services/") is not shown in the WSDL, a FileNotFoundException occurs and the bind fails.  I have not been able to find a workaround using Glue.
> I realize that the easy solution is to say that this is a Glue problem, but would it be at all possible to include the address location in the generated WSDL?
> Suggested fix:
> 1. In AxisService's adjustSchemaLocation(XmlSchema, XmlSchemaExternal, Hashtable, Hashtable) method:
>     - Change getName() in default mode to getEndpoint()
> 2. In AxisService2WSDL2's generateOM() method:
>     - add call to axisService.setCustomSchemaNamePrefix(axisService.getEndpoint() + "?xsd=") before call to populateSchemaMappings() is made.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Commented: (AXIS2-1790) schemaLocation element of import statements should contain URI reference to schema document.

Posted by "Davanum Srinivas (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AXIS2-1790?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12508895 ] 

Davanum Srinivas commented on AXIS2-1790:
-----------------------------------------

Sorry, won't fix. Please ask glue folks to fix their code.

thanks,
dims

> schemaLocation element of import statements should contain URI reference to schema document.
> --------------------------------------------------------------------------------------------
>
>                 Key: AXIS2-1790
>                 URL: https://issues.apache.org/jira/browse/AXIS2-1790
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Improvement
>          Components: wsdl
>    Affects Versions: 1.1
>         Environment: Windows XP, Java 5 Update 9
>            Reporter: Aaron Gourley
>            Assignee: Deepal Jayasinghe
>
> From W3C schemaLocation spec: http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/structures.html#composition-schemaImport
> Additional reference: http://www.stylusstudio.com/w3c/schema0/schemaLocation.htm#attribute-schemaLocation
> <import
>   id = ID
>   namespace = anyURI
>   schemaLocation = anyURI
>   {any attributes with non-schema namespace . . .}>
>   Content: (annotation?)
> </import>
> "In a schema, the  include element has a required schemaLocation  attribute, and it contains a URI reference which must identify a schema document."
> Axis2 is currently using a relative SchemaLocation, which on its own can not be used to identify the schema document.  This actually causes a compatibility problem between Glue clients and such WSDLs published by Axis2.
> WSDL published by Axis2:
> <wsdl:definitions targetNamespace="http://www.csapi.org/wsdl/parlayx/terminal_location/v2_0/service">
> <wsdl:documentation>TerminalLocation</wsdl:documentation>
>     <wsdl:types>
>         <xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0/local">
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0" schemaLocation="TerminalLocation?xsd=xsd0"/>
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/common/v2_0" schemaLocation="TerminalLocation?xsd=xsd2"/>
>      .....
>     <wsdl:service name="TerminalLocation">
>         <wsdl:port name="TerminalLocationSOAP11port_http" binding="tns:TerminalLocationSOAP11Binding">
>             <soap:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationSOAP12port_http" binding="tns:TerminalLocationSOAP12Binding">
>             <soap12:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationHttpport1" binding="tns:TerminalLocationHttpBinding">
>             <http:address location="http://localhost:9080/TerminalLocationService/rest/TerminalLocation"/>
>         </wsdl:port>
>     </wsdl:service>
> </wsdl:definitions>
> When Glue parses this WSDL, it simply creates a URI from the string "TerminalLocation?xsd=xsd0".  Since the prefix ("http://localhost:9080/TerminalLocationService/services/") is not shown in the WSDL, a FileNotFoundException occurs and the bind fails.  I have not been able to find a workaround using Glue.
> I realize that the easy solution is to say that this is a Glue problem, but would it be at all possible to include the address location in the generated WSDL?
> Suggested fix:
> 1. In AxisService's adjustSchemaLocation(XmlSchema, XmlSchemaExternal, Hashtable, Hashtable) method:
>     - Change getName() in default mode to getEndpoint()
> 2. In AxisService2WSDL2's generateOM() method:
>     - add call to axisService.setCustomSchemaNamePrefix(axisService.getEndpoint() + "?xsd=") before call to populateSchemaMappings() is made.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Issue Comment Edited: (AXIS2-1790) schemaLocation element of import statements should contain URI reference to schema document.

Posted by "Dobri Kitipov (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AXIS2-1790?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12637025#action_12637025 ] 

dobri edited comment on AXIS2-1790 at 10/6/08 12:26 AM:
----------------------------------------------------------------

Attaching the latest patch needed to fix the xsd related part of the issue (i.e. AxisService.patch).

      was (Author: dobri):
    Attaching the latest patch needed to fix the xsd related part of the issue.
  
> schemaLocation element of import statements should contain URI reference to schema document.
> --------------------------------------------------------------------------------------------
>
>                 Key: AXIS2-1790
>                 URL: https://issues.apache.org/jira/browse/AXIS2-1790
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Improvement
>          Components: wsdl
>    Affects Versions: 1.1
>         Environment: Windows XP, Java 5 Update 9
>            Reporter: Aaron Gourley
>            Assignee: Deepal Jayasinghe
>         Attachments: axis2-kernel-SNAPSHOT.jar, AxisService.patch, schema-import-generation.patch, XsdAndWsdlImportTestService.aar
>
>
> From W3C schemaLocation spec: http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/structures.html#composition-schemaImport
> Additional reference: http://www.stylusstudio.com/w3c/schema0/schemaLocation.htm#attribute-schemaLocation
> <import
>   id = ID
>   namespace = anyURI
>   schemaLocation = anyURI
>   {any attributes with non-schema namespace . . .}>
>   Content: (annotation?)
> </import>
> "In a schema, the  include element has a required schemaLocation  attribute, and it contains a URI reference which must identify a schema document."
> Axis2 is currently using a relative SchemaLocation, which on its own can not be used to identify the schema document.  This actually causes a compatibility problem between Glue clients and such WSDLs published by Axis2.
> WSDL published by Axis2:
> <wsdl:definitions targetNamespace="http://www.csapi.org/wsdl/parlayx/terminal_location/v2_0/service">
> <wsdl:documentation>TerminalLocation</wsdl:documentation>
>     <wsdl:types>
>         <xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0/local">
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0" schemaLocation="TerminalLocation?xsd=xsd0"/>
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/common/v2_0" schemaLocation="TerminalLocation?xsd=xsd2"/>
>      .....
>     <wsdl:service name="TerminalLocation">
>         <wsdl:port name="TerminalLocationSOAP11port_http" binding="tns:TerminalLocationSOAP11Binding">
>             <soap:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationSOAP12port_http" binding="tns:TerminalLocationSOAP12Binding">
>             <soap12:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationHttpport1" binding="tns:TerminalLocationHttpBinding">
>             <http:address location="http://localhost:9080/TerminalLocationService/rest/TerminalLocation"/>
>         </wsdl:port>
>     </wsdl:service>
> </wsdl:definitions>
> When Glue parses this WSDL, it simply creates a URI from the string "TerminalLocation?xsd=xsd0".  Since the prefix ("http://localhost:9080/TerminalLocationService/services/") is not shown in the WSDL, a FileNotFoundException occurs and the bind fails.  I have not been able to find a workaround using Glue.
> I realize that the easy solution is to say that this is a Glue problem, but would it be at all possible to include the address location in the generated WSDL?
> Suggested fix:
> 1. In AxisService's adjustSchemaLocation(XmlSchema, XmlSchemaExternal, Hashtable, Hashtable) method:
>     - Change getName() in default mode to getEndpoint()
> 2. In AxisService2WSDL2's generateOM() method:
>     - add call to axisService.setCustomSchemaNamePrefix(axisService.getEndpoint() + "?xsd=") before call to populateSchemaMappings() is made.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Updated: (AXIS2-1790) schemaLocation element of import statements should contain URI reference to schema document.

Posted by "Davanum Srinivas (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AXIS2-1790?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Davanum Srinivas updated AXIS2-1790:
------------------------------------

    Assignee: Amila Chinthaka Suriarachchi

> schemaLocation element of import statements should contain URI reference to schema document.
> --------------------------------------------------------------------------------------------
>
>                 Key: AXIS2-1790
>                 URL: https://issues.apache.org/jira/browse/AXIS2-1790
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Improvement
>          Components: wsdl
>    Affects Versions: 1.1
>         Environment: Windows XP, Java 5 Update 9
>            Reporter: Aaron Gourley
>         Assigned To: Amila Chinthaka Suriarachchi
>
> From W3C schemaLocation spec: http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/structures.html#composition-schemaImport
> Additional reference: http://www.stylusstudio.com/w3c/schema0/schemaLocation.htm#attribute-schemaLocation
> <import
>   id = ID
>   namespace = anyURI
>   schemaLocation = anyURI
>   {any attributes with non-schema namespace . . .}>
>   Content: (annotation?)
> </import>
> "In a schema, the  include element has a required schemaLocation  attribute, and it contains a URI reference which must identify a schema document."
> Axis2 is currently using a relative SchemaLocation, which on its own can not be used to identify the schema document.  This actually causes a compatibility problem between Glue clients and such WSDLs published by Axis2.
> WSDL published by Axis2:
> <wsdl:definitions targetNamespace="http://www.csapi.org/wsdl/parlayx/terminal_location/v2_0/service">
> <wsdl:documentation>TerminalLocation</wsdl:documentation>
>     <wsdl:types>
>         <xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0/local">
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0" schemaLocation="TerminalLocation?xsd=xsd0"/>
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/common/v2_0" schemaLocation="TerminalLocation?xsd=xsd2"/>
>      .....
>     <wsdl:service name="TerminalLocation">
>         <wsdl:port name="TerminalLocationSOAP11port_http" binding="tns:TerminalLocationSOAP11Binding">
>             <soap:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationSOAP12port_http" binding="tns:TerminalLocationSOAP12Binding">
>             <soap12:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationHttpport1" binding="tns:TerminalLocationHttpBinding">
>             <http:address location="http://localhost:9080/TerminalLocationService/rest/TerminalLocation"/>
>         </wsdl:port>
>     </wsdl:service>
> </wsdl:definitions>
> When Glue parses this WSDL, it simply creates a URI from the string "TerminalLocation?xsd=xsd0".  Since the prefix ("http://localhost:9080/TerminalLocationService/services/") is not shown in the WSDL, a FileNotFoundException occurs and the bind fails.  I have not been able to find a workaround using Glue.
> I realize that the easy solution is to say that this is a Glue problem, but would it be at all possible to include the address location in the generated WSDL?
> Suggested fix:
> 1. In AxisService's adjustSchemaLocation(XmlSchema, XmlSchemaExternal, Hashtable, Hashtable) method:
>     - Change getName() in default mode to getEndpoint()
> 2. In AxisService2WSDL2's generateOM() method:
>     - add call to axisService.setCustomSchemaNamePrefix(axisService.getEndpoint() + "?xsd=") before call to populateSchemaMappings() is made.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Commented: (AXIS2-1790) schemaLocation element of import statements should contain URI reference to schema document.

Posted by "Dobri Kitipov (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AXIS2-1790?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12637023#action_12637023 ] 

Dobri Kitipov commented on AXIS2-1790:
--------------------------------------

Hi Amila,
It seems that the fix you have applied into the trunk is ok, but is missing a little part of work. I did some tests and found out that the fix is not complete when you request xsd with "...?xsd".
The problem is that if GENERATE_ABSOLUTE_LOCATION_URIS is set to "true" and you import an xsd that in turn imports another external xsd then the latter has relative path again.

You can test this with the AAR attached to the current JIRA (i.e. XsdAndWsdlImportTestService.aar). Rrequest http://<YOUR_HOST>/axis2/services/MultiDimentionalArrayInteropTestService?xsd=xsd0.xsd and you will see the following:

<xs:import namespace="http://jaxb.dev.java.net/array" schemaLocation="MultiDimentionalArrayInteropTestService?xsd=xsd1.xsd"/>

instead of schemaLocation with absolute path set:

<xs:import namespace="http://jaxb.dev.java.net/array" schemaLocation="http://<YOUR_HOST>/axis2/services/MultiDimentionalArrayInteropTestService?xsd=xsd1.xsd"/>

The problem was caused by the AxisService private void adjustSchemaLocation(...) method.

I am applying a patch for this, but the patch removes and the not thrown cached AxisFault exception from private String getServiceEPR() method. 

Thank you,

> schemaLocation element of import statements should contain URI reference to schema document.
> --------------------------------------------------------------------------------------------
>
>                 Key: AXIS2-1790
>                 URL: https://issues.apache.org/jira/browse/AXIS2-1790
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Improvement
>          Components: wsdl
>    Affects Versions: 1.1
>         Environment: Windows XP, Java 5 Update 9
>            Reporter: Aaron Gourley
>            Assignee: Deepal Jayasinghe
>         Attachments: axis2-kernel-SNAPSHOT.jar, schema-import-generation.patch, XsdAndWsdlImportTestService.aar
>
>
> From W3C schemaLocation spec: http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/structures.html#composition-schemaImport
> Additional reference: http://www.stylusstudio.com/w3c/schema0/schemaLocation.htm#attribute-schemaLocation
> <import
>   id = ID
>   namespace = anyURI
>   schemaLocation = anyURI
>   {any attributes with non-schema namespace . . .}>
>   Content: (annotation?)
> </import>
> "In a schema, the  include element has a required schemaLocation  attribute, and it contains a URI reference which must identify a schema document."
> Axis2 is currently using a relative SchemaLocation, which on its own can not be used to identify the schema document.  This actually causes a compatibility problem between Glue clients and such WSDLs published by Axis2.
> WSDL published by Axis2:
> <wsdl:definitions targetNamespace="http://www.csapi.org/wsdl/parlayx/terminal_location/v2_0/service">
> <wsdl:documentation>TerminalLocation</wsdl:documentation>
>     <wsdl:types>
>         <xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0/local">
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0" schemaLocation="TerminalLocation?xsd=xsd0"/>
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/common/v2_0" schemaLocation="TerminalLocation?xsd=xsd2"/>
>      .....
>     <wsdl:service name="TerminalLocation">
>         <wsdl:port name="TerminalLocationSOAP11port_http" binding="tns:TerminalLocationSOAP11Binding">
>             <soap:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationSOAP12port_http" binding="tns:TerminalLocationSOAP12Binding">
>             <soap12:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationHttpport1" binding="tns:TerminalLocationHttpBinding">
>             <http:address location="http://localhost:9080/TerminalLocationService/rest/TerminalLocation"/>
>         </wsdl:port>
>     </wsdl:service>
> </wsdl:definitions>
> When Glue parses this WSDL, it simply creates a URI from the string "TerminalLocation?xsd=xsd0".  Since the prefix ("http://localhost:9080/TerminalLocationService/services/") is not shown in the WSDL, a FileNotFoundException occurs and the bind fails.  I have not been able to find a workaround using Glue.
> I realize that the easy solution is to say that this is a Glue problem, but would it be at all possible to include the address location in the generated WSDL?
> Suggested fix:
> 1. In AxisService's adjustSchemaLocation(XmlSchema, XmlSchemaExternal, Hashtable, Hashtable) method:
>     - Change getName() in default mode to getEndpoint()
> 2. In AxisService2WSDL2's generateOM() method:
>     - add call to axisService.setCustomSchemaNamePrefix(axisService.getEndpoint() + "?xsd=") before call to populateSchemaMappings() is made.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Assigned: (AXIS2-1790) schemaLocation element of import statements should contain URI reference to schema document.

Posted by "Amila Chinthaka Suriarachchi (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AXIS2-1790?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Amila Chinthaka Suriarachchi reassigned AXIS2-1790:
---------------------------------------------------

    Assignee: Deepal Jayasinghe  (was: Amila Chinthaka Suriarachchi)

Deepal can you pleas have look into this?

> schemaLocation element of import statements should contain URI reference to schema document.
> --------------------------------------------------------------------------------------------
>
>                 Key: AXIS2-1790
>                 URL: https://issues.apache.org/jira/browse/AXIS2-1790
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Improvement
>          Components: wsdl
>    Affects Versions: 1.1
>         Environment: Windows XP, Java 5 Update 9
>            Reporter: Aaron Gourley
>            Assignee: Deepal Jayasinghe
>
> From W3C schemaLocation spec: http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/structures.html#composition-schemaImport
> Additional reference: http://www.stylusstudio.com/w3c/schema0/schemaLocation.htm#attribute-schemaLocation
> <import
>   id = ID
>   namespace = anyURI
>   schemaLocation = anyURI
>   {any attributes with non-schema namespace . . .}>
>   Content: (annotation?)
> </import>
> "In a schema, the  include element has a required schemaLocation  attribute, and it contains a URI reference which must identify a schema document."
> Axis2 is currently using a relative SchemaLocation, which on its own can not be used to identify the schema document.  This actually causes a compatibility problem between Glue clients and such WSDLs published by Axis2.
> WSDL published by Axis2:
> <wsdl:definitions targetNamespace="http://www.csapi.org/wsdl/parlayx/terminal_location/v2_0/service">
> <wsdl:documentation>TerminalLocation</wsdl:documentation>
>     <wsdl:types>
>         <xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0/local">
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0" schemaLocation="TerminalLocation?xsd=xsd0"/>
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/common/v2_0" schemaLocation="TerminalLocation?xsd=xsd2"/>
>      .....
>     <wsdl:service name="TerminalLocation">
>         <wsdl:port name="TerminalLocationSOAP11port_http" binding="tns:TerminalLocationSOAP11Binding">
>             <soap:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationSOAP12port_http" binding="tns:TerminalLocationSOAP12Binding">
>             <soap12:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationHttpport1" binding="tns:TerminalLocationHttpBinding">
>             <http:address location="http://localhost:9080/TerminalLocationService/rest/TerminalLocation"/>
>         </wsdl:port>
>     </wsdl:service>
> </wsdl:definitions>
> When Glue parses this WSDL, it simply creates a URI from the string "TerminalLocation?xsd=xsd0".  Since the prefix ("http://localhost:9080/TerminalLocationService/services/") is not shown in the WSDL, a FileNotFoundException occurs and the bind fails.  I have not been able to find a workaround using Glue.
> I realize that the easy solution is to say that this is a Glue problem, but would it be at all possible to include the address location in the generated WSDL?
> Suggested fix:
> 1. In AxisService's adjustSchemaLocation(XmlSchema, XmlSchemaExternal, Hashtable, Hashtable) method:
>     - Change getName() in default mode to getEndpoint()
> 2. In AxisService2WSDL2's generateOM() method:
>     - add call to axisService.setCustomSchemaNamePrefix(axisService.getEndpoint() + "?xsd=") before call to populateSchemaMappings() is made.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Updated: (AXIS2-1790) schemaLocation element of import statements should contain URI reference to schema document.

Posted by "Ralitsa Hristova (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AXIS2-1790?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ralitsa Hristova updated AXIS2-1790:
------------------------------------

    Attachment: axis2-kernel-SNAPSHOT.jar
                XsdAndWsdlImportTestService.aar

Here is a service that can be used for testing. It uses an original wsdl which contains both - wsdl:import and xsd:import. The service is configured in its services.xml to generate absolute URIs by setting the parameter-flag 'generateAbsoluteLocationURIs' to true.

Attached is also axis2-kernel.jar built with this change.

Thanks and regards,
Ralitsa

> schemaLocation element of import statements should contain URI reference to schema document.
> --------------------------------------------------------------------------------------------
>
>                 Key: AXIS2-1790
>                 URL: https://issues.apache.org/jira/browse/AXIS2-1790
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Improvement
>          Components: wsdl
>    Affects Versions: 1.1
>         Environment: Windows XP, Java 5 Update 9
>            Reporter: Aaron Gourley
>            Assignee: Deepal Jayasinghe
>         Attachments: axis2-kernel-SNAPSHOT.jar, schema-import-generation.patch, XsdAndWsdlImportTestService.aar
>
>
> From W3C schemaLocation spec: http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/structures.html#composition-schemaImport
> Additional reference: http://www.stylusstudio.com/w3c/schema0/schemaLocation.htm#attribute-schemaLocation
> <import
>   id = ID
>   namespace = anyURI
>   schemaLocation = anyURI
>   {any attributes with non-schema namespace . . .}>
>   Content: (annotation?)
> </import>
> "In a schema, the  include element has a required schemaLocation  attribute, and it contains a URI reference which must identify a schema document."
> Axis2 is currently using a relative SchemaLocation, which on its own can not be used to identify the schema document.  This actually causes a compatibility problem between Glue clients and such WSDLs published by Axis2.
> WSDL published by Axis2:
> <wsdl:definitions targetNamespace="http://www.csapi.org/wsdl/parlayx/terminal_location/v2_0/service">
> <wsdl:documentation>TerminalLocation</wsdl:documentation>
>     <wsdl:types>
>         <xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0/local">
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0" schemaLocation="TerminalLocation?xsd=xsd0"/>
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/common/v2_0" schemaLocation="TerminalLocation?xsd=xsd2"/>
>      .....
>     <wsdl:service name="TerminalLocation">
>         <wsdl:port name="TerminalLocationSOAP11port_http" binding="tns:TerminalLocationSOAP11Binding">
>             <soap:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationSOAP12port_http" binding="tns:TerminalLocationSOAP12Binding">
>             <soap12:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationHttpport1" binding="tns:TerminalLocationHttpBinding">
>             <http:address location="http://localhost:9080/TerminalLocationService/rest/TerminalLocation"/>
>         </wsdl:port>
>     </wsdl:service>
> </wsdl:definitions>
> When Glue parses this WSDL, it simply creates a URI from the string "TerminalLocation?xsd=xsd0".  Since the prefix ("http://localhost:9080/TerminalLocationService/services/") is not shown in the WSDL, a FileNotFoundException occurs and the bind fails.  I have not been able to find a workaround using Glue.
> I realize that the easy solution is to say that this is a Glue problem, but would it be at all possible to include the address location in the generated WSDL?
> Suggested fix:
> 1. In AxisService's adjustSchemaLocation(XmlSchema, XmlSchemaExternal, Hashtable, Hashtable) method:
>     - Change getName() in default mode to getEndpoint()
> 2. In AxisService2WSDL2's generateOM() method:
>     - add call to axisService.setCustomSchemaNamePrefix(axisService.getEndpoint() + "?xsd=") before call to populateSchemaMappings() is made.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Resolved: (AXIS2-1790) schemaLocation element of import statements should contain URI reference to schema document.

Posted by "Davanum Srinivas (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AXIS2-1790?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Davanum Srinivas resolved AXIS2-1790.
-------------------------------------

    Resolution: Won't Fix

> schemaLocation element of import statements should contain URI reference to schema document.
> --------------------------------------------------------------------------------------------
>
>                 Key: AXIS2-1790
>                 URL: https://issues.apache.org/jira/browse/AXIS2-1790
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Improvement
>          Components: wsdl
>    Affects Versions: 1.1
>         Environment: Windows XP, Java 5 Update 9
>            Reporter: Aaron Gourley
>            Assignee: Deepal Jayasinghe
>
> From W3C schemaLocation spec: http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/structures.html#composition-schemaImport
> Additional reference: http://www.stylusstudio.com/w3c/schema0/schemaLocation.htm#attribute-schemaLocation
> <import
>   id = ID
>   namespace = anyURI
>   schemaLocation = anyURI
>   {any attributes with non-schema namespace . . .}>
>   Content: (annotation?)
> </import>
> "In a schema, the  include element has a required schemaLocation  attribute, and it contains a URI reference which must identify a schema document."
> Axis2 is currently using a relative SchemaLocation, which on its own can not be used to identify the schema document.  This actually causes a compatibility problem between Glue clients and such WSDLs published by Axis2.
> WSDL published by Axis2:
> <wsdl:definitions targetNamespace="http://www.csapi.org/wsdl/parlayx/terminal_location/v2_0/service">
> <wsdl:documentation>TerminalLocation</wsdl:documentation>
>     <wsdl:types>
>         <xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0/local">
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0" schemaLocation="TerminalLocation?xsd=xsd0"/>
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/common/v2_0" schemaLocation="TerminalLocation?xsd=xsd2"/>
>      .....
>     <wsdl:service name="TerminalLocation">
>         <wsdl:port name="TerminalLocationSOAP11port_http" binding="tns:TerminalLocationSOAP11Binding">
>             <soap:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationSOAP12port_http" binding="tns:TerminalLocationSOAP12Binding">
>             <soap12:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationHttpport1" binding="tns:TerminalLocationHttpBinding">
>             <http:address location="http://localhost:9080/TerminalLocationService/rest/TerminalLocation"/>
>         </wsdl:port>
>     </wsdl:service>
> </wsdl:definitions>
> When Glue parses this WSDL, it simply creates a URI from the string "TerminalLocation?xsd=xsd0".  Since the prefix ("http://localhost:9080/TerminalLocationService/services/") is not shown in the WSDL, a FileNotFoundException occurs and the bind fails.  I have not been able to find a workaround using Glue.
> I realize that the easy solution is to say that this is a Glue problem, but would it be at all possible to include the address location in the generated WSDL?
> Suggested fix:
> 1. In AxisService's adjustSchemaLocation(XmlSchema, XmlSchemaExternal, Hashtable, Hashtable) method:
>     - Change getName() in default mode to getEndpoint()
> 2. In AxisService2WSDL2's generateOM() method:
>     - add call to axisService.setCustomSchemaNamePrefix(axisService.getEndpoint() + "?xsd=") before call to populateSchemaMappings() is made.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Commented: (AXIS2-1790) schemaLocation element of import statements should contain URI reference to schema document.

Posted by "Stoil Valchkov (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AXIS2-1790?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12604888#action_12604888 ] 

Stoil Valchkov commented on AXIS2-1790:
---------------------------------------

Is there any chance for reopening and fixing the issue with supplied patch?

> schemaLocation element of import statements should contain URI reference to schema document.
> --------------------------------------------------------------------------------------------
>
>                 Key: AXIS2-1790
>                 URL: https://issues.apache.org/jira/browse/AXIS2-1790
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Improvement
>          Components: wsdl
>    Affects Versions: 1.1
>         Environment: Windows XP, Java 5 Update 9
>            Reporter: Aaron Gourley
>            Assignee: Deepal Jayasinghe
>         Attachments: axis2-kernel-SNAPSHOT.jar, schema-import-generation.patch, XsdAndWsdlImportTestService.aar
>
>
> From W3C schemaLocation spec: http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/structures.html#composition-schemaImport
> Additional reference: http://www.stylusstudio.com/w3c/schema0/schemaLocation.htm#attribute-schemaLocation
> <import
>   id = ID
>   namespace = anyURI
>   schemaLocation = anyURI
>   {any attributes with non-schema namespace . . .}>
>   Content: (annotation?)
> </import>
> "In a schema, the  include element has a required schemaLocation  attribute, and it contains a URI reference which must identify a schema document."
> Axis2 is currently using a relative SchemaLocation, which on its own can not be used to identify the schema document.  This actually causes a compatibility problem between Glue clients and such WSDLs published by Axis2.
> WSDL published by Axis2:
> <wsdl:definitions targetNamespace="http://www.csapi.org/wsdl/parlayx/terminal_location/v2_0/service">
> <wsdl:documentation>TerminalLocation</wsdl:documentation>
>     <wsdl:types>
>         <xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0/local">
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0" schemaLocation="TerminalLocation?xsd=xsd0"/>
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/common/v2_0" schemaLocation="TerminalLocation?xsd=xsd2"/>
>      .....
>     <wsdl:service name="TerminalLocation">
>         <wsdl:port name="TerminalLocationSOAP11port_http" binding="tns:TerminalLocationSOAP11Binding">
>             <soap:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationSOAP12port_http" binding="tns:TerminalLocationSOAP12Binding">
>             <soap12:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationHttpport1" binding="tns:TerminalLocationHttpBinding">
>             <http:address location="http://localhost:9080/TerminalLocationService/rest/TerminalLocation"/>
>         </wsdl:port>
>     </wsdl:service>
> </wsdl:definitions>
> When Glue parses this WSDL, it simply creates a URI from the string "TerminalLocation?xsd=xsd0".  Since the prefix ("http://localhost:9080/TerminalLocationService/services/") is not shown in the WSDL, a FileNotFoundException occurs and the bind fails.  I have not been able to find a workaround using Glue.
> I realize that the easy solution is to say that this is a Glue problem, but would it be at all possible to include the address location in the generated WSDL?
> Suggested fix:
> 1. In AxisService's adjustSchemaLocation(XmlSchema, XmlSchemaExternal, Hashtable, Hashtable) method:
>     - Change getName() in default mode to getEndpoint()
> 2. In AxisService2WSDL2's generateOM() method:
>     - add call to axisService.setCustomSchemaNamePrefix(axisService.getEndpoint() + "?xsd=") before call to populateSchemaMappings() is made.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Commented: (AXIS2-1790) schemaLocation element of import statements should contain URI reference to schema document.

Posted by "Ralitsa Hristova (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AXIS2-1790?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12609959#action_12609959 ] 

Ralitsa Hristova commented on AXIS2-1790:
-----------------------------------------

Hi,

Since no body has commented on this issue yet, I'll wait a few more days and open a new duplicate one.

> schemaLocation element of import statements should contain URI reference to schema document.
> --------------------------------------------------------------------------------------------
>
>                 Key: AXIS2-1790
>                 URL: https://issues.apache.org/jira/browse/AXIS2-1790
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Improvement
>          Components: wsdl
>    Affects Versions: 1.1
>         Environment: Windows XP, Java 5 Update 9
>            Reporter: Aaron Gourley
>            Assignee: Deepal Jayasinghe
>         Attachments: axis2-kernel-SNAPSHOT.jar, schema-import-generation.patch, XsdAndWsdlImportTestService.aar
>
>
> From W3C schemaLocation spec: http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/structures.html#composition-schemaImport
> Additional reference: http://www.stylusstudio.com/w3c/schema0/schemaLocation.htm#attribute-schemaLocation
> <import
>   id = ID
>   namespace = anyURI
>   schemaLocation = anyURI
>   {any attributes with non-schema namespace . . .}>
>   Content: (annotation?)
> </import>
> "In a schema, the  include element has a required schemaLocation  attribute, and it contains a URI reference which must identify a schema document."
> Axis2 is currently using a relative SchemaLocation, which on its own can not be used to identify the schema document.  This actually causes a compatibility problem between Glue clients and such WSDLs published by Axis2.
> WSDL published by Axis2:
> <wsdl:definitions targetNamespace="http://www.csapi.org/wsdl/parlayx/terminal_location/v2_0/service">
> <wsdl:documentation>TerminalLocation</wsdl:documentation>
>     <wsdl:types>
>         <xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0/local">
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0" schemaLocation="TerminalLocation?xsd=xsd0"/>
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/common/v2_0" schemaLocation="TerminalLocation?xsd=xsd2"/>
>      .....
>     <wsdl:service name="TerminalLocation">
>         <wsdl:port name="TerminalLocationSOAP11port_http" binding="tns:TerminalLocationSOAP11Binding">
>             <soap:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationSOAP12port_http" binding="tns:TerminalLocationSOAP12Binding">
>             <soap12:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationHttpport1" binding="tns:TerminalLocationHttpBinding">
>             <http:address location="http://localhost:9080/TerminalLocationService/rest/TerminalLocation"/>
>         </wsdl:port>
>     </wsdl:service>
> </wsdl:definitions>
> When Glue parses this WSDL, it simply creates a URI from the string "TerminalLocation?xsd=xsd0".  Since the prefix ("http://localhost:9080/TerminalLocationService/services/") is not shown in the WSDL, a FileNotFoundException occurs and the bind fails.  I have not been able to find a workaround using Glue.
> I realize that the easy solution is to say that this is a Glue problem, but would it be at all possible to include the address location in the generated WSDL?
> Suggested fix:
> 1. In AxisService's adjustSchemaLocation(XmlSchema, XmlSchemaExternal, Hashtable, Hashtable) method:
>     - Change getName() in default mode to getEndpoint()
> 2. In AxisService2WSDL2's generateOM() method:
>     - add call to axisService.setCustomSchemaNamePrefix(axisService.getEndpoint() + "?xsd=") before call to populateSchemaMappings() is made.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Resolved: (AXIS2-1790) schemaLocation element of import statements should contain URI reference to schema document.

Posted by "Amila Chinthaka Suriarachchi (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AXIS2-1790?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Amila Chinthaka Suriarachchi resolved AXIS2-1790.
-------------------------------------------------

    Resolution: Fixed

fixed the issue please have a look.

> schemaLocation element of import statements should contain URI reference to schema document.
> --------------------------------------------------------------------------------------------
>
>                 Key: AXIS2-1790
>                 URL: https://issues.apache.org/jira/browse/AXIS2-1790
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Improvement
>          Components: wsdl
>    Affects Versions: 1.1
>         Environment: Windows XP, Java 5 Update 9
>            Reporter: Aaron Gourley
>            Assignee: Deepal Jayasinghe
>         Attachments: axis2-kernel-SNAPSHOT.jar, schema-import-generation.patch, XsdAndWsdlImportTestService.aar
>
>
> From W3C schemaLocation spec: http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/structures.html#composition-schemaImport
> Additional reference: http://www.stylusstudio.com/w3c/schema0/schemaLocation.htm#attribute-schemaLocation
> <import
>   id = ID
>   namespace = anyURI
>   schemaLocation = anyURI
>   {any attributes with non-schema namespace . . .}>
>   Content: (annotation?)
> </import>
> "In a schema, the  include element has a required schemaLocation  attribute, and it contains a URI reference which must identify a schema document."
> Axis2 is currently using a relative SchemaLocation, which on its own can not be used to identify the schema document.  This actually causes a compatibility problem between Glue clients and such WSDLs published by Axis2.
> WSDL published by Axis2:
> <wsdl:definitions targetNamespace="http://www.csapi.org/wsdl/parlayx/terminal_location/v2_0/service">
> <wsdl:documentation>TerminalLocation</wsdl:documentation>
>     <wsdl:types>
>         <xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0/local">
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0" schemaLocation="TerminalLocation?xsd=xsd0"/>
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/common/v2_0" schemaLocation="TerminalLocation?xsd=xsd2"/>
>      .....
>     <wsdl:service name="TerminalLocation">
>         <wsdl:port name="TerminalLocationSOAP11port_http" binding="tns:TerminalLocationSOAP11Binding">
>             <soap:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationSOAP12port_http" binding="tns:TerminalLocationSOAP12Binding">
>             <soap12:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationHttpport1" binding="tns:TerminalLocationHttpBinding">
>             <http:address location="http://localhost:9080/TerminalLocationService/rest/TerminalLocation"/>
>         </wsdl:port>
>     </wsdl:service>
> </wsdl:definitions>
> When Glue parses this WSDL, it simply creates a URI from the string "TerminalLocation?xsd=xsd0".  Since the prefix ("http://localhost:9080/TerminalLocationService/services/") is not shown in the WSDL, a FileNotFoundException occurs and the bind fails.  I have not been able to find a workaround using Glue.
> I realize that the easy solution is to say that this is a Glue problem, but would it be at all possible to include the address location in the generated WSDL?
> Suggested fix:
> 1. In AxisService's adjustSchemaLocation(XmlSchema, XmlSchemaExternal, Hashtable, Hashtable) method:
>     - Change getName() in default mode to getEndpoint()
> 2. In AxisService2WSDL2's generateOM() method:
>     - add call to axisService.setCustomSchemaNamePrefix(axisService.getEndpoint() + "?xsd=") before call to populateSchemaMappings() is made.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Commented: (AXIS2-1790) schemaLocation element of import statements should contain URI reference to schema document.

Posted by "Dave James (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AXIS2-1790?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12628476#action_12628476 ] 

Dave James commented on AXIS2-1790:
-----------------------------------

Hi.

I'm working with Axis2 1.4, I've tried making the changes and building the kernel jar, but I get the following error:

C:\Work\axis2-1.4\modules\kernel\src\org\apache\axis2\description\AxisService.java:[253,36] generics are not supported in -source 1.4
(use -source 5 or higher to enable generics)
        private CopyOnWriteArrayList<MessageContextListener> messageContextListeners = new CopyOnWriteArrayList<MessageContextListener>()

I'm pretty sure I'm not going to be able to use a version other than 1.4 at the moment, any suggestions?

Cheers,
Dave

> schemaLocation element of import statements should contain URI reference to schema document.
> --------------------------------------------------------------------------------------------
>
>                 Key: AXIS2-1790
>                 URL: https://issues.apache.org/jira/browse/AXIS2-1790
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Improvement
>          Components: wsdl
>    Affects Versions: 1.1
>         Environment: Windows XP, Java 5 Update 9
>            Reporter: Aaron Gourley
>            Assignee: Deepal Jayasinghe
>         Attachments: axis2-kernel-SNAPSHOT.jar, schema-import-generation.patch, XsdAndWsdlImportTestService.aar
>
>
> From W3C schemaLocation spec: http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/structures.html#composition-schemaImport
> Additional reference: http://www.stylusstudio.com/w3c/schema0/schemaLocation.htm#attribute-schemaLocation
> <import
>   id = ID
>   namespace = anyURI
>   schemaLocation = anyURI
>   {any attributes with non-schema namespace . . .}>
>   Content: (annotation?)
> </import>
> "In a schema, the  include element has a required schemaLocation  attribute, and it contains a URI reference which must identify a schema document."
> Axis2 is currently using a relative SchemaLocation, which on its own can not be used to identify the schema document.  This actually causes a compatibility problem between Glue clients and such WSDLs published by Axis2.
> WSDL published by Axis2:
> <wsdl:definitions targetNamespace="http://www.csapi.org/wsdl/parlayx/terminal_location/v2_0/service">
> <wsdl:documentation>TerminalLocation</wsdl:documentation>
>     <wsdl:types>
>         <xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0/local">
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0" schemaLocation="TerminalLocation?xsd=xsd0"/>
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/common/v2_0" schemaLocation="TerminalLocation?xsd=xsd2"/>
>      .....
>     <wsdl:service name="TerminalLocation">
>         <wsdl:port name="TerminalLocationSOAP11port_http" binding="tns:TerminalLocationSOAP11Binding">
>             <soap:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationSOAP12port_http" binding="tns:TerminalLocationSOAP12Binding">
>             <soap12:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationHttpport1" binding="tns:TerminalLocationHttpBinding">
>             <http:address location="http://localhost:9080/TerminalLocationService/rest/TerminalLocation"/>
>         </wsdl:port>
>     </wsdl:service>
> </wsdl:definitions>
> When Glue parses this WSDL, it simply creates a URI from the string "TerminalLocation?xsd=xsd0".  Since the prefix ("http://localhost:9080/TerminalLocationService/services/") is not shown in the WSDL, a FileNotFoundException occurs and the bind fails.  I have not been able to find a workaround using Glue.
> I realize that the easy solution is to say that this is a Glue problem, but would it be at all possible to include the address location in the generated WSDL?
> Suggested fix:
> 1. In AxisService's adjustSchemaLocation(XmlSchema, XmlSchemaExternal, Hashtable, Hashtable) method:
>     - Change getName() in default mode to getEndpoint()
> 2. In AxisService2WSDL2's generateOM() method:
>     - add call to axisService.setCustomSchemaNamePrefix(axisService.getEndpoint() + "?xsd=") before call to populateSchemaMappings() is made.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Commented: (AXIS2-1790) schemaLocation element of import statements should contain URI reference to schema document.

Posted by "Aaron Gourley (JIRA)" <ji...@apache.org>.
    [ http://issues.apache.org/jira/browse/AXIS2-1790?page=comments#action_12454373 ] 
            
Aaron Gourley commented on AXIS2-1790:
--------------------------------------

Make that AxisService2OM's generateOM() method (not AxisService2WSDL2's)

> schemaLocation element of import statements should contain URI reference to schema document.
> --------------------------------------------------------------------------------------------
>
>                 Key: AXIS2-1790
>                 URL: http://issues.apache.org/jira/browse/AXIS2-1790
>             Project: Apache Axis 2.0 (Axis2)
>          Issue Type: Improvement
>          Components: wsdl
>    Affects Versions: 1.1
>         Environment: Windows XP, Java 5 Update 9
>            Reporter: Aaron Gourley
>
> From W3C schemaLocation spec: http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/structures.html#composition-schemaImport
> Additional reference: http://www.stylusstudio.com/w3c/schema0/schemaLocation.htm#attribute-schemaLocation
> <import
>   id = ID
>   namespace = anyURI
>   schemaLocation = anyURI
>   {any attributes with non-schema namespace . . .}>
>   Content: (annotation?)
> </import>
> "In a schema, the  include element has a required schemaLocation  attribute, and it contains a URI reference which must identify a schema document."
> Axis2 is currently using a relative SchemaLocation, which on its own can not be used to identify the schema document.  This actually causes a compatibility problem between Glue clients and such WSDLs published by Axis2.
> WSDL published by Axis2:
> <wsdl:definitions targetNamespace="http://www.csapi.org/wsdl/parlayx/terminal_location/v2_0/service">
> <wsdl:documentation>TerminalLocation</wsdl:documentation>
>     <wsdl:types>
>         <xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0/local">
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0" schemaLocation="TerminalLocation?xsd=xsd0"/>
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/common/v2_0" schemaLocation="TerminalLocation?xsd=xsd2"/>
>      .....
>     <wsdl:service name="TerminalLocation">
>         <wsdl:port name="TerminalLocationSOAP11port_http" binding="tns:TerminalLocationSOAP11Binding">
>             <soap:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationSOAP12port_http" binding="tns:TerminalLocationSOAP12Binding">
>             <soap12:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationHttpport1" binding="tns:TerminalLocationHttpBinding">
>             <http:address location="http://localhost:9080/TerminalLocationService/rest/TerminalLocation"/>
>         </wsdl:port>
>     </wsdl:service>
> </wsdl:definitions>
> When Glue parses this WSDL, it simply creates a URI from the string "TerminalLocation?xsd=xsd0".  Since the prefix ("http://localhost:9080/TerminalLocationService/services/") is not shown in the WSDL, a FileNotFoundException occurs and the bind fails.  I have not been able to find a workaround using Glue.
> I realize that the easy solution is to say that this is a Glue problem, but would it be at all possible to include the address location in the generated WSDL?
> Suggested fix:
> 1. In AxisService's adjustSchemaLocation(XmlSchema, XmlSchemaExternal, Hashtable, Hashtable) method:
>     - Change getName() in default mode to getEndpoint()
> 2. In AxisService2WSDL2's generateOM() method:
>     - add call to axisService.setCustomSchemaNamePrefix(axisService.getEndpoint() + "?xsd=") before call to populateSchemaMappings() is made.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Updated: (AXIS2-1790) schemaLocation element of import statements should contain URI reference to schema document.

Posted by "Ralitsa Hristova (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AXIS2-1790?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ralitsa Hristova updated AXIS2-1790:
------------------------------------

    Attachment: schema-import-generation.patch

Hi,
I re-open this issue because the same problem appears with a JAX-WS client - their wsimport tool also fails to parse a wsdl with an xsd:import with a relative URI for schemaLocation. 
I think it is important to be interoperable so I propose a small patch for this.
I made some enhancement to the AxisService to generate absolute URIs within xsd:import and wsdl:import. It is configurable per service in services.xml and on higher level in axis2.xml. I introduce a new parameter-flag named 'generateAbsoluteLocationURIs'. In AxisService class when sxd:import or wsdl:import is processed a check is performed and if the parameter is not present the default behavior remains as it was before - generating relative URIs.

> schemaLocation element of import statements should contain URI reference to schema document.
> --------------------------------------------------------------------------------------------
>
>                 Key: AXIS2-1790
>                 URL: https://issues.apache.org/jira/browse/AXIS2-1790
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Improvement
>          Components: wsdl
>    Affects Versions: 1.1
>         Environment: Windows XP, Java 5 Update 9
>            Reporter: Aaron Gourley
>            Assignee: Deepal Jayasinghe
>         Attachments: schema-import-generation.patch
>
>
> From W3C schemaLocation spec: http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/structures.html#composition-schemaImport
> Additional reference: http://www.stylusstudio.com/w3c/schema0/schemaLocation.htm#attribute-schemaLocation
> <import
>   id = ID
>   namespace = anyURI
>   schemaLocation = anyURI
>   {any attributes with non-schema namespace . . .}>
>   Content: (annotation?)
> </import>
> "In a schema, the  include element has a required schemaLocation  attribute, and it contains a URI reference which must identify a schema document."
> Axis2 is currently using a relative SchemaLocation, which on its own can not be used to identify the schema document.  This actually causes a compatibility problem between Glue clients and such WSDLs published by Axis2.
> WSDL published by Axis2:
> <wsdl:definitions targetNamespace="http://www.csapi.org/wsdl/parlayx/terminal_location/v2_0/service">
> <wsdl:documentation>TerminalLocation</wsdl:documentation>
>     <wsdl:types>
>         <xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0/local">
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0" schemaLocation="TerminalLocation?xsd=xsd0"/>
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/common/v2_0" schemaLocation="TerminalLocation?xsd=xsd2"/>
>      .....
>     <wsdl:service name="TerminalLocation">
>         <wsdl:port name="TerminalLocationSOAP11port_http" binding="tns:TerminalLocationSOAP11Binding">
>             <soap:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationSOAP12port_http" binding="tns:TerminalLocationSOAP12Binding">
>             <soap12:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationHttpport1" binding="tns:TerminalLocationHttpBinding">
>             <http:address location="http://localhost:9080/TerminalLocationService/rest/TerminalLocation"/>
>         </wsdl:port>
>     </wsdl:service>
> </wsdl:definitions>
> When Glue parses this WSDL, it simply creates a URI from the string "TerminalLocation?xsd=xsd0".  Since the prefix ("http://localhost:9080/TerminalLocationService/services/") is not shown in the WSDL, a FileNotFoundException occurs and the bind fails.  I have not been able to find a workaround using Glue.
> I realize that the easy solution is to say that this is a Glue problem, but would it be at all possible to include the address location in the generated WSDL?
> Suggested fix:
> 1. In AxisService's adjustSchemaLocation(XmlSchema, XmlSchemaExternal, Hashtable, Hashtable) method:
>     - Change getName() in default mode to getEndpoint()
> 2. In AxisService2WSDL2's generateOM() method:
>     - add call to axisService.setCustomSchemaNamePrefix(axisService.getEndpoint() + "?xsd=") before call to populateSchemaMappings() is made.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Commented: (AXIS2-1790) schemaLocation element of import statements should contain URI reference to schema document.

Posted by "Deepal Jayasinghe (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AXIS2-1790?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12637127#action_12637127 ] 

Deepal Jayasinghe commented on AXIS2-1790:
------------------------------------------

Your patch is already in the SVN

Thank you!
Deepal

> schemaLocation element of import statements should contain URI reference to schema document.
> --------------------------------------------------------------------------------------------
>
>                 Key: AXIS2-1790
>                 URL: https://issues.apache.org/jira/browse/AXIS2-1790
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Improvement
>          Components: wsdl
>    Affects Versions: 1.1
>         Environment: Windows XP, Java 5 Update 9
>            Reporter: Aaron Gourley
>            Assignee: Deepal Jayasinghe
>         Attachments: axis2-kernel-SNAPSHOT.jar, AxisService.patch, schema-import-generation.patch, XsdAndWsdlImportTestService.aar
>
>
> From W3C schemaLocation spec: http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/structures.html#composition-schemaImport
> Additional reference: http://www.stylusstudio.com/w3c/schema0/schemaLocation.htm#attribute-schemaLocation
> <import
>   id = ID
>   namespace = anyURI
>   schemaLocation = anyURI
>   {any attributes with non-schema namespace . . .}>
>   Content: (annotation?)
> </import>
> "In a schema, the  include element has a required schemaLocation  attribute, and it contains a URI reference which must identify a schema document."
> Axis2 is currently using a relative SchemaLocation, which on its own can not be used to identify the schema document.  This actually causes a compatibility problem between Glue clients and such WSDLs published by Axis2.
> WSDL published by Axis2:
> <wsdl:definitions targetNamespace="http://www.csapi.org/wsdl/parlayx/terminal_location/v2_0/service">
> <wsdl:documentation>TerminalLocation</wsdl:documentation>
>     <wsdl:types>
>         <xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0/local">
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0" schemaLocation="TerminalLocation?xsd=xsd0"/>
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/common/v2_0" schemaLocation="TerminalLocation?xsd=xsd2"/>
>      .....
>     <wsdl:service name="TerminalLocation">
>         <wsdl:port name="TerminalLocationSOAP11port_http" binding="tns:TerminalLocationSOAP11Binding">
>             <soap:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationSOAP12port_http" binding="tns:TerminalLocationSOAP12Binding">
>             <soap12:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationHttpport1" binding="tns:TerminalLocationHttpBinding">
>             <http:address location="http://localhost:9080/TerminalLocationService/rest/TerminalLocation"/>
>         </wsdl:port>
>     </wsdl:service>
> </wsdl:definitions>
> When Glue parses this WSDL, it simply creates a URI from the string "TerminalLocation?xsd=xsd0".  Since the prefix ("http://localhost:9080/TerminalLocationService/services/") is not shown in the WSDL, a FileNotFoundException occurs and the bind fails.  I have not been able to find a workaround using Glue.
> I realize that the easy solution is to say that this is a Glue problem, but would it be at all possible to include the address location in the generated WSDL?
> Suggested fix:
> 1. In AxisService's adjustSchemaLocation(XmlSchema, XmlSchemaExternal, Hashtable, Hashtable) method:
>     - Change getName() in default mode to getEndpoint()
> 2. In AxisService2WSDL2's generateOM() method:
>     - add call to axisService.setCustomSchemaNamePrefix(axisService.getEndpoint() + "?xsd=") before call to populateSchemaMappings() is made.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Issue Comment Edited: (AXIS2-1790) schemaLocation element of import statements should contain URI reference to schema document.

Posted by "Dave James (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AXIS2-1790?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12628476#action_12628476 ] 

davefeeder edited comment on AXIS2-1790 at 9/5/08 1:07 AM:
-----------------------------------------------------------

Hi.

I'm working with Axis2 1.4, I've tried making the changes and building the kernel jar, but I get the following error:

C:\Work\axis2-1.4\modules\kernel\src\org\apache\axis2\description\AxisService.java:[253,36] generics are not supported in -source 1.4
(use -source 5 or higher to enable generics)
        private CopyOnWriteArrayList<MessageContextListener> messageContextListeners = new CopyOnWriteArrayList<MessageContextListener>()

Any suggestions?

Cheers,
Dave

      was (Author: davefeeder):
    Hi.

I'm working with Axis2 1.4, I've tried making the changes and building the kernel jar, but I get the following error:

C:\Work\axis2-1.4\modules\kernel\src\org\apache\axis2\description\AxisService.java:[253,36] generics are not supported in -source 1.4
(use -source 5 or higher to enable generics)
        private CopyOnWriteArrayList<MessageContextListener> messageContextListeners = new CopyOnWriteArrayList<MessageContextListener>()

I'm pretty sure I'm not going to be able to use a version other than 1.4 at the moment, any suggestions?

Cheers,
Dave
  
> schemaLocation element of import statements should contain URI reference to schema document.
> --------------------------------------------------------------------------------------------
>
>                 Key: AXIS2-1790
>                 URL: https://issues.apache.org/jira/browse/AXIS2-1790
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Improvement
>          Components: wsdl
>    Affects Versions: 1.1
>         Environment: Windows XP, Java 5 Update 9
>            Reporter: Aaron Gourley
>            Assignee: Deepal Jayasinghe
>         Attachments: axis2-kernel-SNAPSHOT.jar, schema-import-generation.patch, XsdAndWsdlImportTestService.aar
>
>
> From W3C schemaLocation spec: http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/structures.html#composition-schemaImport
> Additional reference: http://www.stylusstudio.com/w3c/schema0/schemaLocation.htm#attribute-schemaLocation
> <import
>   id = ID
>   namespace = anyURI
>   schemaLocation = anyURI
>   {any attributes with non-schema namespace . . .}>
>   Content: (annotation?)
> </import>
> "In a schema, the  include element has a required schemaLocation  attribute, and it contains a URI reference which must identify a schema document."
> Axis2 is currently using a relative SchemaLocation, which on its own can not be used to identify the schema document.  This actually causes a compatibility problem between Glue clients and such WSDLs published by Axis2.
> WSDL published by Axis2:
> <wsdl:definitions targetNamespace="http://www.csapi.org/wsdl/parlayx/terminal_location/v2_0/service">
> <wsdl:documentation>TerminalLocation</wsdl:documentation>
>     <wsdl:types>
>         <xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0/local">
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0" schemaLocation="TerminalLocation?xsd=xsd0"/>
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/common/v2_0" schemaLocation="TerminalLocation?xsd=xsd2"/>
>      .....
>     <wsdl:service name="TerminalLocation">
>         <wsdl:port name="TerminalLocationSOAP11port_http" binding="tns:TerminalLocationSOAP11Binding">
>             <soap:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationSOAP12port_http" binding="tns:TerminalLocationSOAP12Binding">
>             <soap12:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationHttpport1" binding="tns:TerminalLocationHttpBinding">
>             <http:address location="http://localhost:9080/TerminalLocationService/rest/TerminalLocation"/>
>         </wsdl:port>
>     </wsdl:service>
> </wsdl:definitions>
> When Glue parses this WSDL, it simply creates a URI from the string "TerminalLocation?xsd=xsd0".  Since the prefix ("http://localhost:9080/TerminalLocationService/services/") is not shown in the WSDL, a FileNotFoundException occurs and the bind fails.  I have not been able to find a workaround using Glue.
> I realize that the easy solution is to say that this is a Glue problem, but would it be at all possible to include the address location in the generated WSDL?
> Suggested fix:
> 1. In AxisService's adjustSchemaLocation(XmlSchema, XmlSchemaExternal, Hashtable, Hashtable) method:
>     - Change getName() in default mode to getEndpoint()
> 2. In AxisService2WSDL2's generateOM() method:
>     - add call to axisService.setCustomSchemaNamePrefix(axisService.getEndpoint() + "?xsd=") before call to populateSchemaMappings() is made.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Updated: (AXIS2-1790) schemaLocation element of import statements should contain URI reference to schema document.

Posted by "Dobri Kitipov (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AXIS2-1790?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dobri Kitipov updated AXIS2-1790:
---------------------------------

    Attachment: AxisService.patch

Attaching the latest patch needed to fix the xsd related part of the issue.

> schemaLocation element of import statements should contain URI reference to schema document.
> --------------------------------------------------------------------------------------------
>
>                 Key: AXIS2-1790
>                 URL: https://issues.apache.org/jira/browse/AXIS2-1790
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Improvement
>          Components: wsdl
>    Affects Versions: 1.1
>         Environment: Windows XP, Java 5 Update 9
>            Reporter: Aaron Gourley
>            Assignee: Deepal Jayasinghe
>         Attachments: axis2-kernel-SNAPSHOT.jar, AxisService.patch, schema-import-generation.patch, XsdAndWsdlImportTestService.aar
>
>
> From W3C schemaLocation spec: http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/structures.html#composition-schemaImport
> Additional reference: http://www.stylusstudio.com/w3c/schema0/schemaLocation.htm#attribute-schemaLocation
> <import
>   id = ID
>   namespace = anyURI
>   schemaLocation = anyURI
>   {any attributes with non-schema namespace . . .}>
>   Content: (annotation?)
> </import>
> "In a schema, the  include element has a required schemaLocation  attribute, and it contains a URI reference which must identify a schema document."
> Axis2 is currently using a relative SchemaLocation, which on its own can not be used to identify the schema document.  This actually causes a compatibility problem between Glue clients and such WSDLs published by Axis2.
> WSDL published by Axis2:
> <wsdl:definitions targetNamespace="http://www.csapi.org/wsdl/parlayx/terminal_location/v2_0/service">
> <wsdl:documentation>TerminalLocation</wsdl:documentation>
>     <wsdl:types>
>         <xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0/local">
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/terminal_location/v2_0" schemaLocation="TerminalLocation?xsd=xsd0"/>
>             <xsd:import namespace="http://www.csapi.org/schema/parlayx/common/v2_0" schemaLocation="TerminalLocation?xsd=xsd2"/>
>      .....
>     <wsdl:service name="TerminalLocation">
>         <wsdl:port name="TerminalLocationSOAP11port_http" binding="tns:TerminalLocationSOAP11Binding">
>             <soap:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationSOAP12port_http" binding="tns:TerminalLocationSOAP12Binding">
>             <soap12:address location="http://localhost:9080/TerminalLocationService/services/TerminalLocation"/>
>         </wsdl:port>
>         <wsdl:port name="TerminalLocationHttpport1" binding="tns:TerminalLocationHttpBinding">
>             <http:address location="http://localhost:9080/TerminalLocationService/rest/TerminalLocation"/>
>         </wsdl:port>
>     </wsdl:service>
> </wsdl:definitions>
> When Glue parses this WSDL, it simply creates a URI from the string "TerminalLocation?xsd=xsd0".  Since the prefix ("http://localhost:9080/TerminalLocationService/services/") is not shown in the WSDL, a FileNotFoundException occurs and the bind fails.  I have not been able to find a workaround using Glue.
> I realize that the easy solution is to say that this is a Glue problem, but would it be at all possible to include the address location in the generated WSDL?
> Suggested fix:
> 1. In AxisService's adjustSchemaLocation(XmlSchema, XmlSchemaExternal, Hashtable, Hashtable) method:
>     - Change getName() in default mode to getEndpoint()
> 2. In AxisService2WSDL2's generateOM() method:
>     - add call to axisService.setCustomSchemaNamePrefix(axisService.getEndpoint() + "?xsd=") before call to populateSchemaMappings() is made.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org