Beispiel #1
0
      //-----------------------------------------------------------------------
      void Attribute::writeBufferXML(const GeneratorPtr &inGenerator, char * &ioPos) const
      {
        bool hasQuotes = mHasQuotes;

        ZS_THROW_INVALID_USAGE_IF(mName.isEmpty())
        Generator::writeBuffer(ioPos, mName);
        if (!mValuelessAttribute)
        {
          Generator::writeBuffer(ioPos, "=");
          char quote[2];
          quote[0] = (String::npos == mValue.find('\"') ? '\"' : '\'');
          quote[1] = 0;
          String value = mValue;
          if (0 != (XML::Generator::XMLWriteFlag_NormalizeCDATA & inGenerator->getXMLWriteFlags())) {
            quote[0] = '\"';
            value = normalizeAttributeValue(mValue);
            hasQuotes = true;
          }
          if (hasQuotes) {
            Generator::writeBuffer(ioPos, &(quote[0]));
          }
          Generator::writeBuffer(ioPos, value);
          if (hasQuotes) {
            Generator::writeBuffer(ioPos, &(quote[0]));
          }
        }
      }