1ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Copyright 2014 PDFium Authors. All rights reserved. 2ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Use of this source code is governed by a BSD-style license that can be 3ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// found in the LICENSE file. 4ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 5ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 7ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/fxcrt/fx_xml.h" 8ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "xml_int.h" 9ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid FX_XML_SplitQualifiedName(FX_BSTR bsFullName, CFX_ByteStringC &bsSpace, CFX_ByteStringC &bsName) 10ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 11ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if (bsFullName.IsEmpty()) { 12ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return; 13ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 14ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FX_INT32 iStart = 0; 15ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov for (; iStart < bsFullName.GetLength(); iStart ++) { 16ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if (bsFullName.GetAt(iStart) == ':') { 17ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov break; 18ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 19ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 20ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if (iStart >= bsFullName.GetLength()) { 21ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov bsName = bsFullName; 22ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } else { 23ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov bsSpace = CFX_ByteStringC(bsFullName.GetCStr(), iStart); 24ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov iStart ++; 25ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov bsName = CFX_ByteStringC(bsFullName.GetCStr() + iStart, bsFullName.GetLength() - iStart); 26ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 27ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 28ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CXML_Element::SetTag(FX_BSTR qSpace, FX_BSTR tagname) 29ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 30ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov IFX_Allocator* pAllocator = m_Children.m_pAllocator; 31ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_QSpaceName.Set(qSpace, pAllocator); 32ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_TagName.Set(tagname, pAllocator); 33ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 34ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CXML_Element::SetTag(FX_BSTR qTagName) 35ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 36ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(!qTagName.IsEmpty()); 37ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov IFX_Allocator* pAllocator = m_Children.m_pAllocator; 38ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov CFX_ByteStringC bsSpace, bsName; 39ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FX_XML_SplitQualifiedName(qTagName, bsSpace, bsName); 40ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_QSpaceName.Set(bsSpace, pAllocator); 41ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_TagName.Set(bsName, pAllocator); 42ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 43