The Source for Java Technology Collaboration
User: Password:
Register | Login help    

Search

Online Books:
java.net on MarkMail:


Add an XSD file to Eclipse and Eliminate Those Pesky XML Warnings

Posted by cayhorstmann on July 21, 2009 at 8:27 AM PDT

If you work with Eclipse and JSF 2, you too may be annoyed at the little warning-icon.png that shows up next to all your faces-config.xml files (even those that are blessedly empty).

Here is how you can get rid of them, and add autocompletion to faces-config editing as well, in case they aren't empty after all. (Most of mine contain a single element, to specify a resource bundle. Eliminating that would be a nice item for convention-over-configuration in JSF 2.1).

  1. Download the source code for JSF 2 from http://javaserverfaces.dev.java.net
  2. Make a directory such as ~/xsd and copy all files with extension .xsd from mojarra-version-sources/jsf-api/doc into that directory (so you can remove the source later)
  3. In Eclipse, locate a faces-config.xml and copy the entry http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd from the xsi:schemaLocation attribute. You'll need it in the clipboard for step 5.
  4. Select WindowPreferencesXMLXML Catalog.

  5. Select Add and fill in the dialog as shown below. Pick the .xsd file by clicking on File System and navigating to the directory in which you saved the files. Change the Key Type to Schema Location. Paste in the key.

  6. Rebuild your project. The warning-icon.png should be gone.

This also works for other XML schemas (such as the one for facelet tag library descriptors).

Comments
Comments are listed in date ascending order (oldest first)

hi Dr. Horstmann, I am your student from Software Engineering, CS160, SJSU fall. I was trying to be involved in open source projects to keep up the learning process and may perhaps develop something a new. Will you suggest where I should start with since learning Blackberry Application Development was challenging but quite interesting. sincerely, Prakash Shiwakoti SJSU

new Java EE 6 schemas now in the GlassFish Plugin

Hi Cay, When we push our GlassFish plugin 1.0.34 for Eclipse soon (next week?) all the new EE 6 schemas (including the new faceconfig and many others) will be automatically declared to Eclipse so that you do not need to do this manual step anymore... Thanks, Ludo

Eclipse bug?

Hi, I need to know if this is me or Eclipse itself having a bug... I registered this new schema as you describe and I am playing with a simple web app that has a faces-config.xml using the 2.0 schema and 1 managed-bean defined...
On the name of the managed-bean, Eclipse is emitting this validation error:

Description Resource Path Location Type cvc-id.3: A field of identity constraint 'faces-config-managed-bean-name-uniqueness' matched element 'faces-config', but this element does not have a simple type. faces-config.xml HelloFacelet/WebContent/WEB-INF line 7 XML Problem
The same faces-config using the 1.2 schema does not expose this error...

It's hard to tell without

It's hard to tell without seeing your faces-config.xml. I no longer have managed beans in my faces-config files :-) I just put in a bogus one. Autocompletion worked, and I didn't get an error.