• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include "image_io/xml/xml_attribute_rule.h"
2 
3 #include "image_io/xml/xml_handler.h"
4 #include "image_io/xml/xml_token_context.h"
5 
6 namespace photos_editing_formats {
7 namespace image_io {
8 
XmlAttributeRule()9 XmlAttributeRule::XmlAttributeRule() : XmlRule("Attribute") {
10   // S? Name S? = S? 'Value'
11   AddOptionalWhitespaceTerminal();
12   AddNameTerminal().WithAction(
13       [&](const XmlActionContext& context) { return HandleName(context); });
14   AddOptionalWhitespaceTerminal();
15   AddLiteralTerminal("=");
16   AddOptionalWhitespaceTerminal();
17   AddQuotedStringTerminal().WithAction(
18       [&](const XmlActionContext& context) { return HandleValue(context); });
19 }
20 
HandleName(const XmlActionContext & context)21 DataMatchResult XmlAttributeRule::HandleName(const XmlActionContext& context) {
22   XmlTokenContext token_context(context);
23   return context.GetHandler()->AttributeName(token_context);
24 }
25 
HandleValue(const XmlActionContext & context)26 DataMatchResult XmlAttributeRule::HandleValue(const XmlActionContext& context) {
27   XmlTokenContext token_context(context);
28   return context.GetHandler()->AttributeValue(token_context);
29 }
30 
31 }  // namespace image_io
32 }  // namespace photos_editing_formats
33