diff --git a/reanimate-svg.cabal b/reanimate-svg.cabal
--- a/reanimate-svg.cabal
+++ b/reanimate-svg.cabal
@@ -1,5 +1,5 @@
 name:                reanimate-svg
-version:             0.9.2.1
+version:             0.9.3.0
 synopsis:            SVG file loader and serializer
 description:
   reanimate-svg provides types representing a SVG document,
diff --git a/src/Graphics/SvgTree/Types.hs b/src/Graphics/SvgTree/Types.hs
--- a/src/Graphics/SvgTree/Types.hs
+++ b/src/Graphics/SvgTree/Types.hs
@@ -2548,6 +2548,7 @@
     , _definitions      :: M.Map String Tree
     , _description      :: String
     , _documentLocation :: FilePath
+    , _documentAspectRatio :: PreserveAspectRatio
     }
     deriving Show
 
diff --git a/src/Graphics/SvgTree/XmlParser.hs b/src/Graphics/SvgTree/XmlParser.hs
--- a/src/Graphics/SvgTree/XmlParser.hs
+++ b/src/Graphics/SvgTree/XmlParser.hs
@@ -1231,6 +1231,9 @@
     , _definitions = defs
     , _description = ""
     , _documentLocation = rootLocation
+    , _documentAspectRatio =
+        fromMaybe defaultSvg $
+        attributeFinder "preserveAspectRatio" e >>= aparse
     }
   where
     parsedElements = map unparse $ elChildren e
@@ -1266,7 +1269,9 @@
         ,attr "version" "1.1"] ++
         catMaybes [attr "width" . serializeNumber <$> _width doc
                   ,attr "height" . serializeNumber <$> _height doc
-                  ]
+                  ] ++
+        catMaybes [attr "preserveAspectRatio" <$>  aserialize (_documentAspectRatio doc)
+                  | _documentAspectRatio doc /= defaultSvg ]
 
 xmlOfTree :: Tree -> Maybe X.Element
 xmlOfTree = serializeTreeNode
