List Info

Thread: libxml2 support for xml schema data types




libxml2 support for xml schema data types
user name
2006-05-18 18:51:46
Hi, 

> -----Original Message-----
> From: Milan Andric [mailto:andricmcs.pdx.edu] 
> 
> Kasimier,
> 
> Many thanks for the reply - this is info I've been
looking for.
> I'm a beginner in X Schema, trying to find a way to
describe 
> a function
> parameters in a way that would be satisfying for both
Win/Linux.
> 
> Suppose there is a function foo(int i, char *j)
> 
> And call to function is like:
> 
> Foo(1, "hello")
> 
> I've thought of something like:
> 
> <Function Name=foo>
> 	<Param ### cross platform type info comes  here
###>1</Param>
> 	<Param
Type="string">hello</Param>
> </Function >
> 
> I'm trying to find a way to describe all my function
params 
> in a way that
> is cross portable, and that would be understood by XML
parsers on both
> Windows and Linux.
> 
> Then, when above XML is programmatically (via DOM)
parsed by 
> XML parser,
> it needs to be able to figure out actual param type,
such 
> that first param
> is of type int, and assign such to int variable in
program, that the
> second param is of type string and make assigment to a 
> variable in code,
> etc.
> 
> So far I've been able to acomplish above with MSXML,
but, as 
> you've noted,
> these are proprietary MS XML data types, and they
wouldn't 
> work for cross
> platform purposes.
> 
> I'm wondering if there is a way to describe above
params in such way -
> what do you think?

[...]

The xsi:type attribute is intended for such purposes (e.g.
used heavily
by
SOAP).

A schema could look like:

<?xml version="1.0"?>
<xs:schema xmlnss=&q
uot;http://www.w3.org/20
01/XMLSchema"
  targetNamespace="urn:test:milan"
  xmlns:m="urn:test:milan">  

  <xs:simpleType name="myIntType">
    <xs:restriction base="xs:int">
      <xs:maxInclusive value="10"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="param"
type="xs:anySimpleType"/>      

  <xs:element name="function">
    <xs:complexType>
      <xs:sequence maxOccurs="unbounded">
        <xs:element ref="m:param"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

And the corresponding instance:

<?xml version="1.0"?>
<m:function xmlns:m="urn:test:milan"
  xmlnssi=&
quot;http://www.
w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="urn:test:milan
milan-functions.xsd"
  xmlnss=&q
uot;http://www.w3.org/20
01/XMLSchema">

  <m:param
xsi:type="xs:string">value-1</m:param>
  <m:param
xsi:type="m:myIntType">10</m:param>

</m:function>

I recommend using the following mailing lists for general
W3C XML Schema
questions (i.e., non Libxml2 related):

xml-devlists.xml.org or xmlschema-devw3.org.

... or reading some tutorials:

http://ww
w.w3schools.com/schema/default.asp

... or reading book about W3C XML Schema.

Regards,

Kasimier 
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
xmlgnome.org
http://mai
l.gnome.org/mailman/listinfo/xml
[1]

about | contact  Other archives ( Real Estate discussion Medical topics )