While other answers are technically correct, they omit the fact that SVG provides an alternative mechanism for data-*. SVG allows any attribute and tag to be included, as long as it doesn’t conflict with existing ones (in other words: you should use namespaces).
To use this (equivalent) mechanism:
- use
mydata:idinstead ofdata-myid, like this:<p mydata:id="123456"> - make sure you define the namespace in SVG opening tag, like this:
<svg xmlns:mydata="http://www.myexample.com/whatever">
EDIT: SVG2, currently W3C Candidate Recommendation (04 October 2018), will support data- directly (without namespaces, the same as HTML). It will take some time before the support is widespread though. Thanks @cvrebert for pointing this out.