diff -r 889504eac4fb -r 604ca70b6235 xml/cxmllibrary/src/encoder/src/tinydom2wbxml.c --- a/xml/cxmllibrary/src/encoder/src/tinydom2wbxml.c Tue Aug 31 17:02:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,280 +0,0 @@ -/* -* Copyright (c) 2000 - 2001 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of the License "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - - - -/***************************************************************** -** File: tinydom2wbxml.c -** -** Description: maps TinyDom types onto WBXMLWriter functions -*****************************************************************/ - -#include "cxml_internal.h" -#include "nw_encoder_tinydom2wbxml.h" -#include - -/* -Writes an AttrVal -Return NW_STAT_BAD_INPUT_PARAM - NW_STAT_OUT_OF_MEMORY - NW_STAT_SUCCESS -*/ -NW_Status_t -NW_Encoder_writeAttrVal(NW_WBXML_Writer_t* pW, NW_DOM_AttrVal_t *val, NW_Uint32 encoding) -{ - if ((val == NULL) || (pW == NULL)) { - return NW_STAT_BAD_INPUT_PARAM; - } - - switch (NW_DOM_AttrVal_getType(val)) { - case NW_DOM_ATTR_VAL_STRING: - { - NW_String_t *string = &(val->component.string); - return NW_WBXML_Writer_Text(pW, encoding, - string->length, string->storage); - } - case NW_DOM_ATTR_VAL_EXTENSION: - { - NW_Uint8 t; /* 8-bit token */ - NW_String_t str; - NW_Status_t status; - - t = (NW_Uint8)(val->component.ext.token); - if ((t == NW_WBXML_EXT_0) - || (t == NW_WBXML_EXT_1) - || (t == NW_WBXML_EXT_2)) { - status - = NW_WBXML_Writer_Extension(pW, - (NW_Uint16)(val->component.ext.token), - 0, 0, NULL); - } else if ((t == NW_WBXML_EXT_T_0) - || (t == NW_WBXML_EXT_T_1) - || (t == NW_WBXML_EXT_T_2)) { - NW_ASSERT((val->component.ext.type - == NW_TINYDOM_EXTENSION_TYPE_NORMAL) - || (val->component.ext.type - == NW_TINYDOM_EXTENSION_TYPE_EXT_T_INTEGER)); - if (val->component.ext.type == NW_TINYDOM_EXTENSION_TYPE_NORMAL) { - NW_Uint16 token = NW_DOM_TextItem_getExtension(val, &str); - status - = NW_WBXML_Writer_ExtensionUseStringTable(pW, - token, - str.length, - str.storage); - } else { - status = NW_WBXML_Writer_Extension(pW, - (NW_Uint16)(val->component.ext.token), - val->component.ext.value.x, - 0, NULL); - } - } else if ((t == NW_WBXML_EXT_I_0) - || (t == NW_WBXML_EXT_I_1) - || (t == NW_WBXML_EXT_I_2)) { - NW_Uint16 token = NW_DOM_TextItem_getExtension(val, &str); - status = NW_WBXML_Writer_Extension(pW, token, - 0, str.length, str.storage); - } else { - status = NW_STAT_FAILURE; - } - return status; - } - case NW_DOM_ATTR_VAL_ENTITY: - { - NW_Uint32 entity = NW_DOM_TextItem_getEntity(val); - return NW_WBXML_Writer_Entity(pW, entity); - } - case NW_DOM_ATTR_VAL_OPAQUE: - { - NW_Uint32 length = 0; - NW_Byte* data = NW_DOM_AttrVal_getOpaque(val, &length); - return NW_WBXML_Writer_Opaque(pW, length, data); - } - case NW_DOM_ATTR_VAL_TOKEN: - { - NW_Uint16 fqToken = NW_DOM_AttrVal_getToken(val); - return NW_WBXML_Writer_AttributeToken(pW, fqToken); - } - default: - break; - } - - return NW_STAT_FAILURE; -} - -/* -Writes an attrFqToken with AttrVal -Return NW_STAT_BAD_INPUT_PARAM - NW_STAT_OUT_OF_MEMORY - NW_STAT_SUCCESS - NW_STAT_FAILURE -*/ -NW_Status_t -NW_Encoder_writeAttributeByToken(NW_WBXML_Writer_t* pW, - NW_Uint16 attrFqToken, - NW_TinyDom_AttrVal_t *val, - NW_Uint32 encoding) -{ - NW_Status_t s; - NW_Uint8 token = (NW_Uint8)(attrFqToken & NW_WBXML_MASK_TOKEN); - - if ((token == NW_WBXML_LITERAL) || (val == NULL) || (pW == NULL)) { - return NW_STAT_BAD_INPUT_PARAM; - } - - s = NW_WBXML_Writer_AttributeToken(pW, attrFqToken); - if (NW_STAT_IS_FAILURE(s)) { - return s; - } - - /* TODO: Talk to Shaun about it */ - if ((NW_DOM_AttrVal_getType(val) == NW_DOM_ATTR_VAL_TOKEN) && - (attrFqToken == val->component.value_token)) - {} - else{ - s = NW_Encoder_writeAttrVal(pW, val, encoding); - if (NW_STAT_IS_FAILURE(s)) { - return s; - } - } - - return NW_WBXML_Writer_End(pW); -} - -/* -Writes an Attribute by name plus AttrVal -Return NW_STAT_BAD_INPUT_PARAM - NW_STAT_OUT_OF_MEMORY - NW_STAT_SUCCESS - NW_STAT_FAILURE -*/ -NW_Status_t -NW_Encoder_writeAttributeByName(NW_WBXML_Writer_t* pW, - NW_String_t *attrName, - NW_TinyDom_AttrVal_t *val, - NW_Uint32 encoding) -{ - NW_Status_t s; - NW_Uint32 byteCount; - NW_Int32 charCount; - - if ((pW == NULL) || (attrName == NULL) || (val == NULL)) { - return NW_STAT_BAD_INPUT_PARAM; - } - - charCount = NW_String_charBuffGetLength(attrName->storage, - encoding, - &byteCount); - if (charCount < 0) { - return NW_STAT_BAD_INPUT_PARAM; - } - NW_ASSERT(byteCount == attrName->length); - s = NW_WBXML_Writer_AttributeNameString(pW, encoding, (NW_Uint32)charCount, - byteCount, attrName->storage); - if (NW_STAT_IS_FAILURE(s)) { - return s; - } - - s = NW_Encoder_writeAttrVal(pW, val, encoding); - if (NW_STAT_IS_FAILURE(s)) { - return s; - } - - return NW_WBXML_Writer_End(pW); -} - -/* -Writes an Element by token -Return NW_STAT_BAD_INPUT_PARAM - NW_STAT_OUT_OF_MEMORY - NW_STAT_SUCCESS -*/ -NW_Status_t -NW_Encoder_writeElementByToken(NW_WBXML_Writer_t* pW, - NW_Uint16 elementToken) -{ - NW_Status_t s; - NW_Uint32 ignoreIndex; - - if (pW == NULL) { - return NW_STAT_BAD_INPUT_PARAM; - } - s = NW_WBXML_Writer_TagToken(pW, elementToken, &ignoreIndex); - if (NW_STAT_IS_FAILURE(s)) { - return s; - } - - return NW_WBXML_Writer_End(pW); -} - -/* -Writes an Element -Return NW_STAT_BAD_INPUT_PARAM - NW_STAT_OUT_OF_MEMORY - NW_STAT_SUCCESS -*/ -NW_Status_t -NW_Encoder_writeElementByName(NW_WBXML_Writer_t* pW, - NW_String_t *elementName, - NW_Uint32 encoding) -{ - NW_Status_t s; - NW_Uint32 ignoreIndex; - NW_Uint32 byteCount; - NW_Int32 charCount; - - if ((elementName == NULL) || (pW == NULL)) { - return NW_STAT_BAD_INPUT_PARAM; - } - - charCount = NW_String_charBuffGetLength(elementName->storage, - encoding, - &byteCount); - if (charCount < 0) { - return NW_STAT_BAD_INPUT_PARAM; - } - NW_ASSERT(byteCount == elementName->length); - s = NW_WBXML_Writer_TagString(pW, encoding, (NW_Uint32)charCount, byteCount, - elementName->storage, &ignoreIndex); - if (NW_STAT_IS_FAILURE(s)) { - return s; - } - - return NW_WBXML_Writer_End(pW); -} - -/* -Writes a TextItem -Return NW_STAT_BAD_INPUT_PARAM - NW_STAT_OUT_OF_MEMORY - NW_STAT_SUCCESS -*/ -NW_Status_t -NW_Encoder_writeText(NW_WBXML_Writer_t* pW, - NW_TinyDom_Text_t *text, - NW_Uint32 encoding) -{ - NW_Status_t s; - s = NW_Encoder_writeAttrVal(pW, text, encoding); - if (NW_STAT_IS_FAILURE(s)) { - return s; - } - - return NW_WBXML_Writer_End(pW); -} - -