diff --git a/user/src/com/google/gwt/uibinder/rebind/BundleWriter.java b/user/src/com/google/gwt/uibinder/rebind/BundleWriter.java
index 02c09c2..aeff25f 100644
--- a/user/src/com/google/gwt/uibinder/rebind/BundleWriter.java
+++ b/user/src/com/google/gwt/uibinder/rebind/BundleWriter.java
@@ -21,6 +21,8 @@
 import com.google.gwt.resources.client.ClientBundle;
 import com.google.gwt.resources.client.CssResource.Import;
 import com.google.gwt.resources.client.DataResource;
+import com.google.gwt.resources.client.DataResource.DoNotEmbed;
+import com.google.gwt.resources.client.DataResource.MimeType;
 import com.google.gwt.resources.client.ImageResource;
 import com.google.gwt.resources.client.ImageResource.ImageOptions;
 import com.google.gwt.resources.client.ImageResource.RepeatStyle;
@@ -45,6 +47,8 @@
 
   private final JClassType clientBundleType;
   private final JClassType dataResourceType;
+  private final JClassType doNotEmbedType;
+  private final JClassType dataMimeTypeType;
   private final JClassType imageOptionType;
   private final JClassType imageResourceType;
   private final JClassType repeatStyleType;
@@ -61,6 +65,8 @@
 
     clientBundleType = types.findType(ClientBundle.class.getName());
     dataResourceType = types.findType(DataResource.class.getCanonicalName());
+    doNotEmbedType = types.findType(DoNotEmbed.class.getCanonicalName());
+    dataMimeTypeType = types.findType(MimeType.class.getCanonicalName());
     imageOptionType = types.findType(ImageOptions.class.getCanonicalName());
     imageResourceType = types.findType(ImageResource.class.getCanonicalName());
     repeatStyleType = types.findType(RepeatStyle.class.getCanonicalName());
@@ -87,6 +93,8 @@
     // Imports
     writer.write("import %s;", clientBundleType.getQualifiedSourceName());
     writer.write("import %s;", dataResourceType.getQualifiedSourceName());
+    writer.write("import %s;", doNotEmbedType.getQualifiedSourceName());
+    writer.write("import %s;", dataMimeTypeType.getQualifiedSourceName());
     writer.write("import %s;", imageResourceType.getQualifiedSourceName());
     writer.write("import %s;", imageOptionType.getQualifiedSourceName());
     writer.write("import %s;", importAnnotationType.getQualifiedSourceName());
@@ -108,6 +116,15 @@
     // Write data methods
     for (ImplicitDataResource data : bundleClass.getDataMethods()) {
       writer.write("@Source(\"%s\")", data.getSource());
+      writer.newline();
+      if (data.getDoNotEmbed() == Boolean.TRUE) {
+        writer.write("@DoNotEmbed");
+        writer.newline();
+      }
+      if (data.getMimeType() != null) {
+        writer.write("@MimeType(\"%s\")", data.getMimeType());
+        writer.newline();
+      }
       writer.write("%s %s();", dataResourceType.getName(), data.getName());
       writer.newline();
     }
diff --git a/user/src/com/google/gwt/uibinder/rebind/UiBinderParser.java b/user/src/com/google/gwt/uibinder/rebind/UiBinderParser.java
index b7e16ca..1aacda7 100644
--- a/user/src/com/google/gwt/uibinder/rebind/UiBinderParser.java
+++ b/user/src/com/google/gwt/uibinder/rebind/UiBinderParser.java
@@ -93,6 +93,8 @@
   private static final String SOURCE_ATTRIBUTE = "src";
   private static final String TYPE_ATTRIBUTE = "type";
   private static final String GSS_ATTRIBUTE = "gss";
+  private static final String DO_NOT_EMBED_ATTRIBUTE = "doNotEmbed";
+  private static final String MIME_TYPE_ATTRIBUTE = "mimeType";
 
   // TODO(rjrjr) Make all the ElementParsers receive their dependencies via
   // constructor like this one does, and make this an ElementParser. I want
@@ -182,8 +184,12 @@
   private void createData(XMLElement elem) throws UnableToCompleteException {
     String name = elem.consumeRequiredRawAttribute(FIELD_ATTRIBUTE);
     String source = elem.consumeRequiredRawAttribute(SOURCE_ATTRIBUTE);
-    ImplicitDataResource dataMethod = bundleClass.createDataResource(name,
-        source);
+    // doNotEmbed is optional on DataResource
+    Boolean doNotEmbed = elem.consumeBooleanConstantAttribute(DO_NOT_EMBED_ATTRIBUTE);
+    // mimeType is optional on DataResource
+    String mimeType = elem.consumeRawAttribute(MIME_TYPE_ATTRIBUTE);
+    ImplicitDataResource dataMethod = bundleClass.createDataResource(
+        name, source, mimeType, doNotEmbed);
     FieldWriter field = fieldManager.registerField(dataResourceType,
         dataMethod.getName());
     field.setInitializer(String.format("%s.%s()",
diff --git a/user/src/com/google/gwt/uibinder/rebind/model/ImplicitClientBundle.java b/user/src/com/google/gwt/uibinder/rebind/model/ImplicitClientBundle.java
index e1afec8..9c98cf2 100644
--- a/user/src/com/google/gwt/uibinder/rebind/model/ImplicitClientBundle.java
+++ b/user/src/com/google/gwt/uibinder/rebind/model/ImplicitClientBundle.java
@@ -82,10 +82,14 @@
    *
    * @param name the method name and the ui:field name
    * @param source path to the resource
+   * @param mimeType type of the resource
+   * @param doNotEmbed flag to prevent embedding the data resource
+   *
    * @return the newly-created DataResource
    */
-  public ImplicitDataResource createDataResource(String name, String source) {
-    ImplicitDataResource data = new ImplicitDataResource(name, source);
+  public ImplicitDataResource createDataResource(
+      String name, String source, String mimeType, Boolean doNotEmbed) {
+    ImplicitDataResource data = new ImplicitDataResource(name, source, mimeType, doNotEmbed);
     dataMethods.add(data);
     return data;
   }
diff --git a/user/src/com/google/gwt/uibinder/rebind/model/ImplicitDataResource.java b/user/src/com/google/gwt/uibinder/rebind/model/ImplicitDataResource.java
index 428ea8d..cce237e 100644
--- a/user/src/com/google/gwt/uibinder/rebind/model/ImplicitDataResource.java
+++ b/user/src/com/google/gwt/uibinder/rebind/model/ImplicitDataResource.java
@@ -20,11 +20,15 @@
  */
 public class ImplicitDataResource {
   private final String name;
+  private final String mimeType;
   private final String source;
+  private final Boolean doNotEmbed;
 
-  ImplicitDataResource(String name, String source) {
+  ImplicitDataResource(String name, String source, String mimeType, Boolean doNotEmbed) {
     this.name = name;
     this.source = source;
+    this.mimeType = mimeType;
+    this.doNotEmbed = doNotEmbed;
   }
 
   public String getName() {
@@ -34,4 +38,12 @@
   public String getSource() {
     return source;
   }
+
+  public String getMimeType() {
+    return mimeType;
+  }
+
+  public Boolean getDoNotEmbed() {
+    return doNotEmbed;
+  }
 }
diff --git a/user/src/com/google/gwt/uibinder/resources/UiBinder.xsd b/user/src/com/google/gwt/uibinder/resources/UiBinder.xsd
index 1e431e3..b7c2bf6 100644
--- a/user/src/com/google/gwt/uibinder/resources/UiBinder.xsd
+++ b/user/src/com/google/gwt/uibinder/resources/UiBinder.xsd
@@ -196,6 +196,14 @@
             name="src"
             type="xs:string"
             use="required" />
+        <xs:attribute
+            name="doNotEmbed"
+            type="xs:boolean"
+            use="optional" />
+        <xs:attribute
+            name="mimeType"
+            type="xs:string"
+            use="optional" />
 
         <xs:anyAttribute
             processContents="lax" />
diff --git a/user/test/com/google/gwt/uibinder/test/client/UiBinderTest.java b/user/test/com/google/gwt/uibinder/test/client/UiBinderTest.java
index 9cf5732..c4f5fe4 100644
--- a/user/test/com/google/gwt/uibinder/test/client/UiBinderTest.java
+++ b/user/test/com/google/gwt/uibinder/test/client/UiBinderTest.java
@@ -666,6 +666,19 @@
     assertEquals("P", widgetUi.flowPanelWithTag.getElement().getTagName());
   }
 
+  public void testEmbeddedSvgMimeType() {
+    String url = widgetUi.embeddedSvgData.getSafeUri().asString();
+    if (url.startsWith("data:")) {
+      assertTrue(url.startsWith("data:image/svg+xml"));
+    }
+  }
+
+  public void testLinkedSvgNotEmbedded() {
+    String url = widgetUi.linkedSvgData.getSafeUri().asString();
+    assertFalse(url.startsWith("data:"));
+    assertTrue(url, url.endsWith(".svg"));
+  }
+
   /**
    * Assert that the expect strings are found in body, and in the order given.
    * WARNING: both body and expected are normalized to lower case, to get around
diff --git a/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.java b/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.java
index 00cee8c..9d9ac3e 100644
--- a/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.java
+++ b/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.java
@@ -217,6 +217,8 @@
   @UiField Label labelWithComputedText;
   @UiField FlowPanel flowPanelWithTag;
   @UiField Element myElementWithTagName;
+  @UiField DataResource embeddedSvgData;
+  @UiField DataResource linkedSvgData;
 
   ValueChangeEvent<Double> doubleValueChangeEvent;
 
diff --git a/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.ui.xml b/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.ui.xml
index 4d91c61..2e30fee 100644
--- a/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.ui.xml
+++ b/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.ui.xml
@@ -142,6 +142,7 @@
     cursor:cursor,pointer;
   }
 </ui:style>
+
 <ui:data field='heartCursorResource' src='heart.cur'/>
 
 <ui:style field='mySpritelyStyle'>
@@ -164,11 +165,15 @@
       font-size: 1.5em;
     }
 </ui:style>
+
 <ui:image field='prettyImage' />
 <ui:image field='prettyTilingImage' src='prettyImage.png' flipRtl='true' repeatStyle='Both'/>
 <ui:image field='right'/>
 <ui:image field='down'/>
 
+<ui:data field="embeddedSvgData" src="background.svg" mimeType="image/svg+xml" />
+<ui:data field="linkedSvgData" src="background.svg" doNotEmbed="true" />
+
 <gwt:DockPanel ui:field="root" width="100%" verticalAlignment="ALIGN_TOP">
   <gwt:Dock direction='NORTH'>
     <gwt:HTML ui:field='styleLess' styleName=''>
@@ -186,7 +191,7 @@
   <gwt:Dock direction='WEST'>
     <gwt:HTML ui:field='sideBarWidget' pixelSize="100, 150">
       <div ui:field="sideBar"
-      style='border: 4px solid gray; padding: 4px; margin: 4px;'
+          style='border: 4px solid gray; padding: 4px; margin: 4px;'
       >This could<br/>
         be a<br/>
         side bar<br/>
diff --git a/user/test/com/google/gwt/uibinder/test/client/background.svg b/user/test/com/google/gwt/uibinder/test/client/background.svg
new file mode 100644
index 0000000..b61f202
--- /dev/null
+++ b/user/test/com/google/gwt/uibinder/test/client/background.svg
@@ -0,0 +1,3 @@
+<svg width="20" height="20" xmlns="http://www.w3.org/2000/svg">
+  <circle stroke="#000000" r="5" cy="10" cx="10" stroke-width="0" fill="#FF0000" />
+</svg>
