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