elena 2002/12/30 17:55:06
Modified: java/src/org/apache/xerces/dom DOMConfigurationImpl.java
DOMNormalizer.java
java/src/org/apache/xerces/impl/xs XMLSchemaValidator.java
java/src/org/apache/xerces/parsers DOMBuilderImpl.java
Log:
Feature "discard-default-content" should only be supported in the DOMWriter
(Minutes DOM teleconference 20021204).
Revision Changes Path
1.3 +5 -20
xml-xerces/java/src/org/apache/xerces/dom/DOMConfigurationImpl.java
Index: DOMConfigurationImpl.java
===================================================================
RCS file:
/home/cvs/xml-xerces/java/src/org/apache/xerces/dom/DOMConfigurationImpl.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- DOMConfigurationImpl.java 30 Dec 2002 21:31:02 -0000 1.2
+++ DOMConfigurationImpl.java 31 Dec 2002 01:55:05 -0000 1.3
@@ -182,11 +182,10 @@
protected final static short DTNORMALIZATION = 0x1<<1;
protected final static short ENTITIES = 0x1<<2;
protected final static short CDATA = 0x1<<3;
- protected final static short DEFAULTS = 0x1<<4;
- protected final static short SPLITCDATA = 0x1<<5;
- protected final static short COMMENTS = 0x1<<6;
- protected final static short VALIDATE = 0x1<<7;
- protected final static short PSVI = 0x1<<8;
+ protected final static short SPLITCDATA = 0x1<<4;
+ protected final static short COMMENTS = 0x1<<5;
+ protected final static short VALIDATE = 0x1<<6;
+ protected final static short PSVI = 0x1<<7;
// components
@@ -253,7 +252,6 @@
DYNAMIC_VALIDATION,
NORMALIZE_DATA,
SEND_PSVI,
- Constants.DOM_DISCARD_DEFAULT_CONTENT
};
addRecognizedFeatures(recognizedFeatures);
@@ -263,7 +261,6 @@
setFeature(DYNAMIC_VALIDATION, false);
setFeature(NORMALIZE_DATA, false);
setFeature(XERCES_NAMESPACES, true);
- setFeature(Constants.DOM_DISCARD_DEFAULT_CONTENT, true);
setFeature(SEND_PSVI, true);
// add default recognized properties
@@ -286,7 +283,6 @@
features |= ENTITIES;
features |= COMMENTS;
features |= CDATA;
- features |= DEFAULTS;
features |= SPLITCDATA;
if (symbolTable == null) {
@@ -569,11 +565,6 @@
features = (short) (state ? features | ENTITIES : features &
~ENTITIES);
}
- else if (name.equals(Constants.DOM_DISCARD_DEFAULT_CONTENT)) {
- setFeature (Constants.DOM_DISCARD_DEFAULT_CONTENT, state);
- features = (short) (state ? features | DEFAULTS : features &
~DEFAULTS);
-
- }
else if (name.equals(Constants.DOM_SPLIT_CDATA)) {
features = (short) (state ? features | SPLITCDATA : features &
~SPLITCDATA);
@@ -807,11 +798,6 @@
}
else if (name.equals(Constants.DOM_ENTITIES)) {
return (features & ENTITIES) != 0 ? Boolean.TRUE :
Boolean.FALSE;
-
- }
- else if (name.equals(Constants.DOM_DISCARD_DEFAULT_CONTENT)) {
- return (features & DEFAULTS) != 0 ? Boolean.TRUE :
Boolean.FALSE;
-
}
else if (name.equals(Constants.DOM_SPLIT_CDATA)) {
return (features & SPLITCDATA) != 0 ? Boolean.TRUE :
Boolean.FALSE;
@@ -880,7 +866,6 @@
|| name.equals(Constants.DOM_DATATYPE_NORMALIZATION)
|| name.equals(Constants.DOM_CDATA_SECTIONS)
|| name.equals(Constants.DOM_ENTITIES)
- || name.equals(Constants.DOM_DISCARD_DEFAULT_CONTENT)
|| name.equals(Constants.DOM_SPLIT_CDATA)
|| name.equals(Constants.DOM_NAMESPACES)
|| name.equals(Constants.DOM_VALIDATE)) {
1.22 +26 -24 xml-xerces/java/src/org/apache/xerces/dom/DOMNormalizer.java
Index: DOMNormalizer.java
===================================================================
RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/dom/DOMNormalizer.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- DOMNormalizer.java 30 Dec 2002 21:31:02 -0000 1.21
+++ DOMNormalizer.java 31 Dec 2002 01:55:05 -0000 1.22
@@ -324,7 +324,7 @@
if ( attributes!=null ) {
for ( int i=0; i<attributes.getLength(); ++i ) {
Attr attr = (Attr)attributes.item(i);
- removeDefault(attr, attributes);
+ //removeDefault(attr, attributes);
attr.normalize();
// XML 1.0 attribute value normalization
normalizeAttributeValue(attr.getValue(), attr);
@@ -607,7 +607,7 @@
// xmlns:foo = ""
}
- removeDefault (attr, attributes);
+ //removeDefault (attr, attributes);
continue;
} else { // (localpart == fXmlnsSymbol && prefix ==
fEmptySymbol) -- xmlns
// empty prefix is always bound ("" or some string)
@@ -615,7 +615,7 @@
fLocalNSBinder.declarePrefix(XMLSymbols.EMPTY_STRING,
value);
fNamespaceContext.declarePrefix(XMLSymbols.EMPTY_STRING, value);
- removeDefault (attr, attributes);
+ //removeDefault (attr, attributes);
continue;
}
} // end-else: valid declaration
@@ -729,13 +729,14 @@
continue;
}
-
// ---------------------------------------
// remove default attributes
// ---------------------------------------
+ /*
if (removeDefault(attr, attributes)) {
continue;
}
+ */
// XML 1.0 Attribute value normalization
value = normalizeAttributeValue(value, attr);
@@ -816,7 +817,7 @@
// ---------------------------------------
// remove default attributes
// ---------------------------------------
- removeDefault(attr, attributes);
+ // removeDefault(attr, attributes);
}
}
}
@@ -853,7 +854,7 @@
}
}
- protected final boolean removeDefault (Attr attribute, AttributeMap attrMap){
+ /*protected final boolean removeDefault (Attr attribute, AttributeMap attrMap){
if ((fConfiguration.features & DOMConfigurationImpl.DEFAULTS) != 0) {
// remove default attributes
if (!attribute.getSpecified()) {
@@ -866,6 +867,7 @@
}
return false;
}
+ */
protected final DOMError modifyDOMError(String message, short severity, Node
node){
@@ -1431,36 +1433,36 @@
* @exception XNIException
* Thrown by handler to signal an error.
*/
- public void endElement(QName element, Augmentations augs) throws XNIException
{
- if (DEBUG_EVENTS) {
+ public void endElement(QName element, Augmentations augs) throws XNIException {
+ if (DEBUG_EVENTS) {
System.out.println("==>endElement: " + element);
}
-
+
ElementPSVI elementPSVI = (ElementPSVI)
augs.getItem(Constants.ELEMENT_PSVI);
if (elementPSVI != null) {
ElementImpl elementNode = (ElementImpl) fCurrentNode;
if (fPSVI) {
((PSVIElementNSImpl)
fCurrentNode).setPSVI(elementPSVI);
}
- if ((fConfiguration.features & DOMConfigurationImpl.DEFAULTS)
== 0) {
- String normalizedValue =
elementPSVI.getSchemaNormalizedValue();
- if ((fConfiguration.features &
DOMConfigurationImpl.DTNORMALIZATION) != 0) {
+ // include element default content (if one is available)
+ String normalizedValue =
elementPSVI.getSchemaNormalizedValue();
+ if ((fConfiguration.features &
DOMConfigurationImpl.DTNORMALIZATION) != 0) {
+ elementNode.setTextContent(normalizedValue);
+ }
+ else {
+ // NOTE: this is a hack: it is possible that DOM had
an empty element
+ // and validator sent default value using
characters(), which we don't
+ // implement. Thus, here we attempt to add the default
value.
+ String text = elementNode.getTextContent();
+ if (text.length() == 0) {
+ // default content could be provided
+ // REVISIT: should setTextConent(null) be
allowed?
elementNode.setTextContent(normalizedValue);
}
- else {
- // NOTE: this is a hack: it is possible that
DOM had an empty element
- // and validator sent default value using
characters(), which we don't
- // implement. Thus, here we attempt to add the
default value.
- String text = elementNode.getTextContent();
- if (text.length() == 0) {
- // default content could be provided
- // REVISIT: should setTextConent(null)
be allowed?
-
elementNode.setTextContent(normalizedValue);
- }
- }
}
}
}
+
/**
* The start of a CDATA section.
1.127 +4 -14
xml-xerces/java/src/org/apache/xerces/impl/xs/XMLSchemaValidator.java
Index: XMLSchemaValidator.java
===================================================================
RCS file:
/home/cvs/xml-xerces/java/src/org/apache/xerces/impl/xs/XMLSchemaValidator.java,v
retrieving revision 1.126
retrieving revision 1.127
diff -u -r1.126 -r1.127
--- XMLSchemaValidator.java 30 Dec 2002 21:31:03 -0000 1.126
+++ XMLSchemaValidator.java 31 Dec 2002 01:55:06 -0000 1.127
@@ -314,8 +314,6 @@
// to indicate whether we are in the scope of entity reference or CData
protected boolean fEntityRef = false;
protected boolean fInCDATA = false;
- // DOM Level 3: discard default attributes (
- protected boolean fDiscardDefaults = false;
// properties
@@ -709,7 +707,7 @@
// call handlers
if (fDocumentHandler != null) {
- if (fDiscardDefaults || !fSchemaElementDefault || fDefaultValue ==
null) {
+ if (!fSchemaElementDefault || fDefaultValue == null) {
fDocumentHandler.emptyElement(element, attributes, modifiedAugs);
} else {
fDocumentHandler.startElement(element, attributes, modifiedAugs);
@@ -1310,15 +1308,7 @@
catch (XMLConfigurationException e){
fSchemaType = null;
}
-
- try {
- fDiscardDefaults =
componentManager.getFeature(Constants.DOM_DISCARD_DEFAULT_CONTENT);
- }
- catch (XMLConfigurationException e){
- fDiscardDefaults = false;
- }
-
-
+
fEntityResolver =
(XMLEntityResolver)componentManager.getProperty(ENTITY_MANAGER);
fSchemaLoader.setEntityResolver(fEntityResolver);
@@ -2003,7 +1993,7 @@
processAttributes(element, attributes, attrGrp);
// add default attributes
- if (attrGrp != null && !fDiscardDefaults) {
+ if (attrGrp != null) {
addDefaultAttributes(element, attributes, attrGrp);
}
1.26 +1 -3
xml-xerces/java/src/org/apache/xerces/parsers/DOMBuilderImpl.java
Index: DOMBuilderImpl.java
===================================================================
RCS file:
/home/cvs/xml-xerces/java/src/org/apache/xerces/parsers/DOMBuilderImpl.java,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- DOMBuilderImpl.java 30 Dec 2002 21:31:03 -0000 1.25
+++ DOMBuilderImpl.java 31 Dec 2002 01:55:06 -0000 1.26
@@ -189,7 +189,6 @@
Constants.DOM_NAMESPACE_DECLARATIONS,
Constants.DOM_SUPPORTED_MEDIATYPES_ONLY,
Constants.DOM_CERTIFIED,
- Constants.DOM_DISCARD_DEFAULT_CONTENT
};
fConfiguration.addRecognizedFeatures(domRecognizedFeatures);
@@ -204,7 +203,6 @@
fConfiguration.setFeature(Constants.DOM_INFOSET, false);
fConfiguration.setFeature(Constants.DOM_NAMESPACE_DECLARATIONS, true);
fConfiguration.setFeature(Constants.DOM_SUPPORTED_MEDIATYPES_ONLY, false);
- fConfiguration.setFeature(Constants.DOM_DISCARD_DEFAULT_CONTENT, true);
// REVISIT: by default Xerces assumes that input is certified.
// default is different from the one specified in the DOM spec
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]