aboutsummaryrefslogtreecommitdiff
path: root/projects/xerces-c/xmlProtoConverter.h
diff options
context:
space:
mode:
authorVincent Ulitzsch <vincent.ulitzsch@live.de>2019-12-13 20:07:39 +0100
committerjonathanmetzman <31354670+jonathanmetzman@users.noreply.github.com>2019-12-13 11:07:39 -0800
commit7abdcd9b8fde67ac219713d467ce75ce8537c3d3 (patch)
treef3f3236dbaebf7129aacd324b6333b2f962f8e78 /projects/xerces-c/xmlProtoConverter.h
parentb03bc0945de65e7b811eab12a3680eca42640e35 (diff)
downloadoss-fuzz-7abdcd9b8fde67ac219713d467ce75ce8537c3d3.tar.gz
Add initial integration xerces-c (#3083)
Diffstat (limited to 'projects/xerces-c/xmlProtoConverter.h')
-rw-r--r--projects/xerces-c/xmlProtoConverter.h101
1 files changed, 101 insertions, 0 deletions
diff --git a/projects/xerces-c/xmlProtoConverter.h b/projects/xerces-c/xmlProtoConverter.h
new file mode 100644
index 000000000..a6333f1b3
--- /dev/null
+++ b/projects/xerces-c/xmlProtoConverter.h
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2019 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <sstream>
+
+#include "xml.pb.h"
+
+namespace xmlProtoFuzzer {
+class ProtoConverter
+{
+public:
+ ProtoConverter() = default;
+
+ ProtoConverter(ProtoConverter const&) = delete;
+
+ ProtoConverter(ProtoConverter&&) = delete;
+
+ std::string protoToString(XmlDocument const&);
+
+private:
+ void visit(Prolog const&);
+
+ void visit(ProcessingInstruction const&);
+
+ void visit(ExternalId const&);
+
+ void visit(DocTypeDecl const&);
+
+ void visit(VersionNum const&);
+
+ void visit(Encodings const&);
+
+ void visit(Misc const&);
+
+ void visit(KeyValue const&);
+
+ void visit(Element const&);
+
+ void visit(ElementDecl const&);
+
+ void visit(AttValue const&);
+
+ void visit(DefaultDecl const&);
+
+ void visit(AttDef const&);
+
+ void visit(AttListDecl const&);
+
+ void visit(NotationDecl const&);
+
+ void visit(EntityDecl const&);
+
+ void visit(EntityValue const&);
+
+ void visit(EntityDef const&);
+
+ void visit(PEDef const&);
+
+ void visit(NDataDecl const&);
+
+ void visit(ConditionalSect const&);
+
+ void visit(OneExtSubsetDecl const&);
+
+ void visit(ExtSubsetDecl const&);
+
+ void visit(MarkupDecl const&);
+
+ void visit(CData const&);
+
+ void visit(Content const&);
+
+ void visit(XmlDeclaration const&);
+
+ void visit(XmlDocument const&);
+
+ std::string removeNonAscii(std::string const&);
+ std::string getUri(Element_Id _x);
+ std::string getPredefined(Element_Id _x, std::string const&);
+
+ std::ostringstream m_output;
+
+ static constexpr auto s_XInclude = "xmlns:xi=\"http://www.w3.org/2001/XInclude\"";
+};
+}
+