Khaled Noaman on XML Schema 1.1
developerWorks: This is a developerWorks podcast. I'm Scott Laningham, here with Khaled Noaman, a member of the XML Parser Development Team at the IBM Toronto Lab. He's here to talk about a developerWorks article series on XML Schema 1.1. Thanks for doing this, Khaled.
Noaman: Hi, Scott. I'm happy to be here.
developerWorks: Can you talk a bit about your particular focus with the team in Toronto? What have you been doing the last few years?
Noaman: So in the four or five years, I've been working on implementing XML Schema 1.0 in Apache Xerces-C++ parser. And in the last year, I moved to work on Apache Xerces-J parser and I'm currently leading the implementation of XML Schema 1.1 in Apache Xerces-J. And the current plan is to have a prototype by the end of this year and hopefully by the beginning of next year, we should a full implementation of XML Schema 1.1.
developerWorks: So what is new with this schema, this XML Schema 1.1, Khaled? What is key to know here for the user?
Noaman: So XML Schema 1.1 has added many new features, as well as many enhancements. I'm just going to touch base on two features I think are very important:
- One is called co-occurence constraints and this feature not only allow a schema also to constrain the content of anonymous attributes, but their existence as well. Now a schema also can restrict the content of anonymous attributes such as:
- the ability to restrict the appearance of a certain child element based on the value when it's viewed or
- having a total sum of child elements not exceeding a certain value or
- allowing a value of a child element to be valid based on the scope in which it is found.
- The second feature that is very important also is called versioning. It's basically you have a schema versioning where you actually try to have schema to be backwards-compatible with another schema version. So the idea here, that means that Schema 1.0 should remain valid under Schema 1.1.
The other kind of compatibility it's called forward compatibility and this is usually hard to achieve because this means that a valid instance of schema version N + 1 should also be valid on the schema version N. And this is usually hard to achieve because usually the author doesn't know what kind of changes or what kind of additions will be introduced in the next version.
So Schema 1.1 has added some extension points that a schema also can use to define schema that eventually can become compatible with future version of the schema.
developerWorks: Very good, Khaled. Now, we should mention that you co-authored this series with three other IBMers, right? I'm sure you want to mention them.
Noaman: Yes, so this is co-authored with Sandy Gao, Michael Glavassevich, and Neil Delima ... they all work at IBM Toronto Lab.
developerWorks: Can you give an overview of the series, I mean, we don't have a lot of time here, but just what will the reader learn? What were you all intending with the series?
Noaman: Yes, so basically right now we have, currently we have two parts that are published. [Editor: Actually, three parts, lucky readers.] One is just a given introduction to XML Schema 1.1, what's the new features. And we touch on some of the enhancements that were added to Schema 1.0, especially to data types. And in the second part, we discuss the co-occurence constraints. And in the third article, we go and touch base on some of the versioning rules that were introduced in Schema 1.1. And in the future version, we will talk more about versioning, as well as some of the new features added like all content models, as well as a more powerful data binding.
developerWorks: Wonderful. And the reader can find that article, at least the one that we're talking about for this week, which is Part 3 in that series, An Introduction to XML Schema 1.1. That will be, right, that's on the developerWorks home page this week. And the next article in the series will be coming when? Do you know yet, Khaled?
Noaman: It's probably going to be some time next year.
developerWorks: Okay. Khaled Noaman, a member of the XML Parser Development Team at the IBM Toronto Lab and co-author of a highlighted article this week on XML Schema 1.1. Thanks, Khaled.
Noaman: Thank you very much.
developerWorks: Also new on developerWorks this week:
- AIX tips for RHEL4 administrators;
- Get started with Informix Warehouse Feature Part 2— this one on extract, load, and transform your data in Design Studio;
- Practically Groovy: Swing Builder and the Twitter API, Part 2;
- Java Development 2.0: REST up with CouchDB and Groovy's RESTClient;
- A tiny cloud in Android;
Find it all at ibm.com/developerWorks, IBM's premiere technical resource for software developers with tools, code, and education on IBM products and open standards technology. I'm Scott Laningham. Talk to you next time.