summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Build.Tasks
diff options
context:
space:
mode:
authorStephane Delcroix <stephane@delcroix.org>2016-08-15 22:07:35 +0200
committerJason Smith <jason.smith@xamarin.com>2016-08-15 13:07:35 -0700
commit90396b0ffdecf65b8e2eea8eb4f148bdea1071c4 (patch)
treeb2a18b90525c693113b796f97c273e25d9980ddb /Xamarin.Forms.Build.Tasks
parent775df09a3e45e90128f9047e8618461d4c4411a0 (diff)
downloadxamarin-forms-90396b0ffdecf65b8e2eea8eb4f148bdea1071c4.tar.gz
xamarin-forms-90396b0ffdecf65b8e2eea8eb4f148bdea1071c4.tar.bz2
xamarin-forms-90396b0ffdecf65b8e2eea8eb4f148bdea1071c4.zip
Refix mc ignorable (#302)
* Revert "Fix mc ignorable (#298)" This reverts commit 31c2be29d5982338ae178d1b0f107e23e7749782. * [Xaml] fix mc:Ignorable
Diffstat (limited to 'Xamarin.Forms.Build.Tasks')
-rw-r--r--Xamarin.Forms.Build.Tasks/CreateObjectVisitor.cs17
-rw-r--r--Xamarin.Forms.Build.Tasks/ILRootNode.cs3
-rw-r--r--Xamarin.Forms.Build.Tasks/SetNamescopesAndRegisterNamesVisitor.cs3
-rw-r--r--Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs9
-rw-r--r--Xamarin.Forms.Build.Tasks/SetResourcesVisitor.cs6
-rw-r--r--Xamarin.Forms.Build.Tasks/XamlCTask.cs3
6 files changed, 4 insertions, 37 deletions
diff --git a/Xamarin.Forms.Build.Tasks/CreateObjectVisitor.cs b/Xamarin.Forms.Build.Tasks/CreateObjectVisitor.cs
index e6453575..449b887f 100644
--- a/Xamarin.Forms.Build.Tasks/CreateObjectVisitor.cs
+++ b/Xamarin.Forms.Build.Tasks/CreateObjectVisitor.cs
@@ -39,17 +39,6 @@ namespace Xamarin.Forms.Build.Tasks
public void Visit(ValueNode node, INode parentNode)
{
Context.Values[node] = node.Value;
-
- XmlName propertyName;
- if (SetPropertiesVisitor.TryGetPropertyName(node, parentNode, out propertyName))
- {
- if (propertyName.NamespaceURI == "http://schemas.openxmlformats.org/markup-compatibility/2006" &&
- propertyName.LocalName == "Ignorable")
- {
- (parentNode.IgnorablePrefixes ?? (parentNode.IgnorablePrefixes = new List<string>())).AddRange(
- (node.Value as string).Split(','));
- }
- }
}
public void Visit(MarkupNode node, INode parentNode)
@@ -59,12 +48,6 @@ namespace Xamarin.Forms.Build.Tasks
public void Visit(ElementNode node, INode parentNode)
{
- if (node.SkipPrefix((node.NamespaceResolver ?? parentNode.NamespaceResolver).LookupPrefix(node.NamespaceURI))) {
- node.Properties.Clear();
- node.CollectionItems.Clear();
- return;
- }
-
var typeref = node.XmlType.GetTypeReference(Module, node);
TypeDefinition typedef = typeref.Resolve();
diff --git a/Xamarin.Forms.Build.Tasks/ILRootNode.cs b/Xamarin.Forms.Build.Tasks/ILRootNode.cs
index 1c59cd3c..77e1e8ca 100644
--- a/Xamarin.Forms.Build.Tasks/ILRootNode.cs
+++ b/Xamarin.Forms.Build.Tasks/ILRootNode.cs
@@ -1,3 +1,4 @@
+using System.Xml;
using Mono.Cecil;
using Xamarin.Forms.Xaml;
@@ -5,7 +6,7 @@ namespace Xamarin.Forms.Build.Tasks
{
class ILRootNode : RootNode
{
- public ILRootNode(XmlType xmlType, TypeReference typeReference) : base(xmlType, null)
+ public ILRootNode(XmlType xmlType, TypeReference typeReference, IXmlNamespaceResolver nsResolver) : base(xmlType, nsResolver)
{
TypeReference = typeReference;
}
diff --git a/Xamarin.Forms.Build.Tasks/SetNamescopesAndRegisterNamesVisitor.cs b/Xamarin.Forms.Build.Tasks/SetNamescopesAndRegisterNamesVisitor.cs
index 477328e2..8e03b925 100644
--- a/Xamarin.Forms.Build.Tasks/SetNamescopesAndRegisterNamesVisitor.cs
+++ b/Xamarin.Forms.Build.Tasks/SetNamescopesAndRegisterNamesVisitor.cs
@@ -43,9 +43,6 @@ namespace Xamarin.Forms.Build.Tasks
public void Visit(ElementNode node, INode parentNode)
{
- if (node.SkipPrefix((node.NamespaceResolver ?? parentNode.NamespaceResolver).LookupPrefix(node.NamespaceURI)))
- return;
-
VariableDefinition ns;
if (parentNode == null || IsDataTemplate(node, parentNode) || IsStyle(node, parentNode))
ns = CreateNamescope();
diff --git a/Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs b/Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs
index a1c0711a..b6bdf40b 100644
--- a/Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs
+++ b/Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs
@@ -67,15 +67,9 @@ namespace Xamarin.Forms.Build.Tasks
if (skips.Contains(propertyName))
return;
- if (node.SkipPrefix((node.NamespaceResolver ?? parentNode.NamespaceResolver)?.LookupPrefix(propertyName.NamespaceURI)))
- return;
if (propertyName.NamespaceURI == "http://schemas.openxmlformats.org/markup-compatibility/2006" &&
propertyName.LocalName == "Ignorable")
- {
- (parentNode.IgnorablePrefixes ?? (parentNode.IgnorablePrefixes = new List<string>())).AddRange(
- (node.Value as string).Split(','));
return;
- }
SetPropertyValue(Context.Variables[(IElementNode)parentNode], propertyName, node, Context, node);
}
@@ -85,9 +79,6 @@ namespace Xamarin.Forms.Build.Tasks
public void Visit(ElementNode node, INode parentNode)
{
- if (node.SkipPrefix((node.NamespaceResolver ?? parentNode.NamespaceResolver)?.LookupPrefix(node.NamespaceURI)))
- return;
-
//if this node is an IMarkupExtension, invoke ProvideValue() and replace the variable
var vardef = Context.Variables[node];
var vardefref = new VariableDefinitionReference(vardef);
diff --git a/Xamarin.Forms.Build.Tasks/SetResourcesVisitor.cs b/Xamarin.Forms.Build.Tasks/SetResourcesVisitor.cs
index 2bf19c26..25efa439 100644
--- a/Xamarin.Forms.Build.Tasks/SetResourcesVisitor.cs
+++ b/Xamarin.Forms.Build.Tasks/SetResourcesVisitor.cs
@@ -52,15 +52,9 @@ namespace Xamarin.Forms.Build.Tasks
return;
}
- if (node.SkipPrefix((node.NamespaceResolver ?? parentNode.NamespaceResolver)?.LookupPrefix(propertyName.NamespaceURI)))
- return;
if (propertyName.NamespaceURI == "http://schemas.openxmlformats.org/markup-compatibility/2006" &&
propertyName.LocalName == "Ignorable")
- {
- (parentNode.IgnorablePrefixes ?? (parentNode.IgnorablePrefixes = new List<string>())).AddRange(
- (node.Value as string).Split(','));
return;
- }
if (propertyName.LocalName != "MergedWith")
return;
SetPropertiesVisitor.SetPropertyValue(Context.Variables[(IElementNode)parentNode], propertyName, node, Context, node);
diff --git a/Xamarin.Forms.Build.Tasks/XamlCTask.cs b/Xamarin.Forms.Build.Tasks/XamlCTask.cs
index ae2a66d0..b119b4e9 100644
--- a/Xamarin.Forms.Build.Tasks/XamlCTask.cs
+++ b/Xamarin.Forms.Build.Tasks/XamlCTask.cs
@@ -300,6 +300,7 @@ namespace Xamarin.Forms.Build.Tasks
rootnode.Accept(new XamlNodeVisitor((node, parent) => node.Parent = parent), null);
rootnode.Accept(new ExpandMarkupsVisitor(visitorContext), null);
+ rootnode.Accept(new PruneIgnoredNodesVisitor(), null);
rootnode.Accept(new CreateObjectVisitor(visitorContext), null);
rootnode.Accept(new SetNamescopesAndRegisterNamesVisitor(visitorContext), null);
rootnode.Accept(new SetFieldVisitor(visitorContext), null);
@@ -427,7 +428,7 @@ namespace Xamarin.Forms.Build.Tasks
}
XamlParser.ParseXaml(
- rootnode = new ILRootNode(new XmlType(reader.NamespaceURI, reader.Name, null), typeReference), reader);
+ rootnode = new ILRootNode(new XmlType(reader.NamespaceURI, reader.Name, null), typeReference, reader as IXmlNamespaceResolver), reader);
break;
}
}