PowerPoint writes invalid ODF in regard to draw:id attribute

Regina Henschel 306 Reputation points
2025-09-30T13:37:48.01+00:00

When PowerPoint exports to ODF format (file extension .odp), then it writes draw:id attributes without associated xml:id attribute. That is invalid, see https://docs.oasis-open.org/office/OpenDocument/v1.4/cs01/schemas/OpenDocument-v1.4-schema.rng You can see in the schema in rng:define name="common-draw-id-attlist", that it is not allowed to have the draw:id alone.

Notice that the draw:id attribute is already deprecated in ODF 1.3. PowerPoint should not write it at all, but write xml:id instead. But if it needs to write it for backward compatibility with older versions of PowerPoint, then it must be written together with an xml:id attribute and both must have the same value. Find more about the draw:id attribute in section 19.187.3 in part 3 of ODF standard. https://docs.oasis-open.org/office/OpenDocument/v1.4/cs01/part3-schema/OpenDocument-v1.4-cs01-part3-schema.html#__RefHeading__1417084_253892949

Microsoft 365 and Office | Open Specifications
Microsoft 365 and Office | Open Specifications
Technical documents for protocols, computer languages, standards support, and data portability. The goal with Open Specifications is to help developers open new opportunities to interoperate with Windows, SQL, Office, and SharePoint.
{count} votes

Answer accepted by question author
  1. Hin-V 9,950 Reputation points Microsoft External Staff Moderator
    2025-09-30T14:56:13.7166667+00:00

    Hi @Regina Henschel

    Welcome you to Microsoft Q&A forum. 

    Thank you for your detailed and  feedback regarding the issue with PowerPoint's ODF (.odp) export functionality. We sincerely appreciate you taking the time to provide specific details, including references to the official OpenDocument v1.4 standard 

    The current implementation, which writes the draw:id attribute without a corresponding xml:id, results in a non-compliant file. We understand the importance of adhering to open standards to ensure interoperability. 

    You may consider the following workarounds: 

    1.Manual XML Edit (Quick Fix for Small Files): 

    odp files are ZIP archives. Extract the contents (e.g., using 7-Zip or unzip command).

    Open content.xml in a text editor or XML editor (like Notepad++ or VS Code with XML plugins).

    Search for elements with draw:id (<draw:frame draw:id="somevalue">).

    Add xml:id with the same value: <draw:frame xml:id="somevalue" draw:id="somevalue">.

    Save, re-zip the folder (ensure the structure matches the original), and rename to .odp.

    Test validation using an online ODF validator or by opening in LibreOffice.

    2.Remove Deprecated Attributes (If Not Needed for Compatibility)

    If backward compatibility isn't a concern, you could script removal of draw:id entirely, relying solely on xml:id for IDs. 

    Since this is a user concern about a feature, encourage you to submit your feedback directly to Microsoft. You can do so through the Microsoft 365 Feedback Portal. User feedback plays a significant role in future feature development. We highly recommend submitting your feedback directly through the Microsoft 365 Feedback Portal. User feedback is a key driver in shaping future updates and enhancements. By sharing your experience, you could help the Microsoft product team better understand user needs and improve the overall experience for everyone. 

    As a forum moderator, I’m here to help guide discussions and share information based on Microsoft documentation and community knowledge, but I don’t have access to internal product insights or the ability to give the precise answer from a developer perspective.  

    If you have any additional concern, feel free to comment below. I be more than happy to assist.


    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread. 


0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.