The basic version of Saxon (non-schema-aware, open source) allows you to use the built-in schema types such as integer, string, boolean, date, etc. It also allows you to pass an XML document, which is treated as being unvalidated and untyped.
To use user-defined types such as part-number, invoice, etc, you need the schema-aware (commercial) version.
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference