예제 #1
0
 public override void OnAttribute(DOM.Attribute pair)
 {
     PrintNodeName(pair);
     PrintNodeStart(pair);
     base.OnAttribute(pair);
     PrintNodeEnd(pair);
 }
 public override void Visit(DOM.Attribute attribute)
 {
     _namespaceResolver.ProcessNsPrefix((IMappedPair)attribute);
     ProcessInterpolation((IPairWithInterpolation)attribute);
     base.Visit(attribute);
     Visit(attribute.PairValue);
 }
예제 #3
0
 public override void Visit(DOM.Attribute attribute)
 {
     CheckBlockIntegrity(attribute);
     CheckPairValue(attribute);
     if (CheckStartOfChoiceContainer(attribute, new PairCollection <Entity>().AddRange(((DOM.Mapped.Attribute)attribute).InterpolationItems?.OfType <Entity>())))
     {
         EndChoiceContainer();
     }
 }
예제 #4
0
        public override void OnAttribute(DOM.Attribute node)
        {
            string prefix, ns;

            _context.NamespaceResolver.GetPrefixAndNs(node, _currentDocument,
                                                      () => ScopeContext.Peek(),
                                                      out prefix, out ns);

            _xmlTextWriter.WriteStartAttribute(prefix, node.Name, ns);
            ResolveValue(node);
            _xmlTextWriter.WriteEndAttribute();

            LocationMap.Add(new LexicalInfo(_currentDocument.Module.FileName, node.start.Line, node.start.Column, node.start.Index));
        }
예제 #5
0
 public override void OnAttribute(DOM.Attribute node)
 {
     PrintNodeStart(node);
     if (node.ObjectValue is Node)
     {
         _sb.Append("= ");
         _valueNodeExpected.Push(true);
         Visit(node.ObjectValue as Node);
         _valueNodeExpected.Pop();
     }
     else if (node.Value != null)
     {
         _sb.Append("= `");
         _sb.Append(node.Value);
         _sb.Append("`");
     }
     _sb.AppendLine();
 }
예제 #6
0
        public override void OnAttribute(DOM.Attribute attribute)
        {
            string prefix = string.Empty, ns = string.Empty;

            if (!string.IsNullOrEmpty(attribute.NsPrefix))
            {
                NamespaceResolver.GetPrefixAndNs(attribute, _currentDocument,
                                                 () => ScopeContext.Peek(),
                                                 out prefix, out ns);
            }
            _xmlTextWriter.WriteStartAttribute(prefix, attribute.Name, ns);
            if (!ResolveValue(attribute))
            {
                EnterChoiceContainer(attribute, new PairCollection <Entity>().AddRange(((DOM.Mapped.Attribute)attribute).InterpolationItems?.OfType <Entity>()));
            }
            _xmlTextWriter.WriteEndAttribute();

            AddLocationMapRecord(_currentModuleMember.Module.FileName, (IMappedPair)attribute);
        }
예제 #7
0
        private string ResolveAttributeValue(DOM.Attribute node)
        {
            if (node.ObjectValue != null)
            {
                var       value = node.ObjectValue as Parameter;
                ValueType valueType;
                if (value != null)
                {
                    return(ResolveValueParameter(value, out valueType));
                }
                else if (node.ObjectValue is Alias)
                {
                    return(ResolveValueAlias((Alias)node.ObjectValue, out valueType));
                }
            }
            else
            {
                return(node.Value);
            }

            return(null);
        }