Hi all --
I stumbled across a project that claims to generate sample XML files from an XSD specification.
I downloaded the jlibs zip file, extracted it and copied all the JAR files from the lib folder into LISA_HOME/hotDeploy.
I then hacked the programmatic sample a little to get it working in a beanshell step in DevTest Workstation:
//beanshell needs these two imports
projRoot = testExec.getStateValue("LISA_PROJ_ROOT");
myXSD = projRoot + "/data/xsds/myXSD.xsd”; // This is where my XSD file lives
myRootElement = “rootElement"; //Change this to the rootElement inside the XSD file that I want to use
XSModel xsModel = new XSParser().parse(myXSD);
//Create an instanceof XSInstance and configure various options
XSInstance xsInstance = new XSInstance();
xsInstance.minimumElementsGenerated = 2;
xsInstance.maximumElementsGenerated = 4;
xsInstance.generateOptionalElements = Boolean.TRUE; // null means random
//now genreate the sample xml as follows:
QName rootElement = new QName("", myRootElement);
XMLDocument sampleXml = new XMLDocument(new StreamResult(System.out), true, 4, null);
xsInstance.generate(xsModel, rootElement, sampleXml);
If you open the “System Messages” panel at the bottom of the Workstation window (or tail the workstation.log file), you will see a sample XML message generated.
This has the standard problem when generating sample documents that we have no idea which elements need to be combined for a business transaction, so the generated sample is probably useless … but DevTest performs the action fine
Therefore, I haven't put any time into writing the XML document into a string, or saving it as a file. If you want to use it, you probably want to do that by changing StreamResult.
If anyone finds a real use for this, where they can identify how to make actual usable sample XML messages from XSD specifications, please respond here.