Originally posted by: abhishek7969
This is how it can be achieved.
public void run(){
MSMapSource mapSource = MSMapSource.createMap(DefaultTargetLocation);
if(mapSource != null){
MSMap map = mapSource.addMap("TestMap");
MSCard inputCard = new MSCard();
inputCard.setCardName("Card1");
inputCard.setTreeLocationPath(getInputTreeLocation());
inputCard.setTypeName("Doc XSD");
inputCard.getAdapter().setDocumentVerification(DOC_VERIFICATION.WELLFORMED);
map.addInputCard(inputCard);
inputCard.getAdapter().setAdapterType(MSConstants.IO_TYPES.DATAFILE.customOrdinal());
inputCard.getAdapter().setFileName("C:\\Users\\Downloads\\MapFromSpecs\\CreateMapFromSpecs\\files/res.xml");
// set type
MSCard outputCard = new MSCard();
outputCard.setCardName("card2");
outputCard.setTreeLocationPath(getOutputTreeLocation());
outputCard.setTypeName("Doc XSD");
outputCard.getAdapter().setAdapterType(MSConstants.IO_TYPES.DATAFILE.customOrdinal());
outputCard.getAdapter().setFileName("Label.txt");
outputCard.getAdapter().setDocumentVerification(DOC_VERIFICATION.WELLFORMED);
map.addOutputCard(outputCard);
// add rules
MSCardType root = outputCard.getRoot();
Iterator<MSCardType> typeIter = root.getChildComponents();
while (typeIter.hasNext()) {
MSCardType nextType = (MSCardType) typeIter.next();
processType(nextType);
}
}
mapSource.save();
mapSource.close();
}
public void processType(MSCardType type) {
String nodeName = type.getTypePath();
if(nodeName.equals("XSD:Prolog:Decl")){
type.addRule("Decl Prolog:Card1");
}
if(nodeName.equals("XSD:Global")){
type.addRule("Global:Card1");
}
/*Iterator<MSCardType> typeIter = type.getChildComponents();
while (typeIter.hasNext()) {
MSCardType nextType = (MSCardType) typeIter.next();
processType(nextType);
}*/
}
#IBM-Websphere-Transformation-Extender#IBMSterlingTransformationExtender#DataExchange