diff --git a/contrib/natvis/pugixml.natvis b/contrib/natvis/pugixml.natvis
new file mode 100644
index 0000000..600f5e8
--- /dev/null
+++ b/contrib/natvis/pugixml.natvis
@@ -0,0 +1,82 @@
+
+
+
+ {_root}
+ none
+
+ _root
+
+
+
+
+ null
+ document
+ <{name,sb}>
+ {value,sb}
+ <![CDATA[{value,sb}]]>
+ <--{value,sb}-->
+ <?{name,sb}?>
+ <?{name,sb}?>
+ <!DOCTYPE {value,sb}>
+
+ - value,na
+
+
+
+
+
+
+ - curr,view(child)na
+ curr = curr->next_attribute
+
+
+
+
+
+ first_child
+ next_sibling
+ this,na
+
+
+
+
+
+ {_attr}
+ none
+
+ _attr
+
+
+
+
+ {name,sb} = {value,sb}
+ {value,sb}
+
+ - name,na
+ - value,na
+
+
+
+
+ {_node,na} "{_attribute._attr->name,sb}"="{_attribute._attr->value,sb}"
+ {_node,na}
+ {_attribute}
+ empty
+
+ _node
+ _attribute
+ - _node,na
+ - _attribute,na
+
+
+
+
+
+ - _type
+
+ _end - _begin
+ _begin
+
+
+
+
\ No newline at end of file
diff --git a/contrib/natvis/pugixml_wide.natvis b/contrib/natvis/pugixml_wide.natvis
new file mode 100644
index 0000000..e4f9ee6
--- /dev/null
+++ b/contrib/natvis/pugixml_wide.natvis
@@ -0,0 +1,82 @@
+
+
+
+ {_root}
+ none
+
+ _root
+
+
+
+
+ null
+ document
+ <{name,sub}>
+ {value,sub}
+ <![CDATA[{value,sub}]]>
+ <--{value,sub}-->
+ <?{name,sub}?>
+ <?{name,sub}?>
+ <!DOCTYPE {value,sub}>
+
+ - value,na
+
+
+
+
+
+
+ - curr,view(child)na
+ curr = curr->next_attribute
+
+
+
+
+
+ first_child
+ next_sibling
+ this,na
+
+
+
+
+
+ {_attr}
+ none
+
+ _attr
+
+
+
+
+ {name,sub} = {value,sub}
+ {value,sub}
+
+ - name,na
+ - value,na
+
+
+
+
+ {_node,na} "{_attribute._attr->name,sub}"="{_attribute._attr->value,sub}"
+ {_node,na}
+ {_attribute}
+ empty
+
+ _node
+ _attribute
+ - _node,na
+ - _attribute,na
+
+
+
+
+
+ - _type
+
+ _end - _begin
+ _begin
+
+
+
+
\ No newline at end of file