XMLDirectMapping procedureName = new XMLDirectMapping();
procedureName.setAttributeName("name");
procedureName.setXPath("name/text()");
descriptor.addMapping(procedureName);
XMLCompositeCollectionMapping inArguments = new XMLCompositeCollectionMapping();
inArguments.setAttributeName("inArguments");
inArguments.setXPath("in-argument");
inArguments.setReferenceClass(ProcedureArgument.class);
descriptor.addMapping(inArguments);
XMLCompositeCollectionMapping inOutArguments = new XMLCompositeCollectionMapping();
inOutArguments.setAttributeName("inOutArguments");
inOutArguments.setXPath("inout-argument");
inOutArguments.setReferenceClass(ProcedureOutputArgument.class);
descriptor.addMapping(inOutArguments);
XMLCompositeCollectionMapping outArguments = new XMLCompositeCollectionMapping();
outArguments.setAttributeName("outArguments");
outArguments.setXPath("out-argument");
outArguments.setReferenceClass(ProcedureOutputArgument.class);
descriptor.addMapping(outArguments);
return descriptor;
}