Parcourir la source

Fixed: XmlDataProcessor should keep original case of nodes when it's used to create model.

Szymon Cofalik il y a 9 ans
Parent
commit
b66c4d86dd

+ 1 - 1
packages/ckeditor5-engine/src/dataprocessor/xmldataprocessor.js

@@ -89,7 +89,7 @@ export default class XmlDataProcessor {
 		const domFragment = this._toDom( data );
 
 		// Convert DOM DocumentFragment to view DocumentFragment.
-		return this._domConverter.domToView( domFragment );
+		return this._domConverter.domToView( domFragment, { keepOriginalCase: true } );
 	}
 
 	/**

+ 5 - 3
packages/ckeditor5-engine/src/view/domconverter.js

@@ -252,8 +252,9 @@ export default class DomConverter {
 	 * @param {Node|DocumentFragment} domNode DOM node or document fragment to transform.
 	 * @param {Object} [options] Conversion options.
 	 * @param {Boolean} [options.bind=false] Determines whether new elements will be bound.
-	 * @param {Boolean} [options.withChildren=true] It true node's and document fragment's children will be converted too.
-	 * @returns {engine.view.Node|engine.view.DocumentFragment|null} Converted node or document fragment. Null
+	 * @param {Boolean} [options.withChildren=true] If `true`, node's and document fragment's children will be converted too.
+	 * @param {Boolean} [options.keepOriginalCase=false] If `false`, node's tag name will be converter to lower case.
+	 * @returns {engine.view.Node|engine.view.DocumentFragment|null} Converted node or document fragment or `null`
 	 * if DOM node is a {@link engine.view.filler filler}.
 	 */
 	domToView( domNode, options = {} ) {
@@ -283,7 +284,8 @@ export default class DomConverter {
 				}
 			} else {
 				// Create view element.
-				viewElement = new ViewElement( domNode.tagName.toLowerCase() );
+				const viewName = options.keepOriginalCase ? domNode.tagName : domNode.tagName.toLowerCase();
+				viewElement = new ViewElement( viewName );
 
 				if ( options.bind ) {
 					this.bindElements( domNode, viewElement );