Showing posts with label xml schema. Show all posts
Showing posts with label xml schema. Show all posts

Tuesday, June 1, 2010

Validation SOAP messages against XML Schema when references are used

I am confused about how schema validation of SOAP messages should be worked out in the presence of href links. The confusion is with regards to qualifiedness of elements. I asked about this in xml-dev. Hopefully, the experts there can suggest some help.

Thursday, November 1, 2007

mixed content in complex type definition

I asked on xmlschema-dev: http://xsd.stylusstudio.com/2007Nov/post00000.htm

And it seems that means that textual content is allowed (same as an unrestricted simple type...).


See response from Michael Kay: http://xsd.stylusstudio.com/2007Nov/post02000.htm

Wednesday, July 25, 2007

Representation of XML Schema built in simple types in Perl

Here's a post I sent to israel.pm's mailing list:

I'd like to propose a talk for one of the upcomming Perl
Mongers meetings (September before Yuval's talk or in
October):

Title:
"XML Schema built in simple types hierarchy representation as
a case study on how to refactore ad-hoc data structure
representation to Object Oriented Perl"

(an equally interesting talk, in my opinion can be with a
similar title except replacing Object Oriented Perl with
Higher Order Perl)


Abstract:
I'll briefly introduce the XML Schema built in simple types
as described in XML Schema Part 2: Datatypes Second Edition
W3C Recommendation 28 October 2004, section 3 [1]
.
Then I'll present an ad-hoc hashes-of-hashes representation
of this information.
Finally, we'll discuss and see example of Object Oriented
representation of the same information.

One of the goals of this exercise is to produce a CPAN Perl
module (actually, a set of Perl modules) that will
encapsulate the knowledge from XML Schema of its built in
simple types and allow easy manipulation, restriction and
derivation of them. This should be a useful bootstrapping
for XML Schema Processing in Perl (e.g., Schema Validation)
and a good start for developing XML Schema aware XML
processing tools such as XSLT 2.0, XPath 2.0 and XQuery 1.0
processors.

The talk can take several flavors:
* a more XML Schema technical debate where Object Orientation
is an instrument and not the purpose
* a more Object Oriented focused talk where the model is only
an instrument for discussing OO Perl
* a more Functional Programming focused talk where we end up
with an inside-out implementation in Perl rather than an OO one.


So if you want to attend this talk, let me know it and let
me also know your desired falvor -- I'll give the talk if
enough interest is expressed and will do it in the most
popular flavor :-)

Duration:60-120 minutes, depending on audience participation

When I say Object Oriented Perl, I mean OO along the lines
described in Demian Conway's Object Oriented Perl book [2].

When I say Higher Order Perl or Functional Programming in
Perl I mean HOP along the lines described in MJD's HOP book
[3]
.

Anyone interested in this talk?

[1] http://www.w3.org/TR/xmlschema-2/#built-in-datatypes
[2] http://www.manning.com/conway/
[3] http://hop.perl.plover.com/

Saturday, July 7, 2007

XML Schema composition problems

I dived into the mysteries of XML Schema composition and found several things that are not so clear to me with the semantics of chains of xsd:include and xsd:inport, with referencing names across schema documents and things related to both.

See the thread that I started at xmlschema-dev mailing list: http://lists.w3.org/Archives/Public/xmlschema-dev/2007Jul/0001.html

I also saw a bug report related to some of my concerns reported as [Bug 4838] Chameleon behavior

I did not get a clear understanding of the issues that I raised.

I do understand that:

  • circular dependencies is OK
I still don't know the correct expected behavior in the case where there's a chain of xsd:include and xsd:import: does xsd:inclue should allow names from namespaces other than the one in the including document? If so, in which cases?

I also still do not understand the semantics of referencing names beyond the bounds of the same schema document as far as schema composition is involved. Should xsd:any and ref consider only names defined in the same schema document and in schema documents that are imported and included in it? Or perhaps should xsd:any and ref consider only names in the same schema document and in schema documents that import or include the schema document that they appear in? Or perhaps both? What exactly are the rules? I cannot make them out from the standard.

Not that it helps me, but it is still interesting to see the list of reported bugs to XML Schema when you look for "schema composition" in the bug tracking system: http://www.w3.org/Bugs/Public/buglist.cgi?query_format=specific&order=relevance+desc&bug_status=__open__&product=XML+Schema&content=schema+composition

Wednesday, May 30, 2007

xml namespaces decision table

Being able to correctly handle XML namespaces in an XML processor seems to me to be summarized in the following formulation. I don't know if I'm right or not, but that's why I posted a question about it in the xml-dev mailing list.


Let's consider three variables: a, b and c:


a. Name is qualified in XML Schema: yes/no
b. Name is prefixed in XML document: yes/no (default namespace is also considered as a prefix, the empty string prefix, for this discussion’s sake)
c. Prefix for name is defined in XML document: yes/no


If we consider all possible values for a, b and c we end up with 8 possibilities:











abc
000
001
010
011
100
101
110
111

I don't expect to get any namespace related error
if a==b==c==0
or
if a==c==1 and b is either 1 or 0

(0 stands for no and 1 for yes...)

If I'm right than testing for namespace can be done with two comparisons


In case we don't have an XML Schema, the table has only two columns (no column for qualification):
So we get






bc
00
01
10
11


we get that the only error is if we use a prefix that is not declared.

Thursday, March 22, 2007

Multiple possible root elements in XML Schema validation

I posted to xml-dev that validation of an XML document against an XML Schema allows more than one root element to the document when there are global element definitions in the schema.

This was confirmed and the relevant standard text was quoted by repliers.

See: [link to post is not yet available in the online archives]

Monday, January 29, 2007

So, you want to implement an XML Schema Processor?

I was recently asked to look into the design and later on the implementation of XML processors that are able to do XML parsing, XML Schema validation, XPath/XQuery queries, WSDL and SOAP analysis and enforcement, and much much more.

When one is required to implement a tool which implements complex and detailed standards, which rely on other complex standards, especially when short in time, one seeks to classify the features into two main categories: "frequently used" and "rarely used". The motivation for this classification is that "frequently used" features get to be considered and implemented first while the "rarely used" ones get time and attention later on.

Starting with XML Schema (of course with the aid of the very useful book Definitive XML Schema), I was faced with the need to perform such categorization. Not having enough time to properly read the standard throughout, read commentary about it in mailing lists such as the xml-dev mailing list, and complement the knowledge with explanations from books and of course from actual practice (examining freely available XML Schemas for example), I was forces to an ad-hoc approach.

I browsed the web for some available summary on XML Schema, hopefully, including the above mentioned categorization. To my happiness, I was successful. I came across the article Profiling XML Schema by by Paul Kiel, which was published on xml.com on September 20th, 2006.

My short term approach will be to try and confirm the results and conclusions that were presented in this article with several examples of WSDLs and XML Schemas available on the wild (e.g., Google's XML based interfaces for its services).

Let's see how it goes.

Thursday, January 25, 2007