SlideShare a Scribd company logo
1 of 43
Components of WordprocessingML
• Main Document
• Paragraphs & Rich Formatting
– Runs
– Run Content
• Tables
• Custom Markup
• Sections
• Styles
– Paragraph
– Character
– Numbering
– Table
– Document Defaults
• Fonts
• Numbering
• Headers/Footers
• Footnotes/Endnotes
• Glossary Document
• Annotations
– Comments
– Revisions
– Bookmarks
• Mail Merge
• Document Settings
– Web Settings
– Compatibility Settings
• Fields & Hyperlinks
• Odds & Ends (Textboxes, Subdocuments, Extensibility)
[Ecma Document Number]
WordprocessingML –
Annotations
Annotations
• Annotations in WordprocessingML store many
kinds of document ‘markup’:
– Revisions (insertions, deletions, moves)
– Comments
– Bookmarks
– Range-level Permissions
– Spelling and Grammar Errors (cached)
Annotations
• Before we discuss each type…
• Annotations as a group present a unique
challenge to an XML format
– They’re inherently not well formed (if we used a
tag to encapsulate them)
Starts in paragraph one
Ends in paragraph two
Types of Annotations
• This motivates the fact that annotations in
WordprocessingML are stored in three ways:
– Inline
– ‘Cross Structure’
– Property
Inline Annotations
• The most common type
– These actually don’t break the wellformedness of
the paragraph structure
Inline Annotations (cont.)
• The del element encapsulates the deleted run,
the ins the inserted run
‘Cross Structure’ Annotations
• Word processing documents also contain
annotations which can span parts of multiple
paragraphs
– i.e. wouldn’t be well formed if they were one tag
‘Cross Structure’ Annotations
(cont.)
• To get around this, these annotations use a
start marker, end marker form.
– An id attribute links the two together
Property Annotations
• The first two buckets cover annotations to
content in the document
– But WordprocessingML allows for revision
marking on properties as well
Property Annotations (cont.)
• The rPrChange stores previous sets of
properties on the object (in this case, the run)
– Stored as another run property
Revisions
• Refers to the explicit storage of all
modifications to a document
– Used to track document’s evolution
For example, someone changed
a couple of words here and it
was tracked
Revisions (cont.)
• Revisions in WordprocessingML contain up to
five pieces of information
– Required
• Type of revision (insertion, deletion, move)
• Unique revision ID
– Optional
• Author information
• Date & time information
• Content of revision (if any)
Revisions - Insertions
• Looking at some samples of revisions:
• Insertions are marked via use of the ins
element
Revisions - Deletions
• Deletions are marked via use of the del
element
Revisions - Moves
• WordprocessingML also supports the concept
of moved text
• Moves are tracked in two parts:
– The move start/end location
– The move contents
Revisions – Moves (cont.)
• The moveFromRangeStart/End elements
specify the start/end of the move start
• The moveFrom element contains the move
start content
Revisions - Moves
• Why two parts?
– The move range is often not the same as the move
contents (because of paragraph marks)
Without this, we would lose the fidelity
as to whether the paragraph is part of
the move
Revisions – Custom Markup
• Custom markup is unique in that, like
paragraphs, there are physical characters at
display time but no corresponding runs in
WordprocessingML
Only one run – the tag is
created at display time
Revisions – Custom Markup (cont.)
• So what if we delete a tag character?
– We can’t just lose that information
• To do this, we again use the start/end marker
syntax
Revisions – Custom Markup (cont.)
• The customXmlDelRangeStart/End elements
tell us a tag character is deleted
– They are linked by an id attribute
Comments
• Comments are another document story in
WordprocessingML
– The contents of comments can be any block-level
content
– Can be formatted, etc.
Comments Part
• Comments are stored in the comments part in
WordprocessingML
– Reached via an implicit relationship from the
document part
– Each comment is then referenced via its id
• Relationship type
http://schemas.openxmlformats.org/wordprocessingml/2006/comment
s
• Content type
vnd-openxmlformats.officedocument.wordprocessingml-
comments+xml
Comments
• A WordprocessingML comment can be divided
into two components:
– The comment anchor (the text on which the
comment applies)
– The comment content (the content of the
comment)
Comment
range
Comment
contents
Comment Anchor
• The first part of a comment is the actual
anchor in the document
– Hooks the comment to text
– Creates the reference to the comment in the
comments part
• This is done via two XML
elements
Comment Range
• The first part of a comment anchor is
determining the comment range
– Like bookmarks and other annotations, comment
ranges are not required to be well formed
• This is done via the
commentRangeStart/End
elements
Comment Reference
• The second part of the comment anchor is an
actual comment reference
– This eastablishes the reference to the specific
comment in the comments part by referencing its
id attrbute
• This is done via the
commentReference
element
This comment
range is linked
to comment 0
Comment Contents
• Once we have an anchor range, we need an
actual comment
– Stored in the comments part
Everything in the bubble is
part of the comment
Comment Contents (cont.)
• Each comment contains up to five things:
– Required
• Comment ID
• At least one block-level element
– Optional
• Comment author
• Comment author initials
• Comment date and time
Comment Contents
• Inside the comment, there is block-level
content which contains the actual comment
Comment content
Comment Contents (cont.)
• As well, the annotationRef element specifies
the location of the comment information
block
Comment
information block
Full Comment Reference Example
Bookmarks
• The granddaddy of annotations in
WordprocessingML
– This type of annotation is again a case of
annotations that don’t need to be well formed
Starts in paragraph one,
ends in paragraph two
Bookmarks (cont.)
• The bookmarkStart/End elements contain the
start end end marker for a bookmark
– The two are linked by the id attribute
Range Permissions
• WordprocessingML range permissions consists
of three main components:
– Start and end anchors to mark content that has
restricted permissions (again)
– ID for linking the start/end marker
– The user(s) who may edit the range
Spelling and Grammar Errors
• WordprocessingML spelling and grammar
errors are a cache of proofing state, and
consist of two main components
• Start and end anchors to mark spelling and
grammatical errors
• Type of error
• Spelling
• grammar
Spelling and Grammar Errors
(cont.)
• Why store a spelling and grammar cache?
– Performance (don’t recheck 2000 pages every
open)
– Storing spelling exceptions (ignore this word you
think is misspelled, silly computer)
Revision Save IDs
• Switching gears a little bit…
• So far, we have focused on annotations as a
record of changes in a document
– However, many people don’t have the foresight to
actually track changes (or don’t want to)
• WordprocessingML also has a facility for
storing unique IDs on objects for the purpose
of comparing two documents
Revision Save IDs (cont.)
• You’ve probably seen these in many of the
examples…
Revision Save IDs (cont.)
• So what is an rsid*?
– Unique hex number that identifies an editing
session – the editing between any two saves
– These are stored for almost every object in
WordprocessingML
• E.g. paragraphs, run, sections, run properties,
paragraph properties, etc.
• This information tells you whether two runs
were last edited during the same session.
Revision Save IDs Example
• In this example, the runs were created in the
same session, and the run was formatted
during a subsequent session
Using Revision Save IDs
• With this information, applications can do
more precise comparisons
– An application knows which things are from the
same set of edits
Disclaimer
This presentation is for informational purposes only, and should
not be relied upon as a substitute or replacement for Microsoft
formal file format documentation, which is available at the
following website: https://msdn.microsoft.com/en-
us/library/cc313118(v=office.12).aspx. Any views or opinions
presented in this material are solely those of the author and do
not necessarily represent those of Microsoft. Microsoft
disclaims all liability for mistakes or inaccuracies in this
presentation.

More Related Content

Viewers also liked

Spreadsheet ml subject styles
Spreadsheet ml subject   stylesSpreadsheet ml subject   styles
Spreadsheet ml subject stylesShawn Villaron
 
DrawingML Subject: Transforms
DrawingML Subject: TransformsDrawingML Subject: Transforms
DrawingML Subject: TransformsShawn Villaron
 
15 wordprocessing ml subject - fields and hyperlinks
15   wordprocessing ml subject - fields and hyperlinks15   wordprocessing ml subject - fields and hyperlinks
15 wordprocessing ml subject - fields and hyperlinksShawn Villaron
 
Spreadsheet ml subject volatile dependencies
Spreadsheet ml subject   volatile dependenciesSpreadsheet ml subject   volatile dependencies
Spreadsheet ml subject volatile dependenciesShawn Villaron
 

Viewers also liked (6)

Spreadsheet ml subject styles
Spreadsheet ml subject   stylesSpreadsheet ml subject   styles
Spreadsheet ml subject styles
 
H61 m dgs
H61 m dgsH61 m dgs
H61 m dgs
 
Ten Hiring Mistakes
Ten Hiring MistakesTen Hiring Mistakes
Ten Hiring Mistakes
 
DrawingML Subject: Transforms
DrawingML Subject: TransformsDrawingML Subject: Transforms
DrawingML Subject: Transforms
 
15 wordprocessing ml subject - fields and hyperlinks
15   wordprocessing ml subject - fields and hyperlinks15   wordprocessing ml subject - fields and hyperlinks
15 wordprocessing ml subject - fields and hyperlinks
 
Spreadsheet ml subject volatile dependencies
Spreadsheet ml subject   volatile dependenciesSpreadsheet ml subject   volatile dependencies
Spreadsheet ml subject volatile dependencies
 

Similar to 12 wordprocessing ml subject - annotations

11 wordprocessing ml subject - glossary document
11   wordprocessing ml subject - glossary document11   wordprocessing ml subject - glossary document
11 wordprocessing ml subject - glossary documentShawn Villaron
 
16 wordprocessing ml subject - odds and ends
16   wordprocessing ml subject - odds and ends16   wordprocessing ml subject - odds and ends
16 wordprocessing ml subject - odds and endsShawn Villaron
 
4 wordprocessing ml subject - custom markup
4   wordprocessing ml subject - custom markup4   wordprocessing ml subject - custom markup
4 wordprocessing ml subject - custom markupShawn Villaron
 
5 wordprocessing ml subject - sections
5   wordprocessing ml subject - sections5   wordprocessing ml subject - sections
5 wordprocessing ml subject - sectionsShawn Villaron
 
1 wordprocessing ml subject - main document
1   wordprocessing ml subject - main document1   wordprocessing ml subject - main document
1 wordprocessing ml subject - main documentShawn Villaron
 
0 wordprocessing ml overview
0   wordprocessing ml overview0   wordprocessing ml overview
0 wordprocessing ml overviewShawn Villaron
 
walkmod - JUG talk
walkmod - JUG talkwalkmod - JUG talk
walkmod - JUG talkwalkmod
 
10 wordprocessing ml subject - footnotes and endnotes
10   wordprocessing ml subject - footnotes and endnotes10   wordprocessing ml subject - footnotes and endnotes
10 wordprocessing ml subject - footnotes and endnotesShawn Villaron
 
Documenting .NET Code with XML Comments
Documenting .NET Code with XML CommentsDocumenting .NET Code with XML Comments
Documenting .NET Code with XML CommentsPatrick Gates
 
6 wordprocessing ml subject - styles
6   wordprocessing ml subject - styles6   wordprocessing ml subject - styles
6 wordprocessing ml subject - stylesShawn Villaron
 
9 wordprocessing ml subject - headers and footers
9   wordprocessing ml subject - headers and footers9   wordprocessing ml subject - headers and footers
9 wordprocessing ml subject - headers and footersShawn Villaron
 
Web technologies-course 07.pptx
Web technologies-course 07.pptxWeb technologies-course 07.pptx
Web technologies-course 07.pptxStefan Oprea
 
Xml basics
Xml basicsXml basics
Xml basicsKumar
 
02 Text Operatiohhfdhjghdfshjgkhjdfjhglkdfjhgiuyihjufidhcun.pdf
02 Text Operatiohhfdhjghdfshjgkhjdfjhglkdfjhgiuyihjufidhcun.pdf02 Text Operatiohhfdhjghdfshjgkhjdfjhglkdfjhgiuyihjufidhcun.pdf
02 Text Operatiohhfdhjghdfshjgkhjdfjhglkdfjhgiuyihjufidhcun.pdfbeshahashenafe20
 

Similar to 12 wordprocessing ml subject - annotations (20)

11 wordprocessing ml subject - glossary document
11   wordprocessing ml subject - glossary document11   wordprocessing ml subject - glossary document
11 wordprocessing ml subject - glossary document
 
16 wordprocessing ml subject - odds and ends
16   wordprocessing ml subject - odds and ends16   wordprocessing ml subject - odds and ends
16 wordprocessing ml subject - odds and ends
 
4 wordprocessing ml subject - custom markup
4   wordprocessing ml subject - custom markup4   wordprocessing ml subject - custom markup
4 wordprocessing ml subject - custom markup
 
5 wordprocessing ml subject - sections
5   wordprocessing ml subject - sections5   wordprocessing ml subject - sections
5 wordprocessing ml subject - sections
 
1 wordprocessing ml subject - main document
1   wordprocessing ml subject - main document1   wordprocessing ml subject - main document
1 wordprocessing ml subject - main document
 
0 wordprocessing ml overview
0   wordprocessing ml overview0   wordprocessing ml overview
0 wordprocessing ml overview
 
Introduce to XML
Introduce to XMLIntroduce to XML
Introduce to XML
 
walkmod - JUG talk
walkmod - JUG talkwalkmod - JUG talk
walkmod - JUG talk
 
10 wordprocessing ml subject - footnotes and endnotes
10   wordprocessing ml subject - footnotes and endnotes10   wordprocessing ml subject - footnotes and endnotes
10 wordprocessing ml subject - footnotes and endnotes
 
Apex code (Salesforce)
Apex code (Salesforce)Apex code (Salesforce)
Apex code (Salesforce)
 
Basic html tags
Basic html tagsBasic html tags
Basic html tags
 
Documenting .NET Code with XML Comments
Documenting .NET Code with XML CommentsDocumenting .NET Code with XML Comments
Documenting .NET Code with XML Comments
 
Html
HtmlHtml
Html
 
6 wordprocessing ml subject - styles
6   wordprocessing ml subject - styles6   wordprocessing ml subject - styles
6 wordprocessing ml subject - styles
 
9 wordprocessing ml subject - headers and footers
9   wordprocessing ml subject - headers and footers9   wordprocessing ml subject - headers and footers
9 wordprocessing ml subject - headers and footers
 
Java annotations
Java annotationsJava annotations
Java annotations
 
Web technologies-course 07.pptx
Web technologies-course 07.pptxWeb technologies-course 07.pptx
Web technologies-course 07.pptx
 
IR
IRIR
IR
 
Xml basics
Xml basicsXml basics
Xml basics
 
02 Text Operatiohhfdhjghdfshjgkhjdfjhglkdfjhgiuyihjufidhcun.pdf
02 Text Operatiohhfdhjghdfshjgkhjdfjhglkdfjhgiuyihjufidhcun.pdf02 Text Operatiohhfdhjghdfshjgkhjdfjhglkdfjhgiuyihjufidhcun.pdf
02 Text Operatiohhfdhjghdfshjgkhjdfjhglkdfjhgiuyihjufidhcun.pdf
 

More from Shawn Villaron

Spreadsheet ml subject shared workbooks
Spreadsheet ml subject   shared workbooksSpreadsheet ml subject   shared workbooks
Spreadsheet ml subject shared workbooksShawn Villaron
 
Spreadsheet ml subject query table
Spreadsheet ml subject   query tableSpreadsheet ml subject   query table
Spreadsheet ml subject query tableShawn Villaron
 
Spreadsheet ml subject pivottable
Spreadsheet ml subject   pivottableSpreadsheet ml subject   pivottable
Spreadsheet ml subject pivottableShawn Villaron
 
Spreadsheet ml subject metadata
Spreadsheet ml subject   metadataSpreadsheet ml subject   metadata
Spreadsheet ml subject metadataShawn Villaron
 
Spreadsheet ml subject external links
Spreadsheet ml subject   external linksSpreadsheet ml subject   external links
Spreadsheet ml subject external linksShawn Villaron
 
Spreadsheet ml subject comments
Spreadsheet ml subject   commentsSpreadsheet ml subject   comments
Spreadsheet ml subject commentsShawn Villaron
 
Spreadsheet ml subject calc chain
Spreadsheet ml subject   calc chainSpreadsheet ml subject   calc chain
Spreadsheet ml subject calc chainShawn Villaron
 
Spreadsheet ml overview
Spreadsheet ml overviewSpreadsheet ml overview
Spreadsheet ml overviewShawn Villaron
 
Spreadsheet ml subject xml-mapping
Spreadsheet ml subject   xml-mappingSpreadsheet ml subject   xml-mapping
Spreadsheet ml subject xml-mappingShawn Villaron
 
Spreadsheet ml subject workbook
Spreadsheet ml subject   workbookSpreadsheet ml subject   workbook
Spreadsheet ml subject workbookShawn Villaron
 
Spreadsheet ml subject workbook connections
Spreadsheet ml subject   workbook connectionsSpreadsheet ml subject   workbook connections
Spreadsheet ml subject workbook connectionsShawn Villaron
 
Spreadsheet ml subject tables
Spreadsheet ml subject   tablesSpreadsheet ml subject   tables
Spreadsheet ml subject tablesShawn Villaron
 
Spreadsheet ml subject strings
Spreadsheet ml subject   stringsSpreadsheet ml subject   strings
Spreadsheet ml subject stringsShawn Villaron
 
Spreadsheet ml subject sheet
Spreadsheet ml subject   sheetSpreadsheet ml subject   sheet
Spreadsheet ml subject sheetShawn Villaron
 
3 wordprocessing ml subject - tables
3   wordprocessing ml subject - tables3   wordprocessing ml subject - tables
3 wordprocessing ml subject - tablesShawn Villaron
 
14 wordprocessing ml subject - settings
14   wordprocessing ml subject - settings14   wordprocessing ml subject - settings
14 wordprocessing ml subject - settingsShawn Villaron
 
13 wordprocessing ml subject - mail merge
13   wordprocessing ml subject - mail merge13   wordprocessing ml subject - mail merge
13 wordprocessing ml subject - mail mergeShawn Villaron
 
8 wordprocessing ml subject - numbering
8   wordprocessing ml subject - numbering8   wordprocessing ml subject - numbering
8 wordprocessing ml subject - numberingShawn Villaron
 

More from Shawn Villaron (18)

Spreadsheet ml subject shared workbooks
Spreadsheet ml subject   shared workbooksSpreadsheet ml subject   shared workbooks
Spreadsheet ml subject shared workbooks
 
Spreadsheet ml subject query table
Spreadsheet ml subject   query tableSpreadsheet ml subject   query table
Spreadsheet ml subject query table
 
Spreadsheet ml subject pivottable
Spreadsheet ml subject   pivottableSpreadsheet ml subject   pivottable
Spreadsheet ml subject pivottable
 
Spreadsheet ml subject metadata
Spreadsheet ml subject   metadataSpreadsheet ml subject   metadata
Spreadsheet ml subject metadata
 
Spreadsheet ml subject external links
Spreadsheet ml subject   external linksSpreadsheet ml subject   external links
Spreadsheet ml subject external links
 
Spreadsheet ml subject comments
Spreadsheet ml subject   commentsSpreadsheet ml subject   comments
Spreadsheet ml subject comments
 
Spreadsheet ml subject calc chain
Spreadsheet ml subject   calc chainSpreadsheet ml subject   calc chain
Spreadsheet ml subject calc chain
 
Spreadsheet ml overview
Spreadsheet ml overviewSpreadsheet ml overview
Spreadsheet ml overview
 
Spreadsheet ml subject xml-mapping
Spreadsheet ml subject   xml-mappingSpreadsheet ml subject   xml-mapping
Spreadsheet ml subject xml-mapping
 
Spreadsheet ml subject workbook
Spreadsheet ml subject   workbookSpreadsheet ml subject   workbook
Spreadsheet ml subject workbook
 
Spreadsheet ml subject workbook connections
Spreadsheet ml subject   workbook connectionsSpreadsheet ml subject   workbook connections
Spreadsheet ml subject workbook connections
 
Spreadsheet ml subject tables
Spreadsheet ml subject   tablesSpreadsheet ml subject   tables
Spreadsheet ml subject tables
 
Spreadsheet ml subject strings
Spreadsheet ml subject   stringsSpreadsheet ml subject   strings
Spreadsheet ml subject strings
 
Spreadsheet ml subject sheet
Spreadsheet ml subject   sheetSpreadsheet ml subject   sheet
Spreadsheet ml subject sheet
 
3 wordprocessing ml subject - tables
3   wordprocessing ml subject - tables3   wordprocessing ml subject - tables
3 wordprocessing ml subject - tables
 
14 wordprocessing ml subject - settings
14   wordprocessing ml subject - settings14   wordprocessing ml subject - settings
14 wordprocessing ml subject - settings
 
13 wordprocessing ml subject - mail merge
13   wordprocessing ml subject - mail merge13   wordprocessing ml subject - mail merge
13 wordprocessing ml subject - mail merge
 
8 wordprocessing ml subject - numbering
8   wordprocessing ml subject - numbering8   wordprocessing ml subject - numbering
8 wordprocessing ml subject - numbering
 

Recently uploaded

办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
buds n tech IT solutions
buds n  tech IT                solutionsbuds n  tech IT                solutions
buds n tech IT solutionsmonugehlot87
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?Watsoo Telematics
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 

Recently uploaded (20)

办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
buds n tech IT solutions
buds n  tech IT                solutionsbuds n  tech IT                solutions
buds n tech IT solutions
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 

12 wordprocessing ml subject - annotations

  • 1. Components of WordprocessingML • Main Document • Paragraphs & Rich Formatting – Runs – Run Content • Tables • Custom Markup • Sections • Styles – Paragraph – Character – Numbering – Table – Document Defaults • Fonts • Numbering • Headers/Footers • Footnotes/Endnotes • Glossary Document • Annotations – Comments – Revisions – Bookmarks • Mail Merge • Document Settings – Web Settings – Compatibility Settings • Fields & Hyperlinks • Odds & Ends (Textboxes, Subdocuments, Extensibility) [Ecma Document Number]
  • 3. Annotations • Annotations in WordprocessingML store many kinds of document ‘markup’: – Revisions (insertions, deletions, moves) – Comments – Bookmarks – Range-level Permissions – Spelling and Grammar Errors (cached)
  • 4. Annotations • Before we discuss each type… • Annotations as a group present a unique challenge to an XML format – They’re inherently not well formed (if we used a tag to encapsulate them) Starts in paragraph one Ends in paragraph two
  • 5. Types of Annotations • This motivates the fact that annotations in WordprocessingML are stored in three ways: – Inline – ‘Cross Structure’ – Property
  • 6. Inline Annotations • The most common type – These actually don’t break the wellformedness of the paragraph structure
  • 7. Inline Annotations (cont.) • The del element encapsulates the deleted run, the ins the inserted run
  • 8. ‘Cross Structure’ Annotations • Word processing documents also contain annotations which can span parts of multiple paragraphs – i.e. wouldn’t be well formed if they were one tag
  • 9. ‘Cross Structure’ Annotations (cont.) • To get around this, these annotations use a start marker, end marker form. – An id attribute links the two together
  • 10. Property Annotations • The first two buckets cover annotations to content in the document – But WordprocessingML allows for revision marking on properties as well
  • 11. Property Annotations (cont.) • The rPrChange stores previous sets of properties on the object (in this case, the run) – Stored as another run property
  • 12. Revisions • Refers to the explicit storage of all modifications to a document – Used to track document’s evolution For example, someone changed a couple of words here and it was tracked
  • 13. Revisions (cont.) • Revisions in WordprocessingML contain up to five pieces of information – Required • Type of revision (insertion, deletion, move) • Unique revision ID – Optional • Author information • Date & time information • Content of revision (if any)
  • 14. Revisions - Insertions • Looking at some samples of revisions: • Insertions are marked via use of the ins element
  • 15. Revisions - Deletions • Deletions are marked via use of the del element
  • 16. Revisions - Moves • WordprocessingML also supports the concept of moved text • Moves are tracked in two parts: – The move start/end location – The move contents
  • 17. Revisions – Moves (cont.) • The moveFromRangeStart/End elements specify the start/end of the move start • The moveFrom element contains the move start content
  • 18. Revisions - Moves • Why two parts? – The move range is often not the same as the move contents (because of paragraph marks) Without this, we would lose the fidelity as to whether the paragraph is part of the move
  • 19. Revisions – Custom Markup • Custom markup is unique in that, like paragraphs, there are physical characters at display time but no corresponding runs in WordprocessingML Only one run – the tag is created at display time
  • 20. Revisions – Custom Markup (cont.) • So what if we delete a tag character? – We can’t just lose that information • To do this, we again use the start/end marker syntax
  • 21. Revisions – Custom Markup (cont.) • The customXmlDelRangeStart/End elements tell us a tag character is deleted – They are linked by an id attribute
  • 22. Comments • Comments are another document story in WordprocessingML – The contents of comments can be any block-level content – Can be formatted, etc.
  • 23. Comments Part • Comments are stored in the comments part in WordprocessingML – Reached via an implicit relationship from the document part – Each comment is then referenced via its id • Relationship type http://schemas.openxmlformats.org/wordprocessingml/2006/comment s • Content type vnd-openxmlformats.officedocument.wordprocessingml- comments+xml
  • 24. Comments • A WordprocessingML comment can be divided into two components: – The comment anchor (the text on which the comment applies) – The comment content (the content of the comment) Comment range Comment contents
  • 25. Comment Anchor • The first part of a comment is the actual anchor in the document – Hooks the comment to text – Creates the reference to the comment in the comments part • This is done via two XML elements
  • 26. Comment Range • The first part of a comment anchor is determining the comment range – Like bookmarks and other annotations, comment ranges are not required to be well formed • This is done via the commentRangeStart/End elements
  • 27. Comment Reference • The second part of the comment anchor is an actual comment reference – This eastablishes the reference to the specific comment in the comments part by referencing its id attrbute • This is done via the commentReference element This comment range is linked to comment 0
  • 28. Comment Contents • Once we have an anchor range, we need an actual comment – Stored in the comments part Everything in the bubble is part of the comment
  • 29. Comment Contents (cont.) • Each comment contains up to five things: – Required • Comment ID • At least one block-level element – Optional • Comment author • Comment author initials • Comment date and time
  • 30. Comment Contents • Inside the comment, there is block-level content which contains the actual comment Comment content
  • 31. Comment Contents (cont.) • As well, the annotationRef element specifies the location of the comment information block Comment information block
  • 33. Bookmarks • The granddaddy of annotations in WordprocessingML – This type of annotation is again a case of annotations that don’t need to be well formed Starts in paragraph one, ends in paragraph two
  • 34. Bookmarks (cont.) • The bookmarkStart/End elements contain the start end end marker for a bookmark – The two are linked by the id attribute
  • 35. Range Permissions • WordprocessingML range permissions consists of three main components: – Start and end anchors to mark content that has restricted permissions (again) – ID for linking the start/end marker – The user(s) who may edit the range
  • 36. Spelling and Grammar Errors • WordprocessingML spelling and grammar errors are a cache of proofing state, and consist of two main components • Start and end anchors to mark spelling and grammatical errors • Type of error • Spelling • grammar
  • 37. Spelling and Grammar Errors (cont.) • Why store a spelling and grammar cache? – Performance (don’t recheck 2000 pages every open) – Storing spelling exceptions (ignore this word you think is misspelled, silly computer)
  • 38. Revision Save IDs • Switching gears a little bit… • So far, we have focused on annotations as a record of changes in a document – However, many people don’t have the foresight to actually track changes (or don’t want to) • WordprocessingML also has a facility for storing unique IDs on objects for the purpose of comparing two documents
  • 39. Revision Save IDs (cont.) • You’ve probably seen these in many of the examples…
  • 40. Revision Save IDs (cont.) • So what is an rsid*? – Unique hex number that identifies an editing session – the editing between any two saves – These are stored for almost every object in WordprocessingML • E.g. paragraphs, run, sections, run properties, paragraph properties, etc. • This information tells you whether two runs were last edited during the same session.
  • 41. Revision Save IDs Example • In this example, the runs were created in the same session, and the run was formatted during a subsequent session
  • 42. Using Revision Save IDs • With this information, applications can do more precise comparisons – An application knows which things are from the same set of edits
  • 43. Disclaimer This presentation is for informational purposes only, and should not be relied upon as a substitute or replacement for Microsoft formal file format documentation, which is available at the following website: https://msdn.microsoft.com/en- us/library/cc313118(v=office.12).aspx. Any views or opinions presented in this material are solely those of the author and do not necessarily represent those of Microsoft. Microsoft disclaims all liability for mistakes or inaccuracies in this presentation.