Michael,

Those 3 lines come from [1]:

> config.setParameter("http://xml.org/sax/features/validation";, true); 
>
config.setParameter("http://apache.org/xml/features/validation/schema",t
rue);
>
config.setParameter("http://apache.org/xml/features/validation/schema/el
ement-default", true);

I used the same features when I use a DOM factory. If you do not set all
those 3 to true, the element-default augmentation is not done. When
using LSParser, the augmentation is not done even if I use those 3
features. If I do something wrong, thx to help to correct my code. I am
quite new in this Java area.

[1]
http://xerces.apache.org/xerces2-j/features.html#validation.schema.eleme
nt-default 

Regards,

Lydie.

-----Original Message-----
From: Michael Glavassevich [mailto:[EMAIL PROTECTED] 
Sent: Friday, October 13, 2006 16:46
To: [email protected]
Subject: RE: element-default with DOM3

Not sure what's going on but your use of the JAXP validation API is
completely unnecessary. You're already telling the LSParser to validate
the input.

Michael Glavassevich
XML Parser Development
IBM Toronto Lab
E-mail: [EMAIL PROTECTED]
E-mail: [EMAIL PROTECTED]

"Decoker, Lydie \(Lydie\)" <[EMAIL PROTECTED]> wrote on 10/13/2006
03:09:22 AM:

> It did not add the default element value :o(
> 
> What I have is:
> 
> System.setProperty(DOMImplementationRegistry.PROPERTY,"org.apache.xerc
> es
> .dom.DOMXSImplementationSourceImpl");
> System.setProperty("javax.xml.validation.SchemaFactory:http://www.w3.o
> rg /2001/XMLSchema", 
> "org.apache.xerces.jaxp.validation.XMLSchemaFactory");
> DOMImplementationRegistry registry =
> DOMImplementationRegistry.newInstance();
> 
> DOMImplementationLS impl =
> (DOMImplementationLS)registry.getDOMImplementation("LS");
> 
> // create DOMBuilder
> LSParser builder =
> impl.createLSParser(DOMImplementationLS.MODE_SYNCHRONOUS, null); 
> DOMConfiguration config = builder.getDomConfig(); 
> builder.setFilter(skipWhitespaceFilter);
> 
> // Create the document builder
> JMSErrorHandler2 errorHandler = new JMSErrorHandler2(); 
> config.setParameter("error-handler", errorHandler); 
> config.setParameter("http://xml.org/sax/features/validation";, true); 
> config.setParameter("http://apache.org/xml/features/validation/schema";
> ,
> true);
> config.setParameter("http://apache.org/xml/features/validation/schema/
> el
> ement-default", true);
> 
> // Parse the xml file
> Document doc = null;
> LSInput input = impl.createLSInput();
> 
> if (xml instanceof File) {
>    input.setByteStream(new FileInputStream((File)xml)); } else if (xml

> instanceof String) {
>    input.setCharacterStream(new StringReader((String)xml)); } doc = 
> builder.parse(input);
> 
> // Create the schema factory
> SchemaFactory schemaFactory =
> SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
> 
> // Create the schema object
> Schema schema = schemaFactory.newSchema(new File(schemaLocation));
> 
> // Create the validator
> Validator validator = schema.newValidator();
> 
> // Add an error handler to the validator JMSErrorHandler 
> v_errorHandler = new JMSErrorHandler(); 
> validator.setErrorHandler(v_errorHandler);
> 
> // Create the dom source and destination // The destination will 
> contain the doc augmented with the default attribute/element DOMSource

> source = new DOMSource(doc); DOMResult result = new DOMResult();
> 
> // Validate and augment the source
> validator.validate(source, result);
> 
> // Error checking
> if ( v_errorHandler.validationError == true ) {
>    // errors occured during the parsing
>    if (myLogger.isInfoEnabled()) {
>       myLogger.info(funcName + "XML file is not valid - Got a 
> validation error");
>    myLogger.info(v_errorHandler.saxParseException.getMessage());
>    }
>    Throw new NBIErrException("XML file not valid " + 
> v_errorHandler.saxParseException.getMessage());
> }  else {
>    if (myLogger.isInfoEnabled()) {
>       myLogger.info(funcName + "XML file is valid");
>    }
>    // Return the augmented document
>    return (Document)result.getNode();
> }
> -----Original Message-----
> From: Michael Glavassevich
> Sent: Friday, October 13, 2006 06:20
> To: [email protected]
> Subject: RE: element-default with DOM3
> 
> Try setting
> "http://apache.org/xml/features/validation/schema/element-default"; as 
> a parameter with a Boolean value and see what happens.
> 
> Michael Glavassevich
> XML Parser Development
> IBM Toronto Lab
> E-mail: [EMAIL PROTECTED]
> E-mail: [EMAIL PROTECTED]
> 
> "Decoker, Lydie \(Lydie\)"  wrote on 10/12/2006
> 03:53:18 AM:
> 
> > Thx Michael. But looking the links provided, I do not see what could

> > help me to add element default value in my DOM tree.
> > 
> > I see that for LSSerialzer, you have an option 
> > "discard-default-content". If you set it to false, I should get the 
> > default value. But from what I understand LSSerializer will output a

> > string but I want to keep my DOM tree.
> > 
> > Lydie. 
> > 
> > -----Original Message-----
> > From: Michael Glavassevich [mailto:[EMAIL PROTECTED]
> > Sent: Wednesday, October 11, 2006 19:00
> > To: [email protected]
> > Subject: Re: element-default with DOM3
> > 
> > "Decoker, Lydie \(Lydie\)"  wrote on 10/11/2006
> > 09:32:39 AM:
> > 
> > > Hello!
> > > 
> > > I am using now the LSParser (in order to get rid of the empty text
> > > node) adn LSParserFilter.
> > > I am trying to replicate what I was doing with the
DocumentBuilder. 
> > > To augment my xml with the default values, the feature I had set
> was:
> > > 
> > > domFactory.setFeature("http://apache.
> > > org/xml/features/validation/schema/element-default",true);
> > > Is there something similar for DOMImplementationLS used to create 
> > > the LSParser?
> > 
> > See DOMConfiguration [1]. This is what you use to configure [2] an 
> > LSParser.
> > 
> > > Thx in advance,
> > > 
> > > Lydie
> > 
> > [1] http://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMConfiguration
> > [2]
> > http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407/load-save.html
> > #L
> > S-
> > LSParser-config
> > 
> > Michael Glavassevich
> > XML Parser Development
> > IBM Toronto Lab
> > E-mail: [EMAIL PROTECTED]
> > 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]

---------------------------------------------------------------------
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]

Reply via email to