The Anvil Podcast: CamProcessor

Rich: I recently spoke with David Webber, who works on the CamProcessor project. Although the CamProcessor website describes it as an “XML editor, validator, and designer”, it does a lot more than that, as you’ll hear in David’s explanation of what he does on the project, and how the project got rolling.

If the embedded audio player below doesn’t work, you can download the audio in mp3 and ogg formats.

And it seems worthwhile to remind you that the music used in the podcast was generously shared with us by the Arianne project.

You can subscribe to this, and future podcasts, in iTunes or elsewhere, at, and it’s also listed in the iTunes store The music at the beginning and end of this recording is used by the generous permission of the Arianne project.

screen-shot-2012-01-11-at-125643-pm David: The problem space is one that’s been with us for a long while. I got started into this in the old days with EDI, when I first came to America, so I’ve been looking at this for over 20 years. I was one of the first to see the connection between XML and what the EDI world was doing, and we started the XML/EDI work, and that led to what we have today, with all these XML exchanges, schema, XPath, XSLT, and all these other related technologies. So in the middle of this I realized that we still weren’t answering the mail in terms of what business information exchanges need.

There’s an awful lot in XML to do with documents, graphics, web media, all that other stuff. Business transactional exchanges are somewhat of a world to themselves, in terms of … you have these very high volume transactions, you have hundreds, and potentially thousands of transaction partners, and so you have to align, and get the interoperability right.

I’ve done an awful lot of standards work both in the EDI world, and then more lately through OASIS, and in industry groups with XML. So the need to have an answer for these business communities is really what we’re focused on.

And we like solving tough problems. Everybody does. You go out there and somebody says, you can’t process a schema with XSLT and produces XML, so of course, that was the challenge.

It took us about two months to get that working and that really opened up Pandora’s box. So now we can read in any existing schema, create the template … so that’s the bottom-up approach. People didn’t have to reinvent their schemas. They could just drop them into the tool, and then boom. Now you can run interesting reports, you can diagnose what’s in the schema, find bugs. You can rewrite the schema as kind of a flattened schema, because some of these collections are really complex and will cause issues in middleware. You can create mind map models which are great for people to look at and understand what’s going on. And you can create dictionaries, spreadsheets. You can compare what’s in the schema to a dictionary, all all these other things we started adding.

You can create test cases, so you don’t have to do that by hand.

Because we have the logic in the template, we can do a lot better job of creating XML test cases than, say, an Oxygen, or an XML Spy, or a generic editor.


So that then led into us being able to create test suites for you, so now we have that. You can download the package that we have, install Ant on your system. Now you can run hundreds of test cases through the validation engine at the click of a button.

We’ve really created a very rich environment for people developing XML exchanges. What happened was that were … I particularly was involved with a US government project. I found out about this thing called NIEM – National Information Exchange Model – that the government’s using. So we put a lot of features into the toolkit to support that approach. And that’s really helped all aspects as well, not just the NIEM, but it’s very far horizontal, too. You can apply these validations and checks to your regular work – it doesn’t have to in NIEM to be really helpful.

So, stupid things like, being able to spell check the XML element names within the schema. We can do that for you. Checking, if you said it was a date, that it has a date definition on it. Consistency things like that.

Then Oracle came along and said, we really like this. We have a lot of customers that want to do NIEM, and we want to help. So they took on sponsoring the project, and provided developer resources, and that’s allowed us to really up the ante now in terms of what we’re doing. Now we have the drag and drop editor, so now you can take dictionary components from your domain, whether it be industry or government, and drag and drop those in, and actually build an exchange. That’s really powerful. SO now we’ve gone from bottom up all the way to top down.

Once you’ve built your exchange you can generate models, either mind map, or, now we’re doing UML. So now we have that piece as well.

So that’s where we are today.

We have a lot of plans for new stuff that we’re looking to do. We’re about do to a bug-fix release. We’re waiting on a few last-minute tweaks to XSLT That I need to do.

Which comes back to the other point you were making, which is that we’re very open on the project to people. Because this thing is based on XSLT and Java, it really is able to support other people contributing.

They look at, say, some of the reports that we have, or some of the handling we’re doing, and say, it would be really nice if we had this. Then they can just download some of the sample XSLT that we’ve got, follow that lead, and build out what they need.

And particularly if you’ve got a lot of XSLT skill, you’re going to really take to this quickly, I feel, because it’s so easy compared to working with the raw schemas.

Just to give an example, we were working with the folks at NIST, and they kept saying to me, we’d love to have models. We’d love to be able to do UML, and I kept saying, it’s too tough. And I had one of those aha! moments, because I picked up FreeMind. I saw their XML. A week later, Friday morning I woke up, and I thought, you know, I could write that with CAM and some XSLT. Four hours later, I had it working. Another eight hours on top of that, and we had all the Java integration working.

Now you can download Freemind, go into the editor, configure it in your preferences, hit the button, and it opens Freemind and puts your mind map up there of your mind map model. Then I got the UML working.

This is what it’s all about.

I think it’s so exciting now, because compared to 10 years ago, doing this stuff with tools – all kind of programming tools – is so much faster than it used to be. That’s the big thing that we’ve seen in the industry.

We have taken advantage of the SourceForge wiki media, and created a really nice page there for people. We’ve got an online eight minute video the folks at Oracle Media produced. If you want to know what’s it all about, and you’ve got eight minutes and can watch a vid, that’s going to just do it for you. I really recommend that people go to the site. We have it at, which goes to the site. You’ll see ‘Media’. Go down to ‘Tutorials’, and you’ll see the eight minute video.

Rich: Thank you so much for your time.

David: Cheers. Bye for now.

Tags: , , , ,

Comments are closed.