RE: Namespace prefix throws spanner in works

2005-05-23 Thread Adam Hardy
A question about xmlbeans: if I change the schema locally and compile my
xmlbeans into a jar, is that elementFormDefault attribute ( all schema
info) compiled into my jar, or will xmlbeans validate() try to reference
the schema again?

In my current set-up in Eclipse, I am certain that the app is not
accessing the schemas once running. 


Thanks
Adam



 -Original Message-
 From: Lawrence Jones [mailto:[EMAIL PROTECTED] 
 Sent: 20 May 2005 17:44
 To: user@xmlbeans.apache.org
 Subject: RE: Namespace prefix throws spanner in works
 
 
 Hi Adam
 
 Without seeing the schema in full it's hard to tell, but 
 here's my guess. I guess that you've declared the 
 mediumName element as a local element in the schema (this 
 will happen if it is not an immediate child of the top-level 
 schema element).
 
 How you refer to local elements and specifically whether you 
 should include a namespace prefix or not is controlled by the 
 form attribute on the element's declaration in the schema. If 
 the form attribute is missing then it's controlled by the 
 elementFormDefault attribute on the surrounding schema 
 element. The default in both these cases (and therefore what 
 will happen if they are both missing) is unqualified. This 
 means that local elements _must_ be referred to without a 
 namespace. I'm guessing that this is what has happened in your case.
 
 If the form value is unqualified then it is an error to 
 refer to the local element using a namespace prefix and the 
 validator correctly points this out.
 
 It sounds like you have control over the schema. If so then 
 you can change it so that either that specific element 
 declaration has form=qualified or you can set the same rule 
 for the whole schema by setting 
 elementFormDefault=qualified in the schema element instead.
 
 Note that it is equally an error for you to be expecting a 
 namespace and not to see one - so if you update your schema 
 in this way be sure that all clients know about it and will 
 ensure that all local elements are namespace qualified in all 
 the instance documents.
 

http://www.bbc.co.uk/

This e-mail (and any attachments) is confidential and may contain
personal views which are not the views of the BBC unless specifically
stated.
If you have received it in error, please delete it from your system. 
Do not use, copy or disclose the information in any way nor act in
reliance on it and notify the sender immediately. Please note that the
BBC monitors e-mails sent or received. 
Further communication will signify your consent to this.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Namespace prefix throws spanner in works

2005-05-23 Thread Lawrence Jones
Hi Adam

Re your question on which elementFormDefault applies (1) or (2) -
unfortunately for you it's the one in the schema element surrounding the
local declaration of mediumName in the scheduleNameGroup model group
definition. So the unqualified treatment required by (2) is correct.

I have some sympathy with your other comments as I prefer the
elementFormDefault=qualified setup myself. But having said that,
elementFormDefault=unqualified is not illegal. And it's not as if the
attribute has been forgotten (and therefore defaulted); rather the
schema designers have explicitly chosen to make it unqualified.

It is the responsibility of whoever constructs the instance document to
conform to the schema so, technically, whoever is providing you with
your instance doc is providing invalid XML which should be rejected and
you should contact them to fix it. But if you're happy having your local
copy of the schema then so be it.

Cheers,

Lawrence

 -Original Message-
 From: Adam Hardy [mailto:[EMAIL PROTECTED]
 Sent: Monday, May 23, 2005 2:57 AM
 To: user@xmlbeans.apache.org
 Subject: RE: Namespace prefix throws spanner in works
 
 The schemas are in public domain so I can edit neither the schema nor
 the incoming XML :(
 
 (1) http://www.worlddab.org/schemas/epg/epgSchedule_11.xsd
 (2) http://www.worlddab.org/schemas/epg/epgDataTypes_11.xsd
 
 
 You are correct about the elementFormDefault=unqualified on the
 imported schema (2), however in the actual schema (1) it is set to
 qualified, which would be this element's 'surrounding schema'. Does
 this make no difference?
 
 As far as my project is concerned, I can keep a local copy of the
schema
 and change that elementFormDefault. That will sort out my xml beans
 validation.
 
 Truth be told this is actually the second change we have to make to
the
 schema, which points a finger at the WorldDAB committee who wrote it.
I
 did email them when I had to make the first change but received no
 reply. Oh well.
 
 Thanks for the help :)
 
 
 Adam
 
 
 
 
 
  -Original Message-
  From: Lawrence Jones [mailto:[EMAIL PROTECTED]
  Sent: 20 May 2005 17:44
  To: user@xmlbeans.apache.org
  Subject: RE: Namespace prefix throws spanner in works
 
 
  Hi Adam
 
  Without seeing the schema in full it's hard to tell, but
  here's my guess. I guess that you've declared the
  mediumName element as a local element in the schema (this
  will happen if it is not an immediate child of the top-level
  schema element).
 
  How you refer to local elements and specifically whether you
  should include a namespace prefix or not is controlled by the
  form attribute on the element's declaration in the schema. If
  the form attribute is missing then it's controlled by the
  elementFormDefault attribute on the surrounding schema
  element. The default in both these cases (and therefore what
  will happen if they are both missing) is unqualified. This
  means that local elements _must_ be referred to without a
  namespace. I'm guessing that this is what has happened in your case.
 
  If the form value is unqualified then it is an error to
  refer to the local element using a namespace prefix and the
  validator correctly points this out.
 
  It sounds like you have control over the schema. If so then
  you can change it so that either that specific element
  declaration has form=qualified or you can set the same rule
  for the whole schema by setting
  elementFormDefault=qualified in the schema element instead.
 
  Note that it is equally an error for you to be expecting a
  namespace and not to see one - so if you update your schema
  in this way be sure that all clients know about it and will
  ensure that all local elements are namespace qualified in all
  the instance documents.
 
  Cheers,
 
  Lawrence
 
   -Original Message-
   From: Adam Hardy [mailto:[EMAIL PROTECTED]
   Sent: Friday, May 20, 2005 6:08 AM
   To: user@xmlbeans.apache.org
   Subject: Namespace prefix throws spanner in works
  
   Hi,
  
   I hope someone give me a clue how to proceed with this issue: I
 compiled
   a set of beans against my schema and now I'm using them in my app.
  
   I parse an XML doc into the document, and then when I call
   doc.validate(), I get a series of validation errors.
  
   My xml header looks like this:
  
   ?xml version=1.0 encoding=UTF-8?
   epg xmlns:epg=http://www.worlddab.org/schemas/epg;
 xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance;
 xsi:schemaLocation=http://www.worlddab.org/schemas/epg
   epgSchedule_11.xsd
 system=DAB
   Etc etc
  
   And the xml where the first error occurs looks like this:
  
   programme shortId=59033
 epg:mediumNamePM/epg:mediumName
 [snip...]
   /programme
  
   And the error says:
  
   Expected element mediumName at the end of the content in element
   programme
  
   If I remove the epg: namespace prefix from the elements, then it
   validates fine, but I can't do that in the live environment - the
 app

RE: Namespace prefix throws spanner in works

2005-05-23 Thread Lawrence Jones
Hi Adam

scomp has an option, -dl, which will download included and imported
schemas from the network. In the absence of this option no network
downloads take place and it searches for includes and imports locally.
I'm not sure of the details of exactly how this works but if you are
compiling successfully without the -dl option then it is correctly
finding the imported schema from somewhere local.

All the details of the infoset, including the information about the
namespace against which to validate instance docs, are included in the
.xsb files which are part of what gets generated in the jar. So when you
run validate() on an XmlBean you are comparing the instance to the
information in the .xsb's which in your case were compiled from the
local schema.

Cheers,

Lawrence

 -Original Message-
 From: Adam Hardy [mailto:[EMAIL PROTECTED]
 Sent: Monday, May 23, 2005 3:19 AM
 To: user@xmlbeans.apache.org
 Subject: RE: Namespace prefix throws spanner in works
 
 A question about xmlbeans: if I change the schema locally and compile
my
 xmlbeans into a jar, is that elementFormDefault attribute ( all
schema
 info) compiled into my jar, or will xmlbeans validate() try to
reference
 the schema again?
 
 In my current set-up in Eclipse, I am certain that the app is not
 accessing the schemas once running.
 
 
 Thanks
 Adam
 
 
 
  -Original Message-
  From: Lawrence Jones [mailto:[EMAIL PROTECTED]
  Sent: 20 May 2005 17:44
  To: user@xmlbeans.apache.org
  Subject: RE: Namespace prefix throws spanner in works
 
 
  Hi Adam
 
  Without seeing the schema in full it's hard to tell, but
  here's my guess. I guess that you've declared the
  mediumName element as a local element in the schema (this
  will happen if it is not an immediate child of the top-level
  schema element).
 
  How you refer to local elements and specifically whether you
  should include a namespace prefix or not is controlled by the
  form attribute on the element's declaration in the schema. If
  the form attribute is missing then it's controlled by the
  elementFormDefault attribute on the surrounding schema
  element. The default in both these cases (and therefore what
  will happen if they are both missing) is unqualified. This
  means that local elements _must_ be referred to without a
  namespace. I'm guessing that this is what has happened in your case.
 
  If the form value is unqualified then it is an error to
  refer to the local element using a namespace prefix and the
  validator correctly points this out.
 
  It sounds like you have control over the schema. If so then
  you can change it so that either that specific element
  declaration has form=qualified or you can set the same rule
  for the whole schema by setting
  elementFormDefault=qualified in the schema element instead.
 
  Note that it is equally an error for you to be expecting a
  namespace and not to see one - so if you update your schema
  in this way be sure that all clients know about it and will
  ensure that all local elements are namespace qualified in all
  the instance documents.
 
 
 http://www.bbc.co.uk/
 
 This e-mail (and any attachments) is confidential and may contain
 personal views which are not the views of the BBC unless specifically
 stated.
 If you have received it in error, please delete it from your system.
 Do not use, copy or disclose the information in any way nor act in
 reliance on it and notify the sender immediately. Please note that the
 BBC monitors e-mails sent or received.
 Further communication will signify your consent to this.
 
 -
 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]