Thanks for the information. Now I see that there are good reasons for
using such a namespace. Sorry for saying that this could be a mistake. I
just have not seen a namespace like that before and did not know what
benefit it could have.
Johannes
Radu Preotiuc-Pietro wrote:
People do have namespaces like "http://www.name.com/foo/schema.xsd", so
that the namespace URI is also the download page for the document. It's
hard to make the argument that having something like that is a mistake;
and the generated package name for that is currently
"com.name.foo.schema". In my experience, I have never seen an URI ending
in .-separated numbers though (well, until now that is)
So in this case, the answer is: no, it's not a bug, it was a design
choice, the design could be changed in the future, but I would recommend
against doing so, for backwards-compatibility reasons.
Radu
-----Original Message-----
From: Johannes Echterhoff [mailto:[EMAIL PROTECTED]
Sent: Thursday, December 08, 2005 1:08 AM
To: [email protected]
Subject: Re: problem concerning version number in targetNamespace
But what meaning would a file with extension in a URI of a
targetNamespace have? Would a namespace like
"http://anything.com/myfault.html" not be a mistake by the
user? And if
so, shouldn't the user then correct the namespace if he does
not like a
package like "com.anything.myfaulthtml"?
Backwards-compatibility cannot be abandoned, of course. The
question is
how many users already have a namespace like the one above
and arranged
with the existing transformation rule. A workaround could be
to include
the version number before the last slash, e.g.
"http://foo.bar/v01.01.00/myconcern" ... or just use version numbers
with hyphens instead of dots.
However, I just wanted to make sure whether this was a bug
and could be
fixed in a future version or not.
Thanks,
Johannes
Radu Preotiuc-Pietro wrote:
Yeah, this is actually true, but not bug.
The reason for it is that the rule for transforming URIs
into package
names says: if the part after the last slash looks like a file with
extension, then strip the extension, where file with extension is
interpreted as "anything + '.' + 3 chars" or "anything + '.'
+ 2 chars"
or "anything + '.html'". Your v01.01.00 string triggers this rule.
Now I can see what you're saying, but I am reluctant to
changing this
since I don't know exactly what the new rule would be and also for
backwards-compatibility reasons.
Radu
-----Original Message-----
From: Johannes Echterhoff [mailto:[EMAIL PROTECTED]
Sent: Tuesday, December 06, 2005 4:51 AM
To: [email protected]
Subject: problem concerning version number in targetNamespace
Hello.
For handling different schema versions it could be nice to
include the
version number in the targetNamespace of a schema (see
http://www.devx.com/xml/Article/22553 to get an overview of
what I mean).
So I tested this a little bit. The following schema is my
test schema (I
compile it using the xmlbeans ant task):
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://foo.bar/v01-01-00"
targetNamespace="http://foo.bar/v01-01-00"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="Root">
<xs:complexType>
<xs:sequence>
<xs:element name="foobar" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
The resulting package for the generated classes is:
bar.foo.v010100 -
alright.
But if I change the targetNamespace to v01.01.00 the
resulting package
is bar.foo.v0101! If I use v00.01.10 as version number the
resulting
package is bar.foo.v0001 whereas if i use v00-01-10 it's
bar.foo.v000110
Seems to me that if I use a version number like vx.y.z with
x, y and z
being any number of digits the third part of the version
number - z - is
completely ignored when using dots to separate version fragments. I
compiled with v0123456.1.01 and the result was
bar.foo.v01234561 (using
hyphens the result is bar.foo.v0123456110).
Is this a bug? It would be nice to be able to compile schemas that
include the schema version in their targetNamespace
correctly even if
the version number uses dots. What do you think of this?
Regards,
Johannes
------------------------------------------------------------
---------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]