Describing algorithms (xml/ struts / xforms ?)
Heya guys (and girls :p),
I need some help here. I am about to start a new project and I'm kinda at a loss on what to do.
The idea is to create a site where I can fill in a questionair (a webforms thus). The forms are created by using different kind of XML files. One kind of XML file describes the form fields (the questions), another describes the algorithms behind the questions. With the algorithms I should be able to process the answers on my questions and do statistical calculations.
The creation of forms doesn't really look like it's going to be a problem, but the algorithms are... How can I solve the issue on having an XML file describing things like 'if x>100 && z <= y do this...' and making the link to Java alike code. I don't really fancy writing an analyzer from scratch (although if it needs to be done so shall it be :p). Are there any description languages available who can solve this prob? Java classes? At the moment I'm thinking of using the Struts framework with XForms, Jakatra BCEL (code generator), some database stuff and probably some Beans along the path. Any input/ suggestions /technologies would put yall on my hall of fame :p
Thnx in advance
Jurgen
Cross posting is a b a d n e w s r o u n d t h e s e p a r t s ...
Similar Messages
-
Describing algorithms (xml)
Heya guys (and girls :p),
I need some help here. I am about to start a new project and I'm kinda at a loss on what to do.
The idea is to create a site where I can fill in a questionair (a webforms thus). The forms are created by using different kind of XML files. One kind of XML file describes the form fields (the questions), another describes the algorithms behind the questions. With the algorithms I should be able to process the answers on my questions and do statistical calculations.
The creation of forms doesn't really look like it's going to be a problem, but the algorithms are... How can I solve the issue on having an XML file describing things like 'if x>100 && z <= y do this...' and making the link to Java alike code. I don't really fancy writing an analyzer from scratch (although if it needs to be done so shall it be :p). Are there any description languages available who can solve this prob? Java classes? At the moment I'm thinking of using the Struts framework with XForms, Jakatra BCEL (code generator), some database stuff and probably some Beans along the path. Any input/ suggestions /technologies would put yall on my hall of fame :p
Thnx in advance
JurgenThe following Business Rule Solution uses POJO's and XML and meets the following criteria!
Business Rule Solutions should be:
Non-Industry Specific
Appropriate and Affordable for any size business
Enterprise-class solution (scalable, optimized, extensible)
Remember: All businesses have business rules, and all businesses need an efficient way of managing and executing these business rules.
What Business Rule Solutions should provide:
Input Validation & Data Integrity
Integration & Data Transformation
Analytics
Interpret clients Business Policies & Behaviors and clients run-time
data and execute the appropriate process related workflow efficiently.
The Return on Investment:
ROI continues every day, week, month and year into the future!
Simplify all program development through component reuse.
Lowers software maintenance by a magnitude.
Manages & Protects a company assets (Business Rules) in one
repository.
Provide Business Agility and Competitive Advantage!
Further, I believe Business Rule Solutions are a higher level of abstraction of services that all other applications should use to implement the Model-View-Controller design pattern!
Run the Demo!
Use the Contact Us! page for quicker responses. http://www.agilebusinessrulecomponents.com -
Anamitra,
I didn't get a chance to work on this issue.
From my understanding I have quickly created a test wsdl and test xsd.
I don't know whether it will work. I have not tested it. It needs many
corrections.
Take a look at the attached wsdl and xsd and let me know your suggestion.
Scenario:
1. Exposed method:
public String requestPurchaseOrder(String poXML)
2. poXML should be of type po.xsd
3. Validation - ?? No Idea. For now manual validation.
I guess we both have similar requirement, if you get it working before me,
please post your finding.
Thanks,
Karthik.
"Anamitra" <[email protected]> wrote in message
news:[email protected]...
>
Hi karthik
I still dont get how the poXML can be represented by a schema in a WSDL.Can you
give me a sample wsdl for that?
Thanks
Anamitra
"Karthik V" <[email protected]> wrote:
Manoj:
Sorry, I got confused when you said, "the runtime will strip the xml
tags".
After your explanation, I understand that the runtime is actually going
to
perform some conversion without any loss of data.
To conclude, logically,
public void test(String poXML) is valid, and poXML can be represented
by
a schema definition.
When I get a chance, I'm going to create a quick example of this use
case
and post it.
Thanks,
/k
"manoj cheenath" <[email protected]> wrote in message
news:[email protected]...
java.lang.String is mapped to xsd:string which means the xml
should look like:
<foo xsi:type=xsd:string >sometext without any xml tags</foo>
So if there are xml tags inside the string you passed
in, runtime need to replace the tags with > and
<.
On the other end the runtime will again replace
etc back to < or >. So you will get back theright XML. But on the wire it will be plain text
not XML.
So, if you dont want to convert to string, then you should use
javax.xml.soap.SOAPElement or org.w3c.Element as
your parameter type instead of java.lang.String.
http://manojc.com
"Karthik V" <[email protected]> wrote in message
news:[email protected]...
Manoj:
I do not understand how the runtime will strip the xml.
I think Anamitra's requirement of:
public void test(String poXML)
is very valid and a simple requirement.
Infact, my requirement too is similar..
1. Expose a method which takes in a String object.
2. Define how the String is going to look like (using xsd).
3. Instead of defining the schema in WSDL, we would like to import
the
schema and use it.
4. Later use the schema to validate the incoming request.
In real time most of us would like to work with String because ofits
simplicity.
Is there any reason why the implementation for such a simple usecase is
so
confusing?
/k
"manoj cheenath" <[email protected]> wrote in message
news:[email protected]...
public void test( String poXML )
is not the best solution for you, i think, because
in this case the runtime will strip the xml tags
inside poXML. so the envelope will look like:
<m:my-method>
<poXML>sdfjds >some thing < something else...</poXML>
</m:my-method>
instead of:
<m:my-method>
<poXML>some thing <foo> something else</foo></poXML>
</m:my-method>
Will that be ok for you? Else, you can use DOM or
javax.xml.soap.SOAPElement:
public void test( org.w3c.Dom poXML );
It looks like there is bug in WLS 7.0.2. The CR for this
is CR104719. Please contact support if you need a patch.
If you do clientgen on the WSDL, it is going to generate
the classes (value types) for you. It looks like you do not
want to do data binding. Take a look at DII client with generic
type-mapping. Will this help you?
package examples.jaxrpc.call5;
import java.net.URL;
import javax.xml.soap.SOAPConstants;
import javax.xml.rpc.ServiceFactory;
import javax.xml.rpc.Service;
import javax.xml.rpc.Call;
import javax.xml.rpc.ParameterMode;
import javax.xml.namespace.QName;
import javax.xml.rpc.encoding.TypeMapping;
import javax.xml.rpc.encoding.TypeMappingRegistry;
import javax.xml.soap.SOAPElement;
import weblogic.webservice.encoding.GenericTypeMapping;
import weblogic.webservice.core.soap.SOAPElementImpl;
public class MSInterop{
public static void main( String[] args ) throws Exception{
//dont parse wsdl till we set the typemapping
System.setProperty( "weblogic.webservice.servicenamechecking",
"false" );
//create service factory
ServiceFactory factory = ServiceFactory.newInstance();
//define qnames
String targetNamespace = "http://soapinterop.org/";
QName serviceName = new QName( targetNamespace, "SimpleTest"
QName portName = new QName( targetNamespace, "SimpleTestSoap");
QName operationName = new QName( "http://soapinterop.org/",
"echoStruct" );
URL wsdlLocation = new URL(
"http://www.mssoapinterop.org/asmx/simple.asmx?WSDL" );
//create service
Service service = factory.createService( wsdlLocation,serviceName );
TypeMappingRegistry registry =
service.getTypeMappingRegistry();
>>>>>
registry.register( SOAPConstants.URI_NS_SOAP_ENCODING,
new GenericTypeMapping() );
//create call
Call call = service.createCall( portName, operationName );
//construct struct
SOAPElement elem = new SOAPElementImpl( "inputStruct", null,null );
elem.addChildElement( "varInt" ).addTextNode( "1" );
elem.addChildElement( "varString" ).addTextNode( "samplestring" );
elem.addChildElement( "varFloat" ).addTextNode( "2.2" );
System.out.println( elem );
try{
SOAPElement res = (SOAPElement)call.invoke(new Object[]{elem } );
System.out.println( res );
}catch( javax.xml.rpc.JAXRPCException e ){
e.printStackTrace();
e.getLinkedCause().printStackTrace();
Call echoFloat = service.createCall( portName,
new QName( "http://soapinterop.org/", "echoFloat" ) );
System.out.println( echoFloat.invoke( new Object[]{new
Float(100.0)} ) );
http://manojc.com
"Anamitra" <[email protected]> wrote in message
news:[email protected]...
Hi Bruce
I think the wsdl that you sent was very near to what I was
looking
for.
But I
would try to make the requirement more clear: The points below
are
listed
in order
of priority:
1>First and foremost I am looking to create a Webservice such
that
it
exposes
a method which takes in a java.lang.String
public void test(String poXML)
But in the WSDL I want to show the user the schema definition
for
the
po
XML.
And would desire that the Webservices framework do the schema
validation
of the
incoming xml. But I dont thing this works as the wsdl generated
always
says the
type is "xsd:string". So I started looking into the 2nd option:
2>Create a doc/literal type service and expose that method as:
public void test(POXMLBean poXML)
This generated the reqd schema in the wsdl level but the client
is
being
forced
to use the POXMLBean to invoke the method. I would ideally want
the
client
to
just deal with the XML of the pobean as described in the
generated
schema
definition.
For example the client using JAXRPC should be say doing the code
like
this:
String poXML = "<po> <order>000</order> </po>"
call.invoke(poXML").
Is this possible? I am not able to do this. My primary important
thing
is
that
the client has to deal with XML and not with anything else. The
client
shouldnot
have to deal with POXMLBean. This is what I am trying to acheive
and
not
able
to.
3> So that leaves me to the last option which is not that good:
ie I keep my original approach:
public void test(String poXML)
and somehow via wsdl:documentation say that the schema for this
poXML
is
this...
But I cannot change the type in the parameter poXML from
xs:string
right?
Bottom line is there any way for the client to pass string/byte[]
xml
data
to
the webservice - but still be able to look into the WSDL and
see
what
the
reqd
XML structure should be? I thought doc/literal should do it -
but
using
weblogic
I am not able to do it. Can u help me with this pls.
thanks
Anamitra
Bruce Stephens <[email protected]> wrote:
Hello,
See what you think of this example of using import. It seems
to
describe your exact use case:
http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Retai
l
er.wsdl
(Disclaimer, anyone could have found this via public UDDI.)
The issue I believe that Anamitra sees is the gap between the
runtime
and the toolset.
Bruce
Anamitra wrote:
Hi Karthik
I am a bit confused as to what you mean when u say "import".
The
generated
webservices.xml
contains a <types> and a <type-mapping> element. I suppose
u r
asking
me to put
the xsd definition in the <types> section - right?
If the method is like this:
public String doit(String msg)
How do I attach the <xs:string> type "msg" to the actual
XML
schema
that I just
imported?
I dont know whether I am asking stupid questions or not -
but I
would
have ideall
liked to see my "msg" of type say "PurchaseOrder" which is
the
schema
that I imported.
And the external client should just be able to give the
"PurchaseOrder"
xml to
the Webservice and invoke the "doit" method.
Am I making any sense?
thanks
Anamitra
"Karthik V" <[email protected]> wrote:
I doubt if servicegen has any option for doing it
automatically.
You should manually edit web-services.xml and import thexsd.
/k
"Anamitra" <[email protected]> wrote in message
news:[email protected]...
Hi Karthik/Bruce
Can you pls explain to me how using weblogic tools
[servicegen]
one
can
include
the xsd pointers in the WSDL file.
We have a similar kind of requirement where we have
webservices
which
take
in
string [XML data] as a parameter and the WSDL only shows
method
parameter
types
as xsd:string - but we want to show something like a schema
definition.
So
if
there is anyway to put the schema definition in the WSDL
- pls
let
me know
that
would be very very helpful.
thanks
Anamitra
"Karthik V" <[email protected]> wrote:
Bruce,
Thanks for your response. That helped.
I have another question for you.
I know this would sound strange.
But my requirement is to expose a session bean method
that
could
take
different xml inputs.
For example:
TestBean exposes testMethod(String xmlstr)
xmlstr could be of schema xmlSchema1.xsd
or xmlstr could be of schema xmlSchema2.xsd
In future it could also represent xmlSchema3.xsd... and
so
on.
What is the right approach in this scenario?
I was thinking to create a different web service fordifferent
xsd.
Say, webservice1 imports xmlSchema1.xsd, webservice2
imports
xmlSchema2.xsd...
Un fortunately due to some design restrictions, I cannotcreate
different
methods in my session bean like testMethod1,
testMethod2....
Is there any other better way to do this in one webservice?
>>>>>>>>>>>
Thanks in advance for any suggestions. And excuse myunusual
requirement.
/k
"Bruce Stephens" <[email protected]> wrote in message
news:[email protected]...
Hello,
Personally I like to see everything in one place, i.e.
in
the
WSDL,
however everyone else :-) uses the import. The
SOAPBuilders
round
3
have several tests showing imports. Also WSI Basic
profile
has
some
helpful guidelines on using import:
http://www.ws-i.org/Profiles/Basic/2003-03/BasicProfile-1.0-BdAD.html
>>>>>>>>>>>>
HTHs,
Bruce
Karthik V wrote:
Hi,
I have created few doc style web services, with a
very
complex
xml
input
and
output. (1200 lines of xsd)
Input and out put are xml as java.lang.String.
What would be the best practice to represent this
in the
WSDL?
Just
a
reference to the xsd file is good, or should it be
completely
presented
within the WSDL? I'm not sure how my wsdl should look
like...
I will be using the same schema (xsd) in other web
services
too
to
perform
different functions.
Any suggestions would be greatly appreciated.
Thanks
/k
[testWSDL.wsdl]
[PO.xsd]Hello Karthik/Anamitra,
i have the same requirements in my webservices:
1) Expose the Handler method receiving String
public String runRequest(String poXML)
2) On the other hand - the message (the poXML string) should be in XML format according to some XSD file.
Have you got this working already?
If so, please explain what the WSDL looks like.
Thanks in advance,
Orly -
Web.xml, struts and ssl
Hi there,
on our projects web pages we use struts, to combine the html of our pages with the java code behind. To enable SSL I added a security constraint to the web.xml:
<security-constraint>
<display-name>SSL Constraint</display-name>
<web-resource-collection>
<web-resource-name>secured login resource</web-resource-name>
<description></description>
<url-pattern>/index.html</url-pattern>
<url-pattern>*.do</url-pattern>
<http-method>GET</http-method>
<http-method>PUT</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<description></description>
<role-name>authenticatedUser</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint> Some of our web pages need to use no SSL. So I added (for first testing) a second security constraint to the web.xml and defined which pages should be without SSL:
<security-constraint>
<display-name>No-SSL Constraint</display-name>
<web-resource-collection>
<web-resource-name>businesstransaction resource</web-resource-name>
<description></description>
<url-pattern>*.go</url-pattern>
<http-method>GET</http-method>
<http-method>PUT</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<description></description>
<role-name>authenticatedUser</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>As you can see, I exchanged *.do with *.go for testing. I simply defined all actions I want to be used without SSL with a .go instead of a .do in the struts.config.
In principle it works, but there is a problem: The default behaviour for struts seems to be that the name of the new action is posted in the url at the end of the standard starting url.
Our url starts with https://localhost:9443/client-web/, and whatever action I start, this url text in the browser window never changes, regardless of wether the next action would be protected or not.
First I thought my url pattern would be wrong, or the user or whatever. But then I found out, that when changing the url in the browser window by hand to http://localhost:9080/client-web/ it works. The web page then is without SSL active. And when I manually change the url while viewing a page that is meant to be SSL protected, the browser automatically changes to the SSL adress.
But then again, moving to a page without SSL does not enforce the browser to change its adress to the no SSL String. So again, SSL is active though a non secure access would be allowed.
Anybody has any idea how to change this default behaviour? It would be important to not only tell the server that non secure would be ok, but to actually USE non secure connection automatically.
The internet explorer is not able to upload files in SSL mode (though any other browser is able to), and our customer insists on using IE. And to tell the users "oh, just edit the line there in the window manually and reload the page will help ... or use Firefox" will not be a suitable solution.
Regards, Rommie.There is a plugin called sslext which will do most of what you need.
http://sslext.sourceforge.net/
I think the last time I used it I made some changes to the plugin source so that I could force non-ssl to be the default behavour unless SSL was explictily stated in struts.config, but can't remember for sure. Bottom line is it will do most of what you need and can probably be modified to do the rest without too much trouble. -
Hi,
I have created few doc style web services, with a very complex xml input and
output. (1200 lines of xsd)
Input and out put are xml as java.lang.String.
What would be the best practice to represent this in the WSDL? Just a
reference to the xsd file is good, or should it be completely presented
within the WSDL? I'm not sure how my wsdl should look like...
I will be using the same schema (xsd) in other web services too to perform
different functions.
Any suggestions would be greatly appreciated.
Thanks
/kHi karthik
I still dont get how the poXML can be represented by a schema in a WSDL. Can you
give me a sample wsdl for that?
Thanks
Anamitra
"Karthik V" <[email protected]> wrote:
Manoj:
Sorry, I got confused when you said, "the runtime will strip the xml
tags".
After your explanation, I understand that the runtime is actually going
to
perform some conversion without any loss of data.
To conclude, logically,
public void test(String poXML) is valid, and poXML can be represented
by
a schema definition.
When I get a chance, I'm going to create a quick example of this use
case
and post it.
Thanks,
/k
"manoj cheenath" <[email protected]> wrote in message
news:[email protected]...
java.lang.String is mapped to xsd:string which means the xml
should look like:
<foo xsi:type=xsd:string >sometext without any xml tags</foo>
So if there are xml tags inside the string you passed
in, runtime need to replace the tags with > and
<.
On the other end the runtime will again replace
etc back to < or >. So you will get back theright XML. But on the wire it will be plain text
not XML.
So, if you dont want to convert to string, then you should use
javax.xml.soap.SOAPElement or org.w3c.Element as
your parameter type instead of java.lang.String.
http://manojc.com
"Karthik V" <[email protected]> wrote in message
news:[email protected]...
Manoj:
I do not understand how the runtime will strip the xml.
I think Anamitra's requirement of:
public void test(String poXML)
is very valid and a simple requirement.
Infact, my requirement too is similar..
1. Expose a method which takes in a String object.
2. Define how the String is going to look like (using xsd).
3. Instead of defining the schema in WSDL, we would like to import
the
schema and use it.
4. Later use the schema to validate the incoming request.
In real time most of us would like to work with String because ofits
simplicity.
Is there any reason why the implementation for such a simple usecase is
so
confusing?
/k
"manoj cheenath" <[email protected]> wrote in message
news:[email protected]...
public void test( String poXML )
is not the best solution for you, i think, because
in this case the runtime will strip the xml tags
inside poXML. so the envelope will look like:
<m:my-method>
<poXML>sdfjds >some thing < something else...</poXML>
</m:my-method>
instead of:
<m:my-method>
<poXML>some thing <foo> something else</foo></poXML>
</m:my-method>
Will that be ok for you? Else, you can use DOM or
javax.xml.soap.SOAPElement:
public void test( org.w3c.Dom poXML );
It looks like there is bug in WLS 7.0.2. The CR for this
is CR104719. Please contact support if you need a patch.
If you do clientgen on the WSDL, it is going to generate
the classes (value types) for you. It looks like you do not
want to do data binding. Take a look at DII client with generic
type-mapping. Will this help you?
package examples.jaxrpc.call5;
import java.net.URL;
import javax.xml.soap.SOAPConstants;
import javax.xml.rpc.ServiceFactory;
import javax.xml.rpc.Service;
import javax.xml.rpc.Call;
import javax.xml.rpc.ParameterMode;
import javax.xml.namespace.QName;
import javax.xml.rpc.encoding.TypeMapping;
import javax.xml.rpc.encoding.TypeMappingRegistry;
import javax.xml.soap.SOAPElement;
import weblogic.webservice.encoding.GenericTypeMapping;
import weblogic.webservice.core.soap.SOAPElementImpl;
public class MSInterop{
public static void main( String[] args ) throws Exception{
//dont parse wsdl till we set the typemapping
System.setProperty( "weblogic.webservice.servicenamechecking",
"false" );
//create service factory
ServiceFactory factory = ServiceFactory.newInstance();
//define qnames
String targetNamespace = "http://soapinterop.org/";
QName serviceName = new QName( targetNamespace, "SimpleTest"
QName portName = new QName( targetNamespace, "SimpleTestSoap");
QName operationName = new QName( "http://soapinterop.org/",
"echoStruct" );
URL wsdlLocation = new URL(
"http://www.mssoapinterop.org/asmx/simple.asmx?WSDL" );
//create service
Service service = factory.createService( wsdlLocation,serviceName );
TypeMappingRegistry registry = service.getTypeMappingRegistry();
registry.register( SOAPConstants.URI_NS_SOAP_ENCODING,
new GenericTypeMapping() );
//create call
Call call = service.createCall( portName, operationName );
//construct struct
SOAPElement elem = new SOAPElementImpl( "inputStruct", null,
null );
elem.addChildElement( "varInt" ).addTextNode( "1" );
elem.addChildElement( "varString" ).addTextNode( "samplestring" );
elem.addChildElement( "varFloat" ).addTextNode( "2.2" );
System.out.println( elem );
try{
SOAPElement res = (SOAPElement)call.invoke(new Object[]{elem } );
System.out.println( res );
}catch( javax.xml.rpc.JAXRPCException e ){
e.printStackTrace();
e.getLinkedCause().printStackTrace();
Call echoFloat = service.createCall( portName,
new QName( "http://soapinterop.org/", "echoFloat" ) );
System.out.println( echoFloat.invoke( new Object[]{new
Float(100.0)} ) );
http://manojc.com
"Anamitra" <[email protected]> wrote in message
news:[email protected]...
Hi Bruce
I think the wsdl that you sent was very near to what I was looking
for.
But I
would try to make the requirement more clear: The points below
are
listed
in order
of priority:
1>First and foremost I am looking to create a Webservice such
that
it
exposes
a method which takes in a java.lang.String
public void test(String poXML)
But in the WSDL I want to show the user the schema definition
for
the
po
XML.
And would desire that the Webservices framework do the schema
validation
of the
incoming xml. But I dont thing this works as the wsdl generated
always
says the
type is "xsd:string". So I started looking into the 2nd option:
2>Create a doc/literal type service and expose that method as:
public void test(POXMLBean poXML)
This generated the reqd schema in the wsdl level but the client
is
being
forced
to use the POXMLBean to invoke the method. I would ideally want
the
client
to
just deal with the XML of the pobean as described in the generated
schema
definition.
For example the client using JAXRPC should be say doing the code
like
this:
String poXML = "<po> <order>000</order> </po>"
call.invoke(poXML").
Is this possible? I am not able to do this. My primary important
thing
is
that
the client has to deal with XML and not with anything else. The
client
shouldnot
have to deal with POXMLBean. This is what I am trying to acheive
and
not
able
to.
3> So that leaves me to the last option which is not that good:
ie I keep my original approach:
public void test(String poXML)
and somehow via wsdl:documentation say that the schema for this
poXML
is
this...
But I cannot change the type in the parameter poXML from xs:string
right?
Bottom line is there any way for the client to pass string/byte[]
xml
data
to
the webservice - but still be able to look into the WSDL and
see
what
the
reqd
XML structure should be? I thought doc/literal should do it -
but
using
weblogic
I am not able to do it. Can u help me with this pls.
thanks
Anamitra
Bruce Stephens <[email protected]> wrote:
Hello,
See what you think of this example of using import. It seems
to
describe your exact use case:
http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Retail
er.wsdl
(Disclaimer, anyone could have found this via public UDDI.)
The issue I believe that Anamitra sees is the gap between the
runtime
and the toolset.
Bruce
Anamitra wrote:
Hi Karthik
I am a bit confused as to what you mean when u say "import".
The
generated
webservices.xml
contains a <types> and a <type-mapping> element. I suppose
u r
asking
me to put
the xsd definition in the <types> section - right?
If the method is like this:
public String doit(String msg)
How do I attach the <xs:string> type "msg" to the actual
XML
schema
that I just
imported?
I dont know whether I am asking stupid questions or not -
but I
would
have ideall
liked to see my "msg" of type say "PurchaseOrder" which is
the
schema
that I imported.
And the external client should just be able to give the
"PurchaseOrder"
xml to
the Webservice and invoke the "doit" method.
Am I making any sense?
thanks
Anamitra
"Karthik V" <[email protected]> wrote:
I doubt if servicegen has any option for doing it automatically.
You should manually edit web-services.xml and import the
xsd.
/k
"Anamitra" <[email protected]> wrote in message
news:[email protected]...
Hi Karthik/Bruce
Can you pls explain to me how using weblogic tools
[servicegen]
one
can
include
the xsd pointers in the WSDL file.
We have a similar kind of requirement where we have
webservices
which
take
in
string [XML data] as a parameter and the WSDL only shows
method
parameter
types
as xsd:string - but we want to show something like a schema
definition.
So
if
there is anyway to put the schema definition in the WSDL
- pls
let
me know
that
would be very very helpful.
thanks
Anamitra
"Karthik V" <[email protected]> wrote:
Bruce,
Thanks for your response. That helped.
I have another question for you.
I know this would sound strange.
But my requirement is to expose a session bean method
that
could
take
different xml inputs.
For example:
TestBean exposes testMethod(String xmlstr)
xmlstr could be of schema xmlSchema1.xsd
or xmlstr could be of schema xmlSchema2.xsd
In future it could also represent xmlSchema3.xsd... and
so
on.
What is the right approach in this scenario?
I was thinking to create a different web service fordifferent
xsd.
Say, webservice1 imports xmlSchema1.xsd, webservice2 imports
xmlSchema2.xsd...
Un fortunately due to some design restrictions, I cannot
create
different
methods in my session bean like testMethod1, testMethod2....
Is there any other better way to do this in one web service?
Thanks in advance for any suggestions. And excuse my unusual
requirement.
/k
"Bruce Stephens" <[email protected]> wrote in message
news:[email protected]...
Hello,
Personally I like to see everything in one place, i.e.
in
the
WSDL,
however everyone else :-) uses the import. The
SOAPBuilders
round
3
have several tests showing imports. Also WSI Basic
profile
has
some
helpful guidelines on using import:
http://www.ws-i.org/Profiles/Basic/2003-03/BasicProfile-1.0-BdAD.html
HTHs,
Bruce
Karthik V wrote:
Hi,
I have created few doc style web services, with a
very
complex
xml
input
and
output. (1200 lines of xsd)
Input and out put are xml as java.lang.String.
What would be the best practice to represent this
in the
WSDL?
Just
a
reference to the xsd file is good, or should it be
completely
presented
within the WSDL? I'm not sure how my wsdl should look
like...
I will be using the same schema (xsd) in other web
services
too
to
perform
different functions.
Any suggestions would be greatly appreciated.
Thanks
/k -
How to describe algorithms in business with UML
Hi,
I need to describe business requirement of a small billing system with UML, however, there is a lot of algorithms in the business requirement, I don't know I should use which diagrams to describe these algorithm. Is there anyone can help me?
Thanks
chengbalgorithms are most of the time modeled best in
activity diagrams (very similiar to flowchart)
state diagrams can be helpfull as well.
regards
Spieler -
Not able to run validation using validation.xml & validator-rules.xml
Hello Friends,
I am not able to run validation using validation.xml & validator-rules.xml.
Entire code in running prefectly but no error messages are prompted.
Following is my code:
File Name : struts-config.xml
<struts-config>
<!-- Form Beans Configuration -->
<form-beans>
<form-bean name="searchForm"
type="com.solversa.SearchForm"/>
</form-beans>
<!-- Global Forwards Configuration -->
<global-forwards>
<forward name="search" path="/search.jsp"/>
</global-forwards>
<!-- Action Mappings Configuration -->
<action-mappings>
<action path="/search"
type="com.solversa.SearchAction"
name="searchForm"
scope="request"
validate="true"
input="/search.jsp">
</action>
</action-mappings>
<!-- Message Resources Configuration -->
<message-resources
parameter="ApplicationResources"/>
<!-- Validator Configuration -->
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames"
value="/WEB-INF/validator-rules.xml,
/WEB-INF/validation.xml"/>
</plug-in>
</struts-config>
<br> File Name : <b> validation.xml </b>
<form-validation>
<formset>
<form name="searchForm">
<field property="name" depends="minlength">
<arg key="label.search.name" position = "0"/>
<arg1 name="minlength" key="${var:minlength}" resource="false"/>
<var>
<var-name>minlength</var-name>
<var-value>5</var-value>
</var>
</field>
<field property="ssNum" depends="mask">
<arg0 key="label.search.ssNum"/>
<var>
<var-name>mask</var-name>
<var-value>^\d{3}-\d{2}-\d{4}$</var-value>
</var>
</field>
</form>
</formset>
</form-validation>
<br> File Name : <b> SearchForm.java </b>
package com.jamesholmes.minihr;
import java.util.List;
import org.apache.struts.validator.ValidatorForm;
public class SearchForm extends ValidatorForm
private String name = null;
private String ssNum = null;
private List results = null;
public void setName(String name) {
this.name = name;
public String getName() {
return name;
public void setSsNum(String ssNum) {
this.ssNum = ssNum;
public String getSsNum() {
return ssNum;
public void setResults(List results) {
this.results = results;
public List getResults() {
return results;
<br> File Name : <b> SearchAction.java </b>
package com.jamesholmes.minihr;
import java.util.ArrayList;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public final class SearchAction extends Action
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception
EmployeeSearchService service = new EmployeeSearchService();
ArrayList results;
SearchForm searchForm = (SearchForm) form;
// Perform employee search based on what criteria was entered.
String name = searchForm.getName();
if (name != null && name.trim().length() > 0) {
results = service.searchByName(name);
} else {
results = service.searchBySsNum(searchForm.getSsNum().trim());
// Place search results in SearchForm for access by JSP.
searchForm.setResults(results);
// Forward control to this Action's input page.
return mapping.getInputForward();
<br> File Name : <b> EmployeeSearchService.java </b>
package com.jamesholmes.minihr;
import java.util.ArrayList;
public class EmployeeSearchService
/* Hard-coded sample data. Normally this would come from a real data
source such as a database. */
private static Employee[] employees =
new Employee("Bob Davidson", "123-45-6789"),
new Employee("Mary Williams", "987-65-4321"),
new Employee("Jim Smith", "111-11-1111"),
new Employee("Beverly Harris", "222-22-2222"),
new Employee("Thomas Frank", "333-33-3333"),
new Employee("Jim Davidson", "444-44-4444")
// Search for employees by name.
public ArrayList searchByName(String name) {
ArrayList resultList = new ArrayList();
for (int i = 0; i < employees.length; i++) {
if (employees.getName().toUpperCase().indexOf(name.toUpperCase()) != -1) {
resultList.add(employees[i]);
return resultList;
// Search for employee by social security number.
public ArrayList searchBySsNum(String ssNum) {
ArrayList resultList = new ArrayList();
for (int i = 0; i < employees.length; i++) {
if (employees[i].getSsNum().equals(ssNum)) {
resultList.add(employees[i]);
return resultList;
<br> File Name : <b> Employee.java </b>
package com.solversa;
public class Employee
private String name;
private String ssNum;
public Employee(String name, String ssNum) {
this.name = name;
this.ssNum = ssNum;
public void setName(String name) {
this.name = name;
public String getName() {
return name;
public void setSsNum(String ssNum) {
this.ssNum = ssNum;
public String getSsNum() {
return ssNum;
Pls help me out.
Not able to prompt errors.Hello Friends,
I am not able to run validation using
validation.xml & validator-rules.xml.
Entire code in running prefectly but no error
messages are prompted.
Following is my code:
File Name : struts-config.xml
<struts-config>
<!-- Form Beans Configuration -->
<form-beans>
<form-bean name="searchForm"
type="com.solversa.SearchForm"/>
ans>
<!-- Global Forwards Configuration -->
<global-forwards>
<forward name="search" path="/search.jsp"/>
global-forwards>
<!-- Action Mappings Configuration -->
<action-mappings>
<action path="/search"
type="com.solversa.SearchAction"
name="searchForm"
scope="request"
validate="true"
input="/search.jsp">
tion>
</action-mappings>
<!-- Message Resources Configuration -->
<message-resources
parameter="ApplicationResources"/>
<!-- Validator Configuration -->
<plug-in
className="org.apache.struts.validator.ValidatorPlugI
">
<set-property property="pathnames"
value="/WEB-INF/validator-rules.xml,
/WEB-INF/validation.xml"/>
>
</struts-config>
<br> File Name : <b> validation.xml </b>
<form-validation>
<formset>
<form name="searchForm">
<field property="name" depends="minlength">
<arg key="label.search.name" position = "0"/>
<arg1 name="minlength" key="${var:minlength}"
resource="false"/>
<var>
<var-name>minlength</var-name>
<var-value>5</var-value>
</var>
</field>
<field property="ssNum" depends="mask">
<arg0 key="label.search.ssNum"/>
<var>
<var-name>mask</var-name>
<var-value>^\d{3}-\d{2}-\d{4}$</var-value>
</var>
</field>
/form>
</formset>
form-validation>
<br> File Name : <b> SearchForm.java </b>
package com.jamesholmes.minihr;
import java.util.List;
import org.apache.struts.validator.ValidatorForm;
public class SearchForm extends ValidatorForm
private String name = null;
private String ssNum = null;
private List results = null;
public void setName(String name) {
this.name = name;
public String getName() {
return name;
public void setSsNum(String ssNum) {
this.ssNum = ssNum;
public String getSsNum() {
return ssNum;
public void setResults(List results) {
this.results = results;
public List getResults() {
return results;
<br> File Name : <b> SearchAction.java </b>
package com.jamesholmes.minihr;
import java.util.ArrayList;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public final class SearchAction extends Action
public ActionForward execute(ActionMapping
mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception
EmployeeSearchService service = new
EmployeeSearchService();
ArrayList results;
SearchForm searchForm = (SearchForm) form;
// Perform employee search based on what criteria
was entered.
String name = searchForm.getName();
if (name != null && name.trim().length() > 0) {
results = service.searchByName(name);
else {
results =
service.searchBySsNum(searchForm.getSsNum().trim());
// Place search results in SearchForm for access
by JSP.
searchForm.setResults(results);
// Forward control to this Action's input page.
return mapping.getInputForward();
<br> File Name : <b> EmployeeSearchService.java </b>
package com.jamesholmes.minihr;
import java.util.ArrayList;
public class EmployeeSearchService
/* Hard-coded sample data. Normally this would come
from a real data
source such as a database. */
ivate static Employee[] employees =
new Employee("Bob Davidson", "123-45-6789"),
new Employee("Mary Williams", "987-65-4321"),
new Employee("Jim Smith", "111-11-1111"),
new Employee("Beverly Harris", "222-22-2222"),
new Employee("Thomas Frank", "333-33-3333"),
new Employee("Jim Davidson", "444-44-4444")
// Search for employees by name.
public ArrayList searchByName(String name) {
ArrayList resultList = new ArrayList();
for (int i = 0; i < employees.length; i++) {
if
(employees.getName().toUpperCase().indexOf(name.toU
pperCase()) != -1) {
resultList.add(employees[i]);
return resultList;
// Search for employee by social security number.
public ArrayList searchBySsNum(String ssNum) {
ArrayList resultList = new ArrayList();
for (int i = 0; i < employees.length; i++) {
if (employees[i].getSsNum().equals(ssNum)) {
resultList.add(employees[i]);
return resultList;
<br> File Name : <b> Employee.java </b>
package com.solversa;
public class Employee
private String name;
private String ssNum;
public Employee(String name, String ssNum) {
this.name = name;
this.ssNum = ssNum;
public void setName(String name) {
this.name = name;
public String getName() {
return name;
public void setSsNum(String ssNum) {
this.ssNum = ssNum;
public String getSsNum() {
return ssNum;
Pls help me out.
Not able to prompt errors.
Hi,
Your error message are not displaying because u does not made Message-Resoucrce property file (Resource Bundle) when you make it .
give it entry in
struts-config.xml
<message-resources parameter="ApplicationResources" />
and
define key and corresponding error message to key in this ApplicationResources i.e
#Error Resources
label.search.ssNum=Plz Enter correct ssNum -
What is the simplest way to get a xml-file from 10g R2 -database ?
Hi,
I'm new in xml, there are so many tools to work with xml:
what is the simplest way to get a xml-file from 10g R2 -database ?
I have : 10g R2 and a xsd.file to describe the xml-structure
thank you
NorbertThere is no automatic way to generate XML documents from an arbitary set of relational tables using the information contained in an XML Schema. Typically the easiest way to generate XML from relational data is to use the SQL/XML operators (XMLElement, XMLAGG, XMLAttribtues, XMLForest). There are many examples of using these operators in the forums You can validate the generated XML against the XML Schema by registering the XML Schema with XML DB and then using the XMLType.SchemaValidate() method
-
How to generate an XML file from SSIS (based on an XSD)?
I have an XSD that describes an XML format. I also have a sample XML file as well from the XSD. I am trying to understand SSIS's capability to generate the XML file in an ETL process. I would need to create the XML file based on the XSD that
I have. It is safe to assume that all the data elements are in the DB that I am incorporating in the ETL and it is also safe to assume that the data in the XML may be from multiple different tables (so massaging is probably necessary).
Would this be a job for C#/VB or can I do this through an SSIS process/task? Please help me understand my options. Thanks.Dear All,
Indeed the post by RamJaddu did not answer the question. I am having the same issue: I have been provided an .xsd file which contains a data schema, and I have all of the necessary
data in a .mdf file in order to create the required .xml file. Having queried SQL Server and received my data in "myDataSet" I can use C# to create the .xml ignoring the schema using
string strSchemaFile = @"F:\Documents\UserCost\VictorianDataCollection\VCDCSchema_v2.xsd";
string strXmlFile = "testXmlExport.xml";
myDataSet.WriteXmlSchema(strSchemaFile);
myDataSet.WriteXml(strXmlFile, XmlWriteMode.IgnoreSchema);
but how do I export the .xml file so that is conforms with the .xsd format?
If any of you have worked this out the answer would be most appreciated.
All the best,
Nick
"Everything should be made as simple as possible, but not simpler" - Einstein -
Logon failed when connecting to XML data source over HTTP
I am trying to create a report using the standard report creation wizard:
1) new, standard report
2) create new connection
3) xml and web services
4) xml data source
When using the sample from the SAP site, it works fine:
http://resources.businessobjects.com/support/downloads/samples/cr/customer_db/customer.xml
I have an HTTP source that generates XML. I have a schema that describes this XML. If I save the XML to a local file it works fine as a data source with the schema. However, when I try to access the same data via HTTP, I get the following error:
Logon failed.
Details: Cannot open file
Server returned HTTP response code: 401 for URL: http://localhost:8004/report.xqy?Validate%20XML=0&Use%20WS-Security%20Config%20File=&WS-Security%20File%20Location
However, if I enter that URL in a browser it works fine. And even if I disable security on the HTTP source, it produces the same error.
Does the URL for the HTTP data source have to conform to some specific pattern? For example, must the URL end in .xml?
KellySorry Brian,
This is a public forum, if no one can help you do have the option to purchase a support case:
http://store.businessobjects.com/store/bobjamer/DisplayProductByTypePage&parentCategoryID=&categoryID=11522300?resid=-Z5tUwoHAiwAAA8@NLgAAAAS&rests=1254701640551
Thank you
Don -
How to extract the nodes of any given XML document ???
Hello,
Greetings! It is an interesting forum.
A Snippet of XML Schema PurchaseOrder.xsd as given in user guide is as follows
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xdb="http://xmlns.oracle.com/xdb"
version="1.0" xdb:storeVarrayAsTable="true">
<xs:element name="PurchaseOrder" type="PurchaseOrderType"
xdb:defaultTable="PURCHASEORDER"/>
<xs:complexType name="PurchaseOrderType" xdb:SQLType="PURCHASEORDER_T">
<xs:sequence>
<xs:element name="Reference" type="ReferenceType" minOccurs="1"
xdb:SQLName="REFERENCE"/>
<xs:element name="Actions" type="ActionsType" xdb:SQLName="ACTIONS"/>
<xs:element name="Reject" type="RejectionType" minOccurs="0"
xdb:SQLName="REJECTION"/>
<xs:element name="Requestor" type="RequestorType"
xdb:SQLName="REQUESTOR"/>
<xs:element name="User" type="UserType" minOccurs="1"
xdb:SQLName="USERID"/>
<xs:element name="CostCenter" type="CostCenterType"
xdb:SQLName="COST_CENTER"/>
<xs:element name="ShippingInstructions" type="ShippingInstructionsType"
xdb:SQLName="SHIPPING_INSTRUCTIONS"/>
<xs:element name="SpecialInstructions" type="SpecialInstructionsType"
xdb:SQLName="SPECIAL_INSTRUCTIONS"/>
<xs:element name="LineItems" type="LineItemsType"
xdb:SQLName="LINEITEMS"/>
</xs:sequence>
</xs:complexType>
full schema is available in url
http://download-west.oracle.com/docs/cd/B12037_01/appdev.101/b10790/xdb03usg.htm#BABBGIED
The views use XPath expressions and functions such as extractValue() to define the mapping between columns in the view and nodes in the XML document. The following view is created on purchase order schema.
Creating Relational Views On XML Content
CREATE OR REPLACE view PURCHASEORDER_MASTER_VIEW
(REFERENCE, REQUESTOR, USERID, COSTCENTER,
SHIP_TO_NAME,SHIP_TO_ADDRESS, SHIP_TO_PHONE,
INSTRUCTIONS)
AS
SELECT extractValue(value(p),'/PurchaseOrder/Reference'),
extractValue(value(p),'/PurchaseOrder/Requestor'),
extractValue(value(p),'/PurchaseOrder/User'),
extractValue(value(p),'/PurchaseOrder/CostCenter'),
extractValue(value(p),'/PurchaseOrder/ShippingInstructions/name'),
extractValue(value(p),'/PurchaseOrder/ShippingInstructions/address'),
extractValue(value(p),'/PurchaseOrder/ShippingInstructions/telephone'),
extractValue(value(p),'/PurchaseOrder/SpecialInstructions')
FROM PURCHASEORDER p;
When we register XML Schema in Oracle 9i, the schema elements of XML documents are stored as XMLType, that is, stored using object-relational storage techniques.
For a small schema, we could build the above view manually, but for large/nested schema, if we have query to build XML documents node list, it will help us to build Relational Views on XML Content.
How do we extract the nodes of any given XML document through O-R structures or XML DB using XML DB functions?
Any alternate thoughts are welcome.
I appreciate your help.
Regards
RamRam
Once again, I do not think that you can solve the problem you are trying to solve. Fundamentally you need to determine for a given element of a given complex type what are it's child elements. For each of those elements you then need to find out whether or not it in turn has child elements...
Then you have to think about elements defined as ref rather than type, elements that are substituteable, and the rest of possibilities that can be described with XML Schema.
If you can solve that problem you're a better man than I as the saying goes. Anyone rather than give you a fish, I'll show you how to at least put a worm on the hook..
The following query gets the names of the elements inside a each of the global complex types
Good luck, if you come up with a query to do this I'd love to see it...
SQL> column COMPLEX_TYPE format A32
SQL> column ELEMENT format A32
SQL> --
SQL> select extractvalue
2 (
3 value(ct),
4 '/xs:complexType/@name',
5 'xmlns:xs="http://www.w3.org/2001/XMLSchema"'
6 ) COMPLEX_TYPE,
7 extractvalue
8 (
9 value(et),
10 '/xs:element/@name',
11 'xmlns:xs="http://www.w3.org/2001/XMLSchema"'
12 ) ELEMENT
13 from resource_view,
14 table
15 (
16 xmlsequence
17 (
18 extract
19 (
20 res,
21 '/r:Resource/r:Contents/xs:schema/xs:complexType',
22 'xmlns:r="http://xmlns.oracle.com/xdb/XDBResource.xsd"
23 xmlns:xs="http://www.w3.org/2001/XMLSchema"')
24 )
25 ) ct,
26 table
27 (
28 xmlsequence
29 (
30 extract
31 (
32 value(ct),
33 '/xs:complexType/*/xs:element',
34 'xmlns:xs="http://www.w3.org/2001/XMLSchema"'
35 )
36 )
37 ) et
38 where equals_path(res,'/home/SCOTT/poSource/xsd/purchaseOrder.xsd') = 1
39 /
COMPLEX_TYPE ELEMENT
-------------------------------- ------------------------PurchaseOrderType Reference
PurchaseOrderType Actions
PurchaseOrderType Reject
PurchaseOrderType Requestor
PurchaseOrderType User
PurchaseOrderType CostCenter
PurchaseOrderType ShippingInstructions
PurchaseOrderType SpecialInstructions
PurchaseOrderType LineItems
LineItemsType LineItem
LineItemType Description
LineItemType Part
ActionsType Action
RejectionType User
RejectionType Date
RejectionType Comments
ShippingInstructionsType name
ShippingInstructionsType address
ShippingInstructionsType telephone
19 rows selected. -
when i have given a request for http://localhost:7001/Finance/loginForm.jsp
i am getting the following error:
javax.servlet.jsp.JspException: No getter method for property Dbname of bean org.apache.struts.taglib.html.BEAN
please tell me wat might be the reason for this
thanking youi have defined getters method in the formbean class which extends ActionFrom
This is code plz check it
package com.innova.reports.forms;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.taglib.html.*;
public class LoginFormBean extends ActionForm {
// --------------------------------------------------------- Instance Variables
/** Pwd property */
private String Pwd;
/** Uname property */
private String Uname;
/** Server property */
private String Server;
/** Dbname property */
private String Dbname;
// --------------------------------------------------------- Methods
* Method validate
* @param mapping
* @param request
* @return ActionErrors
public ActionErrors validate(
ActionMapping mapping,
HttpServletRequest request) {
// TODO Auto-generated method stub
return null;
* Method reset
* @param mapping
* @param request
public void reset(ActionMapping mapping, HttpServletRequest request) {
// TODO Auto-generated method stub
* Method validate
* @param mapping
* @param request
* @return ActionErrors
* Returns the Pwd.
* @return String
public String getPwd() {
return Pwd;
* Set the Pwd.
* @param Pwd The Pwd to set
public void setPwd(String Pwd) {
this.Pwd = Pwd;
* Returns the Uname.
* @return String
public String getUname() {
return Uname;
* Set the Uname.
* @param Uname The Uname to set
public void setUname(String Uname) {
this.Uname = Uname;
* Returns the Server.
* @return String
public String getServer() {
return Server;
* Set the Server.
* @param Server The Server to set
public void setServer(String Server) {
this.Server = Server;
* Returns the Dbname.
* @return String
public String getDbname() {
return Dbname;
* Set the Dbname.
* @param Dbname The Dbname to set
public void setDbname(String Dbname) {
this.Dbname = Dbname;
struts-config.xml
<struts-config>
<data-sources />
<form-beans >
<form-bean name="UserLoginForm" type="com.innova.reports.forms.LoginFormBean" />
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings >
<action
attribute="UserLoginForm"
input="/loginForm.jsp"
name="UserLoginForm"
path="/userLoginForm"
scope="request"
type="com.innova.reports.actions.LoginAction" />
</action-mappings>
<message-resources parameter="com.innova.reports.utils.ApplicationResources" />
</struts-config>
PLease go through i ahev given it but still its giving the same problem -
XML PARASE and insert /update in corresponding tables
Hi,
I have a XML in which master details tables 3 tables.I want to separate element and insert/update in corresponding tables dynamically.
Table invlovled in A,B,C
Thanks
ReenaReena
The easiest way to do this is along the following lines..
(1) register an XML Schema that describes the XML you wish to process with theh database.
(2). create a relational view for the top level elements and for each repeating element (element where maxOccurs > 1 in the XML Schema)
(3) Use 'insert as select' or other SQL type processing to update your relational tables from the contents of the view
It is normally recommended that you add the following annotations to the XML Schema before registering it with the database
(1) At the schema level set xdb:storeVarrayAsTable="true".
(2) At the complexType level set xdb:maintainDOM="fasle".
If you search the forum you will find a lot of examples of creating relational views of XML content stored in the XML database. Typically these examples will include key words like 'create or replace view' and 'table(xmlsequence(extract' or 'xmltable'.
Hope this helps...
-Mark -
Need to understand Struts Framework
Greetings everyone,
I am trying to understand how the entire Struts Framework works.
If I am running tomcat, is copying and pasting the WAR file into webapps directory the only way to install struts?
Since I am new to struts and was trying to understand how it works from ground up, I tried creating the neccessary files needed and copied the struts.jar into my web app's WEB-INF\lib folder.
Unfortunately, I kept on hitting errors.
Here is my app directory structure
1) MyApp/
- index.jsp
- displayname.jsp
2) WEB-INF/
- struts-config.xml
- struts-html.tld
- web.xml
3) WEB-INF/classes/example/
- NameAction.class
- NameForm.class
4) WEB-INF/lib/
- servlet-api.jar
- struts.jar
I am getting this error:
HTTP Status 404 - /StrutsActionForm/index.jsp
type Status report
message /StrutsActionForm/index.jsp
description The requested resource (/StrutsActionForm/index.jsp) is not available.
Apache Tomcat/5.5.20
I know it sounds silly but that's the only way I can truly understand the entire struts framework.
Your reply will be much appreciated.If you specify the appBase of your application in Tomcat's server.xml ,
or define a <Context>.xml and point the docBase to where ever your code's main directory is, you won't hae to create a WAR file and place it under WEB-INF each time you make any change.
This saves a lot of time and effort in the development envionment, especially when you make a change to JSP pages - you can just refresh the browser to see the changes instead of creating a WAR file just to see changes in JSPs.
Create a WAR file only when you are deploying your application to production / live website - a WAR file is not necessary in dev environment.
With the above set-up your project can be located outside and independent of Tomcat, as long as the appBase or docBase are pointing to the location of your project.
For tomcat related questions join the Tomcat User Mailing List
and for struts question Struts User Mailing List -
Hi guy,
just to share my first experience with a very simple struts application integration (luckily)
I've transformed my webapp in a module as stated in http://edocs.bea.com/wlp/docs100/portals/integrate.html#wp1005659
I've got to say that this was a legacy application developed by someone else in the company.
I've found that if you had in your struts-config path action like /somename/actionname the engine get confused and give you an error
There is no Struts module configuration registered for /modulename/somename/actionname.do (module path /modulename/actionnameSo it looks like he mix the path with the module name.
I've changed action path (lukyly my webapp was really tiny)
Then I've also tried to manually add my module xml (struts-config) to web.xml, I've copied it under classes and I've added to web.xml
<init-param>
<param-name>config/modulename</param-name>
<param-value>/config-modulename.xml</param-value>
</init-param>Well it gimme an AssertError
java.lang.AssertionError: modulename
at org.apache.beehive.netui.pageflow.StrutsModule.(StrutsModule.java:42)
at com.bea.portlet.adapter.scopedcontent.StrutsStubImpl.initActionResolver(StrutsStubImpl.java:166)
at com.bea.portlet.adapter.scopedcontent.ScopedContentCommonSupport.renderInternal(ScopedContentCommonSupport.java:212)
at com.bea.portlet.adapter.scopedcontent.StrutsStubImpl.render(StrutsStubImpl.java:107)
at com.bea.netuix.servlets.controls.content.NetuiContent.preRender(NetuiContent.java:290)
at com.bea.netuix.nf.ControlLifecycle$6.visit(ControlLifecycle.java:426)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursivePreRender(ControlTreeWalker.java:712)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursivePreRender(ControlTreeWalker.java:724)
...I'd a look at the beehive source and there's this assert in the code that expect a name startWith '/' (so for some reason the engine take the name but it miss the '/')
Well that's it, it takes a while to me to find out this problems so I hope I can save someone time.
And bytheway if some of you solved this issues can be interesting to know (maybe I missed something in my configuration?)
ByeHi Shanta,
I have started writing a struts 1.1 based module and expose it as a wsrp portlet. Can you pls help me where and how to start on this?
Thanks,
Ravi
Maybe you are looking for
-
How can I delete an app that is not on my desktop, thanks.
My account has been hacked and an app purchased, I now wish to delete this but it does not show on my desktop. Any help appreciated.
-
Music unlimitted on nokia lumia 620
Am not getting the unlimited music download service on my replaced lumia 620.is there anything i can do ??
-
Step by step Apple ProRes 422 PROXY workflow, please.
Anyone could help me find a complete video or not, "Step by step Apple ProRes 422 PROXY workflow", please. I can´t find any. I´ve never used Apple ProRes 422 PROXY and I´ve all the doubts on how to use it, final quality, etc, etc. My original files a
-
I have successfully partioned 32GB of space and installed Win XP Pro on my Mac Pro running Leopard. When I start the windows setup it goes to the blue windows memory dump screen as soon as it gets to installing devices. Any suggestions on what may ca
-
Why is my shutter stuck on ipad
I just received my Ipad2 yesterday - and my camera is already not working i have tried to reset back to orginal settings like the post says but still when i click on my camera all that happens is my shutter sits there and will not open. HELP!!!