OOXML Schema


Content

Document

w_document = element document {
    element background { w_CT_Background }?,
    element body { w_CT_Body }?,
    attribute w:conformance { s_ST_ConformanceClass }?
}
w_CT_Background =
    attribute w:color { w_ST_HexColor }?,
    attribute w:themeColor { w_ST_ThemeColor }?,
    attribute w:themeTint { w_ST_UcharHexNumber }?,
    attribute w:themeShade { w_ST_UcharHexNumber }?,
    (w_any_vml_vml*, w_any_vml_office*)+,
    element drawing { w_CT_Drawing }?
w_CT_Body =
    w_EG_BlockLevelElts*,
    element sectPr { w_CT_SectPr }?

Block-level elements

w_EG_BlockLevelElts =
    w_EG_ContentBlockContent*
    | element altChunk { w_CT_AltChunk }*
w_EG_ContentBlockContent =
    element customXml { w_CT_CustomXmlBlock }
    | element sdt { w_CT_SdtBlock }
    | element p { w_CT_P }*
    | element tbl { w_CT_Tbl  }*
    | w_EG_RunLevelElts*
w_CT_AltChunk =
    r_id?,
    element altChunkPr { element matchSrc { w_CT_OnOff }? }?

Run-level elements

w_EG_RunLevelElts =
    element proofErr { attribute w:type { "spellStart" | "spellEnd" | "gramStart" | "gramEnd" } }? |
    element permStart { w_CT_PermStart }? |
    element permEnd { w_CT_Perm }? |
    w_EG_RangeMarkupElements* |
    element ins { w_CT_RunTrackChange }? |
    element del { w_CT_RunTrackChange }? |
    element moveFrom { w_CT_RunTrackChange } |
    element moveTo { w_CT_RunTrackChange } |
    (m_oMathPara | m_oMath)*
w_CT_Perm =
    attribute w:id { s_ST_String },
    attribute w:displacedByCustomXml { "next" | "prev" }?
w_CT_PermStart =
    w_CT_Perm,
    attribute w:edGrp {
        "none" | "everyone" | "administrators" | "contributors" | "editors" | "owners" | "current"
    }?,
    attribute w:ed { s_ST_String }?,
    attribute w:colFirst { xsd:integer }?,
    attribute w:colLast { xsd:integer }?

Paragraph

w_CT_P =
    attribute w:rsidRPr { w_ST_LongHexNumber }?,
    attribute w:rsidR { w_ST_LongHexNumber }?,
    attribute w:rsidDel { w_ST_LongHexNumber }?,
    attribute w:rsidP { w_ST_LongHexNumber }?,
    attribute w:rsidRDefault { w_ST_LongHexNumber }?,
    element pPr { w_CT_PPr }?,
    w_EG_PContent*
w_EG_PContent =
    w_EG_ContentRunContent* |
    element fldSimple { w_CT_SimpleField }* |
    element hyperlink { w_CT_Hyperlink } |
    element subDoc { w_CT_Rel }
w_EG_ContentRunContent =
    element customXml { w_CT_CustomXmlRun } |
    element smartTag { w_CT_SmartTagRun } |
    element sdt { w_CT_SdtRun } |
    element dir { w_CT_DirContentRun } |
    element bdo { w_CT_BdoContentRun } |
    element r { w_CT_R } |
    w_EG_RunLevelElts*
w_EG_ContentRunContentBase =
    element smartTag { w_CT_SmartTagRun } |
    element sdt { w_CT_SdtRun } |
    w_EG_RunLevelElts*
w_CT_DirContentRun =
    attribute w:val { "ltr" | "rtl" }?,
    w_EG_PContent*
w_CT_BdoContentRun =
    attribute w:val { "ltr" | "rtl" }?,
    w_EG_PContent*
w_EG_PContentMath = w_EG_PContentBase* | w_EG_ContentRunContentBase*
w_EG_PContentBase =
    element customXml { w_CT_CustomXmlRun } |
    element fldSimple { w_CT_SimpleField }* 
    element hyperlink { w_CT_Hyperlink }
w_CT_SimpleField =
    attribute w:instr { s_ST_String },
    attribute w:fldLock { s_ST_OnOff }?,
    attribute w:dirty { s_ST_OnOff }?,
    element fldData { w_CT_Text }?,
    w_EG_PContent*

Run

w_CT_R =
    attribute w:rsidRPr { w_ST_LongHexNumber }?,
    attribute w:rsidDel { w_ST_LongHexNumber }?,
    attribute w:rsidR { w_ST_LongHexNumber }?,
    w_EG_RPr?,
    w_EG_RunInnerContent*
w_EG_RunInnerContent =
    element br { w_CT_Br } |
    element t { w_CT_Text } |
    element contentPart { w_CT_Rel } |
    element delText { w_CT_Text } |
    element instrText { w_CT_Text } |
    element delInstrText { w_CT_Text } |
    element noBreakHyphen { w_CT_Empty } |
    element softHyphen { w_CT_Empty }? |
    element dayShort { w_CT_Empty }? |
    element monthShort { w_CT_Empty }? |
    element yearShort { w_CT_Empty }? |
    element dayLong { w_CT_Empty }? |
    element monthLong { w_CT_Empty }? |
    element yearLong { w_CT_Empty }? |
    element annotationRef { w_CT_Empty }? |
    element footnoteRef { w_CT_Empty }? |
    element endnoteRef { w_CT_Empty }? |
    element separator { w_CT_Empty }? |
    element continuationSeparator { w_CT_Empty }? |
    element sym { w_CT_Sym }? |
    element pgNum { w_CT_Empty }? |
    element cr { w_CT_Empty }? |
    element tab { w_CT_Empty }? |
    element object { w_CT_Object } |
    element pict { w_CT_Picture } |
    element fldChar { w_CT_FldChar } |
    element ruby { w_CT_Ruby } |
    element footnoteReference { w_CT_FtnEdnRef } |
    element endnoteReference { w_CT_FtnEdnRef } |
    element commentReference { attribute w:id { xsd:integer } } |
    element drawing { w_CT_Drawing } |
    element ptab { w_CT_PTab }? |
    element lastRenderedPageBreak { w_CT_Empty }?
w_CT_Ruby =
    element rubyPr { w_CT_RubyPr },
    element rt { w_EG_RubyContent* },
    element rubyBase { w_EG_RubyContent* }
w_CT_RubyPr =
    element rubyAlign {
        attribute w:val {
            "center" | "distributeLetter" | "distributeSpace" | "left" | "right" | "rightVertical"
        }
    },
    element hps { attribute w:val { w_ST_HpsMeasure } },
    element hpsRaise { attribute w:val { w_ST_HpsMeasure } },
    element hpsBaseText { attribute w:val { w_ST_HpsMeasure } },
    element lid { attribute w:val { s_ST_Lang } },
    element dirty { w_CT_OnOff }?
w_EG_RubyContent =
    element r { w_CT_R } |
    w_EG_RunLevelElts*
w_CT_Sym =
    attribute w:font { s_ST_String }?,
    attribute w:char { w_ST_ShortHexNumber }?
w_CT_Br =
    attribute w:type { "page" |"column" |"textWrapping" }?,
    attribute w:clear { "none" |"left" |"right" |"all" }?
w_CT_PTab =
    attribute w:alignment { "left" | "center" | "right" },
    attribute w:relativeTo { "margin" | "indent" },
    attribute w:leader { "none" | "dot" | "hyphen" | "underscore" | "middleDot" }  
w_CT_Text = s_ST_String, xml_space?
w_CT_FtnEdnRef =
    attribute w:customMarkFollows { s_ST_OnOff }?,
    attribute w:id { xsd:integer }

Table

w_CT_Tbl =
    w_EG_RangeMarkupElements*,
    element tblPr { w_CT_TblPr },
    element tblGrid { w_CT_TblGrid },
    w_EG_ContentRowContent*
w_EG_ContentRowContent =
    element tr { w_CT_Row }*
    | element customXml { w_CT_CustomXmlRow }
    | element sdt { w_CT_SdtRow }
    | w_EG_RunLevelElts*
w_CT_Row =
    attribute w:rsidRPr { w_ST_LongHexNumber }?,
    attribute w:rsidR { w_ST_LongHexNumber }?,
    attribute w:rsidDel { w_ST_LongHexNumber }?,
    attribute w:rsidTr { w_ST_LongHexNumber }?,
    element tblPrEx { w_CT_TblPrEx }?,
    element trPr { w_CT_TrPr }?,
    w_EG_ContentCellContent*
w_EG_ContentCellContent =
    element tc { w_CT_Tc }*
    | element customXml { w_CT_CustomXmlCell }
    | element sdt { w_CT_SdtCell }
    | w_EG_RunLevelElts*
w_CT_Tc =
    attribute w:id { s_ST_String }?,
    element tcPr { w_CT_TcPr }?,
    w_EG_BlockLevelElts+

Fields

w_CT_FldChar =
    attribute w:fldCharType { "begin" | "separate" | "end" },
    attribute w:fldLock { s_ST_OnOff }?,
    attribute w:dirty { s_ST_OnOff }?,
    (element fldData { w_CT_Text }?
     | element ffData { w_CT_FFData }?
     | element numberingChange { w_CT_TrackChangeNumbering }?)
w_CT_FFData =
    (element name { attribute w:val { xsd:string { maxLength = "65" } }? }
     | element label { attribute w:val { xsd:integer } }?
     | element tabIndex { w_CT_UnsignedDecimalNumber }?
     | element enabled { w_CT_OnOff }
     | element calcOnExit { w_CT_OnOff }
     | element entryMacro { attribute w:val { xsd:string { maxLength = "33" } } }?
     | element exitMacro { attribute w:val { xsd:string { maxLength = "33" } } }?
     | element helpText {
           attribute w:type { "text" | "autoText" }?,
           attribute w:val { xsd:string { maxLength = "256" } }?
       }?
     | element statusText {
           attribute w:type { "text" | "autoText" }?,
           attribute w:val { xsd:string { maxLength = "140" } }?
     }?
     | (element checkBox { w_CT_FFCheckBox } |
        element ddList { w_CT_FFDDList } |
        element textInput { w_CT_FFTextInput }))+
w_CT_FFCheckBox =
    (element size { attribute w:val { w_ST_HpsMeasure } }
     | element sizeAuto { w_CT_OnOff }),
    element default { w_CT_OnOff }?,
    element checked { w_CT_OnOff }?
w_CT_FFDDList =
    element result { attribute w:val { xsd:integer } }?,
    element default { attribute w:val { xsd:integer } }?,
    element listEntry { attribute w:val { s_ST_String } }*
w_CT_FFTextInput =
    element type { "regular" | "number" | "date" | "currentTime" | "currentDate" | "calculated" }?,
    element default { attribute w:val { s_ST_String } }?,
    element maxLength { attribute w:val { xsd:integer } }?,
    element format { attribute w:val { s_ST_String } }?

Graphics

w_CT_Object =
    attribute w:dxaOrig { s_ST_TwipsMeasure }?,
    attribute w:dyaOrig { s_ST_TwipsMeasure }?,
    (w_any_vml_vml*, w_any_vml_office*)+,
    element drawing { w_CT_Drawing }?,
    (element control { w_CT_Control }
     | element objectLink { w_CT_ObjectLink }
     | element objectEmbed { w_CT_ObjectEmbed }
     | element movie { w_CT_Rel })?
w_CT_Picture =
    (w_any_vml_vml*, w_any_vml_office*)+,
    element movie { w_CT_Rel }?,
    element control { w_CT_Control }?
w_CT_Drawing = (wp_anchor? | wp_inline?)+
w_CT_Control =
    attribute w:name { s_ST_String }?,
    attribute w:shapeid { s_ST_String }?,
    r_id?
w_CT_ObjectEmbed =
    attribute w:drawAspect { "content" | "icon" }?,
    r_id,
    attribute w:progId { s_ST_String }?,
    attribute w:shapeId { s_ST_String }?,
    attribute w:fieldCodes { s_ST_String }?

Footnotes and Endnotes

w_footnotes = element footnotes {
    element footnote { w_CT_FtnEdn }*
}
w_endnotes = element endnotes {
    element endnote { w_CT_FtnEdn }*
}
w_CT_FtnEdn =
    attribute w:type { "normal" | "separator" | "continuationSeparator" | "continuationNotice" }?,
    attribute w:id { xsd:integer },
    w_EG_BlockLevelElts+
w_CT_FtnProps =
    element pos { attribute w:val { "pageBottom" | "beneathText" | "sectEnd" | "docEnd" } }?,
    element numFmt { w_CT_NumFmt }?,
    w_EG_FtnEdnNumProps?
w_CT_EdnProps =
    element pos { attribute w:val { "sectEnd" | "docEnd" } }?,
    element numFmt { w_CT_NumFmt }?,
    w_EG_FtnEdnNumProps?
w_EG_FtnEdnNumProps =
    element numStart { attribute w:val { xsd:integer } }?,
    element numRestart { attribute w:val { "continuous" | "eachSect" | "eachPage" } }?

Headers and footers

w_hdr = element hdr { w_EG_BlockLevelElts+ }
w_ftr = element ftr { w_EG_BlockLevelElts+ }

Formatting

Styles

w_styles = element styles {
    element docDefaults {
        element rPrDefault {
            element rPr { w_CT_RPr }?
        }?,
        element pPrDefault {
            element pPr { w_CT_PPrGeneral }?
        }?
    }?,
    element latentStyles { w_CT_LatentStyles }?,
    element style { w_CT_Style }*
}
w_CT_LatentStyles =
    attribute w:defLockedState { s_ST_OnOff }?,
    attribute w:defUIPriority { xsd:integer }?,
    attribute w:defSemiHidden { s_ST_OnOff }?,
    attribute w:defUnhideWhenUsed { s_ST_OnOff }?,
    attribute w:defQFormat { s_ST_OnOff }?,
    attribute w:count { xsd:integer }?,
    element lsdException { w_CT_LsdException }*
w_CT_LsdException =
    attribute w:name { s_ST_String },
    attribute w:locked { s_ST_OnOff }?,
    attribute w:uiPriority { xsd:integer }?,
    attribute w:semiHidden { s_ST_OnOff }?,
    attribute w:unhideWhenUsed { s_ST_OnOff }?,
    attribute w:qFormat { s_ST_OnOff }?
w_CT_Style =
    attribute w:type { "paragraph" | "character" | "table" | "numbering" }?,
    attribute w:styleId { s_ST_String }?,
    attribute w:default { s_ST_OnOff }?,
    attribute w:customStyle { s_ST_OnOff }?,
    element name { attribute w:val { s_ST_String } }?,
    element aliases { attribute w:val { s_ST_String } }?,
    element basedOn { attribute w:val { s_ST_String } }?,
    element next { attribute w:val { s_ST_String } }?,
    element link { attribute w:val { s_ST_String } }?,
    element autoRedefine { w_CT_OnOff }?,
    element hidden { w_CT_OnOff }?,
    element uiPriority { attribute w:val { xsd:integer } }?,
    element semiHidden { w_CT_OnOff }?,
    element unhideWhenUsed { w_CT_OnOff }?,
    element qFormat { w_CT_OnOff }?,
    element locked { w_CT_OnOff }?,
    element personal { w_CT_OnOff }?,
    element personalCompose { w_CT_OnOff }?,
    element personalReply { w_CT_OnOff }?,
    element rsid { w_CT_LongHexNumber }?,
    element pPr { w_CT_PPrGeneral }?,
    element rPr { w_CT_RPr }?,
    element tblPr { w_CT_TblPrBase }?,
    element trPr { w_CT_TrPr }?,
    element tcPr { w_CT_TcPr }?,
    element tblStylePr { w_CT_TblStylePr }*
w_CT_TblStylePr =
    attribute w:type { w_ST_TblStyleOverrideType },
    element pPr { w_CT_PPrGeneral }?,
    element rPr { w_CT_RPr }?,
    element tblPr { w_CT_TblPrBase }?,
    element trPr { w_CT_TrPr }?,
    element tcPr { w_CT_TcPr }?
w_ST_TblStyleOverrideType =
      "wholeTable"
    | "firstRow"
    | "lastRow"
    | "firstCol"
    | "lastCol"
    | "band1Vert"
    | "band2Vert"
    | "band1Horz"
    | "band2Horz"
    | "neCell"
    | "nwCell"
    | "seCell"
    | "swCell"

Borders and shading

w_CT_Border =
    attribute w:val { w_ST_Border },
    attribute w:color { w_ST_HexColor }?,
    attribute w:themeColor { w_ST_ThemeColor }?,
    attribute w:themeTint { w_ST_UcharHexNumber }?,
    attribute w:themeShade { w_ST_UcharHexNumber }?,
    attribute w:sz { w_ST_EighthPointMeasure }?,
    attribute w:space { w_ST_PointMeasure }?,
    attribute w:shadow { s_ST_OnOff }?,
    attribute w:frame { s_ST_OnOff }?
w_CT_Shd =
    attribute w:val { w_ST_Shd },
    attribute w:color { w_ST_HexColor }?,
    attribute w:themeColor { w_ST_ThemeColor }?,
    attribute w:themeTint { w_ST_UcharHexNumber }?,
    attribute w:themeShade { w_ST_UcharHexNumber }?,
    attribute w:fill { w_ST_HexColor }?,
    attribute w:themeFill { w_ST_ThemeColor }?,
    attribute w:themeFillTint { w_ST_UcharHexNumber }?,
    attribute w:themeFillShade { w_ST_UcharHexNumber }?
w_ST_Shd =
      "nil"
    | "clear"
    | "solid"
    | "horzStripe"
    | "vertStripe"
    | "reverseDiagStripe"
    | "diagStripe"
    | "horzCross"
    | "diagCross"
    | "thinHorzStripe"
    | "thinVertStripe"
    | "thinReverseDiagStripe"
    | "thinDiagStripe"
    | "thinHorzCross"
    | "thinDiagCross"
    | "pct5"
    | "pct10"
    | "pct12"
    | "pct15"
    | "pct20"
    | "pct25"
    | "pct30"
    | "pct35"
    | "pct37"
    | "pct40"
    | "pct45"
    | "pct50"
    | "pct55"
    | "pct60"
    | "pct62"
    | "pct65"
    | "pct70"
    | "pct75"
    | "pct80"
    | "pct85"
    | "pct87"
    | "pct90"
    | "pct95"
w_ST_Border =
      "nil"
    | "none"
    | "single"
    | "thick"
    | "double"
    | "dotted"
    | "dashed"
    | "dotDash"
    | "dotDotDash"
    | "triple"
    | "thinThickSmallGap"
    | "thickThinSmallGap"
    | "thinThickThinSmallGap"
    | "thinThickMediumGap"
    | "thickThinMediumGap"
    | "thinThickThinMediumGap"
    | "thinThickLargeGap"
    | "thickThinLargeGap"
    | "thinThickThinLargeGap"
    | "wave"
    | "doubleWave"
    | "dashSmallGap"
    | "dashDotStroked"
    | "threeDEmboss"
    | "threeDEngrave"
    | "outset"
    | "inset"
    | "apples"
    | "archedScallops"
    | "babyPacifier"
    | "babyRattle"
    | "balloons3Colors"
    | "balloonsHotAir"
    | "basicBlackDashes"
    | "basicBlackDots"
    | "basicBlackSquares"
    | "basicThinLines"
    | "basicWhiteDashes"
    | "basicWhiteDots"
    | "basicWhiteSquares"
    | "basicWideInline"
    | "basicWideMidline"
    | "basicWideOutline"
    | "bats"
    | "birds"
    | "birdsFlight"
    | "cabins"
    | "cakeSlice"
    | "candyCorn"
    | "celticKnotwork"
    | "certificateBanner"
    | "chainLink"
    | "champagneBottle"
    | "checkedBarBlack"
    | "checkedBarColor"
    | "checkered"
    | "christmasTree"
    | "circlesLines"
    | "circlesRectangles"
    | "classicalWave"
    | "clocks"
    | "compass"
    | "confetti"
    | "confettiGrays"
    | "confettiOutline"
    | "confettiStreamers"
    | "confettiWhite"
    | "cornerTriangles"
    | "couponCutoutDashes"
    | "couponCutoutDots"
    | "crazyMaze"
    | "creaturesButterfly"
    | "creaturesFish"
    | "creaturesInsects"
    | "creaturesLadyBug"
    | "crossStitch"
    | "cup"
    | "decoArch"
    | "decoArchColor"
    | "decoBlocks"
    | "diamondsGray"
    | "doubleD"
    | "doubleDiamonds"
    | "earth1"
    | "earth2"
    | "earth3"
    | "eclipsingSquares1"
    | "eclipsingSquares2"
    | "eggsBlack"
    | "fans"
    | "film"
    | "firecrackers"
    | "flowersBlockPrint"
    | "flowersDaisies"
    | "flowersModern1"
    | "flowersModern2"
    | "flowersPansy"
    | "flowersRedRose"
    | "flowersRoses"
    | "flowersTeacup"
    | "flowersTiny"
    | "gems"
    | "gingerbreadMan"
    | "gradient"
    | "handmade1"
    | "handmade2"
    | "heartBalloon"
    | "heartGray"
    | "hearts"
    | "heebieJeebies"
    | "holly"
    | "houseFunky"
    | "hypnotic"
    | "iceCreamCones"
    | "lightBulb"
    | "lightning1"
    | "lightning2"
    | "mapPins"
    | "mapleLeaf"
    | "mapleMuffins"
    | "marquee"
    | "marqueeToothed"
    | "moons"
    | "mosaic"
    | "musicNotes"
    | "northwest"
    | "ovals"
    | "packages"
    | "palmsBlack"
    | "palmsColor"
    | "paperClips"
    | "papyrus"
    | "partyFavor"
    | "partyGlass"
    | "pencils"
    | "people"
    | "peopleWaving"
    | "peopleHats"
    | "poinsettias"
    | "postageStamp"
    | "pumpkin1"
    | "pushPinNote2"
    | "pushPinNote1"
    | "pyramids"
    | "pyramidsAbove"
    | "quadrants"
    | "rings"
    | "safari"
    | "sawtooth"
    | "sawtoothGray"
    | "scaredCat"
    | "seattle"
    | "shadowedSquares"
    | "sharksTeeth"
    | "shorebirdTracks"
    | "skyrocket"
    | "snowflakeFancy"
    | "snowflakes"
    | "sombrero"
    | "southwest"
    | "stars"
    | "starsTop"
    | "stars3d"
    | "starsBlack"
    | "starsShadowed"
    | "sun"
    | "swirligig"
    | "tornPaper"
    | "tornPaperBlack"
    | "trees"
    | "triangleParty"
    | "triangles"
    | "triangle1"
    | "triangle2"
    | "triangleCircle1"
    | "triangleCircle2"
    | "shapes1"
    | "shapes2"
    | "twistedLines1"
    | "twistedLines2"
    | "vine"
    | "waveline"
    | "weavingAngles"
    | "weavingBraid"
    | "weavingRibbon"
    | "weavingStrips"
    | "whiteFlowers"
    | "woodwork"
    | "xIllusions"
    | "zanyTriangles"
    | "zigZag"
    | "zigZagStitch"
    | "custom"

Paragraph formatting

w_CT_PPr =
    w_CT_PPrBase,
    element rPr { w_CT_ParaRPr }?,
    element sectPr { w_CT_SectPr }?,
    element pPrChange { w_CT_PPrChange }?
w_CT_PPrBase =
    element pStyle { attribute w:val { s_ST_String } }?,
    element keepNext { w_CT_OnOff }?,
    element keepLines { w_CT_OnOff }?,
    element pageBreakBefore { w_CT_OnOff }?,
    element framePr { w_CT_FramePr }?,
    element widowControl { w_CT_OnOff }?,
    element numPr { w_CT_NumPr }?,
    element suppressLineNumbers { w_CT_OnOff }?,
    element pBdr { w_CT_PBdr }?,
    element shd { w_CT_Shd }?,
    element tabs { w_CT_Tabs }?,
    element suppressAutoHyphens { w_CT_OnOff }?,
    element kinsoku { w_CT_OnOff }?,
    element wordWrap { w_CT_OnOff }?,
    element overflowPunct { w_CT_OnOff }?,
    element topLinePunct { w_CT_OnOff }?,
    element autoSpaceDE { w_CT_OnOff }?,
    element autoSpaceDN { w_CT_OnOff }?,
    element bidi { w_CT_OnOff }?,
    element adjustRightInd { w_CT_OnOff }?,
    element snapToGrid { w_CT_OnOff }?,
    element spacing { w_CT_Spacing }?,
    element ind { w_CT_Ind }?,
    element contextualSpacing { w_CT_OnOff }?,
    element mirrorIndents { w_CT_OnOff }?,
    element suppressOverlap { w_CT_OnOff }?,
    element jc { w_CT_Jc }?,
    element textDirection { w_CT_TextDirection }?,
    element textAlignment { w_CT_TextAlignment }?,
    element textboxTightWrap { w_CT_TextboxTightWrap }?,
    element outlineLvl { attribute w:val { xsd:integer } }?,
    element divId { attribute w:val { xsd:integer } }?,
    element cnfStyle { w_CT_Cnf }?
w_CT_TextboxTightWrap = attribute w:val {
    "none" | "allLines" | "firstAndLastLine" | "firstLineOnly" | "lastLineOnly"
}
w_CT_TextAlignment = attribute w:val {
    "top" | "center" | "baseline" | "bottom" | "auto"
}
w_CT_Ind =
    attribute w:start { w_ST_SignedTwipsMeasure }?,
    attribute w:startChars { xsd:integer }?,
    attribute w:end { w_ST_SignedTwipsMeasure }?,
    attribute w:endChars { xsd:integer }?,
    attribute w:left { w_ST_SignedTwipsMeasure }?,
    attribute w:leftChars { xsd:integer }?,
    attribute w:right { w_ST_SignedTwipsMeasure }?,
    attribute w:rightChars { xsd:integer }?,
    attribute w:hanging { s_ST_TwipsMeasure }?,
    attribute w:hangingChars { xsd:integer }?,
    attribute w:firstLine { s_ST_TwipsMeasure }?,
    attribute w:firstLineChars { xsd:integer }?
w_CT_Spacing =
    attribute w:before { s_ST_TwipsMeasure }?,
    attribute w:beforeLines { xsd:integer }?,
    attribute w:beforeAutospacing { s_ST_OnOff }?,
    attribute w:after { s_ST_TwipsMeasure }?,
    attribute w:afterLines { xsd:integer }?,
    attribute w:afterAutospacing { s_ST_OnOff }?,
    attribute w:line { w_ST_SignedTwipsMeasure }?,
    attribute w:lineRule { "auto" | "exact" | "atLeast" }?
w_CT_Tabs = element tab { w_CT_TabStop }+
w_CT_TabStop =
    attribute w:val {
        "clear" | "start" | "center" | "end" | "decimal" | "bar" | "num" | "left" | "right"
    },
    attribute w:leader {
        "none" | "dot" | "hyphen" | "underscore" | "heavy" | "middleDot"
    }?,
    attribute w:pos { w_ST_SignedTwipsMeasure }
w_CT_FramePr =
    attribute w:dropCap { "none" | "drop" | "margin" }?,
    attribute w:lines { xsd:integer }?,
    attribute w:w { s_ST_TwipsMeasure }?,
    attribute w:h { s_ST_TwipsMeasure }?,
    attribute w:vSpace { s_ST_TwipsMeasure }?,
    attribute w:hSpace { s_ST_TwipsMeasure }?,
    attribute w:wrap { "auto" | "notBeside" | "around" | "tight" | "through" | "none" }?,
    attribute w:hAnchor { "text" | "margin" | "page" }?,
    attribute w:vAnchor { "text" | "margin" | "page" }?,
    attribute w:x { w_ST_SignedTwipsMeasure }?,
    attribute w:xAlign { s_ST_XAlign }?,
    attribute w:y { w_ST_SignedTwipsMeasure }?,
    attribute w:yAlign { s_ST_YAlign }?,
    attribute w:hRule { "auto" | "exact" | "atLeast" }?,
    attribute w:anchorLock { s_ST_OnOff }?
w_CT_PBdr =
    element top { w_CT_Border }?,
    element left { w_CT_Border }?,
    element bottom { w_CT_Border }?,
    element right { w_CT_Border }?,
    element between { w_CT_Border }?,
    element bar { w_CT_Border }?
w_CT_ParaRPr =
    w_EG_ParaRPrTrackChanges?,
    w_EG_RPrBase?,
    element rPrChange { w_CT_ParaRPrChange }?
w_CT_NumPr =
    element ilvl { attribute w:val { xsd:integer } }?,
    element numId { attribute w:val { xsd:integer } }?,
    element numberingChange { w_CT_TrackChangeNumbering }?,
    element ins { w_CT_TrackChange }?
w_CT_PPrGeneral =
    w_CT_PPrBase,
    element pPrChange { w_CT_PPrChange }?

Run formatting

w_EG_RPrBase =
    element rStyle { attribute w:val { s_ST_String } }?
    element rFonts { w_CT_Fonts }?
    element b { w_CT_OnOff }?
    element bCs { w_CT_OnOff }?
    element i { w_CT_OnOff }?
    element iCs { w_CT_OnOff }?
    element caps { w_CT_OnOff }?
    element smallCaps { w_CT_OnOff }?
    element strike { w_CT_OnOff }?
    element dstrike { w_CT_OnOff }?
    element outline { w_CT_OnOff }?
    element shadow { w_CT_OnOff }?
    element emboss { w_CT_OnOff }?
    element imprint { w_CT_OnOff }?
    element noProof { w_CT_OnOff }?
    element snapToGrid { w_CT_OnOff }?
    element vanish { w_CT_OnOff }?
    element webHidden { w_CT_OnOff }?
    element color { w_CT_Color }?
    element spacing { w_CT_SignedTwipsMeasure }?
    element w { w_CT_TextScale }?
    element kern { attribute w:val { w_ST_HpsMeasure } }?
    element position { w_CT_SignedHpsMeasure }?
    element sz { attribute w:val { w_ST_HpsMeasure } }?
    element szCs { attribute w:val { w_ST_HpsMeasure } }?
    element highlight { w_CT_Highlight }?
    element u { w_CT_Underline }?
    element effect { w_CT_TextEffect }?
    element bdr { w_CT_Border }?
    element shd { w_CT_Shd }?
    element fitText { w_CT_FitText }?
    element vertAlign { w_CT_VerticalAlignRun }?
    element rtl { w_CT_OnOff }?
    element cs { w_CT_OnOff }?
    element em { w_CT_Em }?
    element lang { w_CT_Language }?
    element eastAsianLayout { w_CT_EastAsianLayout }?
    element specVanish { w_CT_OnOff }?
    element oMath { w_CT_OnOff }?
w_CT_Fonts =
    attribute w:hint { "default" | "eastAsia" | "cs" }?,
    attribute w:ascii { s_ST_String }?,
    attribute w:hAnsi { s_ST_String }?,
    attribute w:eastAsia { s_ST_String }?,
    attribute w:cs { s_ST_String }?,
    attribute w:asciiTheme { w_ST_Theme }?,
    attribute w:hAnsiTheme { w_ST_Theme }?,
    attribute w:eastAsiaTheme { w_ST_Theme }?,
    attribute w:cstheme { w_ST_Theme }?
w_ST_Theme =
      "majorEastAsia"
    | "majorBidi"
    | "majorAscii"
    | "majorHAnsi"
    | "minorEastAsia"
    | "minorBidi"
    | "minorAscii"
    | "minorHAnsi"
w_EG_RPrContent =
    w_EG_RPrBase?,
    element rPrChange { w_CT_RPrChange }?
w_CT_RPr = w_EG_RPrContent?
w_EG_RPr = element rPr { w_CT_RPr }?
w_CT_Highlight = attribute w:val {
      "black"
    | "blue"
    | "cyan"
    | "green"
    | "magenta"
    | "red"
    | "yellow"
    | "white"
    | "darkBlue"
    | "darkCyan"
    | "darkGreen"
    | "darkMagenta"
    | "darkRed"
    | "darkYellow"
    | "darkGray"
    | "lightGray"
    | "none"
}
w_CT_Underline =
    attribute w:val { w_ST_Underline }?,
    attribute w:color { w_ST_HexColor }?,
    attribute w:themeColor { w_ST_ThemeColor }?,
    attribute w:themeTint { w_ST_UcharHexNumber }?,
    attribute w:themeShade { w_ST_UcharHexNumber }?
w_ST_Underline =
      "single"
    | "words"
    | "double"
    | "thick"
    | "dotted"
    | "dottedHeavy"
    | "dash"
    | "dashedHeavy"
    | "dashLong"
    | "dashLongHeavy"
    | "dotDash"
    | "dashDotHeavy"
    | "dotDotDash"
    | "dashDotDotHeavy"
    | "wave"
    | "wavyHeavy"
    | "wavyDouble"
    | "none"
w_CT_TextEffect = attribute w:val {
      "blinkBackground"
    | "lights"
    | "antsBlack"
    | "antsRed"
    | "shimmer"
    | "sparkle"
    | "none"
}
w_CT_FitText =
    attribute w:val { s_ST_TwipsMeasure },
    attribute w:id { xsd:integer }?
w_CT_VerticalAlignRun = attribute w:val { s_ST_VerticalAlignRun }
w_CT_Em = attribute w:val {
      "none"
    | "dot"
    | "comma"
    | "circle"
    | "underDot"
}
w_CT_EastAsianLayout =
    attribute w:id { xsd:integer }?,
    attribute w:combine { s_ST_OnOff }?,
    attribute w:combineBrackets { "none" | "round" | "square" | "angle" | "curly" }?,
    attribute w:vert { s_ST_OnOff }?,
    attribute w:vertCompress { s_ST_OnOff }?
w_EG_RPrMath =
    w_EG_RPr
    | element ins { w_CT_MathCtrlIns }
    | element del { w_CT_MathCtrlDel }

Table formatting

w_CT_TrPrBase =
    (element cnfStyle { w_CT_Cnf }?
     | element divId { attribute w:val { xsd:integer } }?
     | element gridBefore { attribute w:val { xsd:integer } }?
     | element gridAfter { attribute w:val { xsd:integer } }?
     | element wBefore { w_CT_TblWidth }?
     | element wAfter { w_CT_TblWidth }?
     | element cantSplit { w_CT_OnOff }?
     | element trHeight { w_CT_Height }?
     | element tblHeader { w_CT_OnOff }?
     | element tblCellSpacing { w_CT_TblWidth }?
     | element jc { attribute w:val { "center" | "end" | "left" | "right" | "start" } }?
     | element hidden { w_CT_OnOff }?)+
w_CT_Height =
    attribute w:val { s_ST_TwipsMeasure }?,
    attribute w:hRule { "auto" | "exact" | "atLeast" }?
w_CT_TrPr =
    w_CT_TrPrBase,
    element ins { w_CT_TrackChange }?,
    element del { w_CT_TrackChange }?,
    element trPrChange { w_CT_TrPrChange }?
w_CT_TblPPr =
    attribute w:leftFromText { s_ST_TwipsMeasure }?,
    attribute w:rightFromText { s_ST_TwipsMeasure }?,
    attribute w:topFromText { s_ST_TwipsMeasure }?,
    attribute w:bottomFromText { s_ST_TwipsMeasure }?,
    attribute w:vertAnchor { "text" | "margin" | "page" }?,
    attribute w:horzAnchor { "text" | "margin" | "page" }?,
    attribute w:tblpXSpec { s_ST_XAlign }?,
    attribute w:tblpX { w_ST_SignedTwipsMeasure }?,
    attribute w:tblpYSpec { s_ST_YAlign }?,
    attribute w:tblpY { w_ST_SignedTwipsMeasure }?
w_CT_TblCellMar =
    element top { w_CT_TblWidth }?,
    element start { w_CT_TblWidth }?,
    element left { w_CT_TblWidth }?,
    element bottom { w_CT_TblWidth }?,
    element end { w_CT_TblWidth }?,
    element right { w_CT_TblWidth }?
w_CT_TblBorders =
    element top { w_CT_Border }?,
    element start { w_CT_Border }?,
    element left { w_CT_Border }?,
    element bottom { w_CT_Border }?,
    element end { w_CT_Border }?,
    element right { w_CT_Border }?,
    element insideH { w_CT_Border }?,
    element insideV { w_CT_Border }?
w_CT_TblPrBase =
    element tblStyle { attribute w:val { s_ST_String } }?,
    element tblpPr { w_CT_TblPPr }?,
    element tblOverlap { attribute w:val { "never" | "overlap" } }?,
    element bidiVisual { w_CT_OnOff }?,
    element tblStyleRowBandSize { attribute w:val { xsd:integer } }?,
    element tblStyleColBandSize { attribute w:val { xsd:integer } }?,
    element tblW { w_CT_TblWidth }?,
    element jc { attribute w:val { "center" | "end" | "left" | "right" | "start" } }?,
    element tblCellSpacing { w_CT_TblWidth }?,
    element tblInd { w_CT_TblWidth }?,
    element tblBorders { w_CT_TblBorders }?,
    element shd { w_CT_Shd }?,
    element tblLayout { attribute w:type { "fixed" | "autofit" }? }?,
    element tblCellMar { w_CT_TblCellMar }?,
    element tblLook { w_CT_TblLook }?,
    element tblCaption { attribute w:val { s_ST_String } }?,
    element tblDescription { attribute w:val { s_ST_String } }?
w_CT_TblPr =
    w_CT_TblPrBase,
    element tblPrChange { w_CT_TblPrChange }?
w_CT_TblPrExBase =
    element tblW { w_CT_TblWidth }?,
    element jc { attribute w:val { "center" | "end" | "left" | "right" | "start" } }?,
    element tblCellSpacing { w_CT_TblWidth }?,
    element tblInd { w_CT_TblWidth }?,
    element tblBorders { w_CT_TblBorders }?,
    element shd { w_CT_Shd }?,
    element tblLayout { attribute w:type { "fixed" | "autofit" }? }?,
    element tblCellMar { w_CT_TblCellMar }?,
    element tblLook { w_CT_TblLook }?
w_CT_TblPrEx =
    w_CT_TblPrExBase,
    element tblPrExChange { w_CT_TblPrExChange }?
w_CT_TblLook =
    attribute w:firstRow { s_ST_OnOff }?,
    attribute w:lastRow { s_ST_OnOff }?,
    attribute w:firstColumn { s_ST_OnOff }?,
    attribute w:lastColumn { s_ST_OnOff }?,
    attribute w:noHBand { s_ST_OnOff }?,
    attribute w:noVBand { s_ST_OnOff }?,
    attribute w:val { w_ST_ShortHexNumber }?
w_CT_TblWidth =
    attribute w:w { w_ST_MeasurementOrPercent }?,
    attribute w:type { "nil" | "pct" | "dxa" | "auto" }?
w_CT_TblGridCol = attribute w:w { s_ST_TwipsMeasure }?
w_CT_TblGridBase = element gridCol { w_CT_TblGridCol }*
w_CT_TblGrid =
    w_CT_TblGridBase,
    element tblGridChange { w_CT_TblGridChange }?
w_CT_TcBorders =
    element top { w_CT_Border }?,
    element start { w_CT_Border }?,
    element left { w_CT_Border }?,
    element bottom { w_CT_Border }?,
    element end { w_CT_Border }?,
    element right { w_CT_Border }?,
    element insideH { w_CT_Border }?,
    element insideV { w_CT_Border }?,
    element tl2br { w_CT_Border }?,
    element tr2bl { w_CT_Border }?
w_CT_TcMar =
    element top { w_CT_TblWidth }?,
    element start { w_CT_TblWidth }?,
    element left { w_CT_TblWidth }?,
    element bottom { w_CT_TblWidth }?,
    element end { w_CT_TblWidth }?,
    element right { w_CT_TblWidth }?
w_CT_TcPrBase =
    element cnfStyle { w_CT_Cnf }?,
    element tcW { w_CT_TblWidth }?,
    element gridSpan { attribute w:val { xsd:integer } }?,
    element hMerge { attribute w:val { "continue" | "restart" }? }?,
    element vMerge { attribute w:val { "continue" | "restart" }? }?,
    element tcBorders { w_CT_TcBorders }?,
    element shd { w_CT_Shd }?,
    element noWrap { w_CT_OnOff }?,
    element tcMar { w_CT_TcMar }?,
    element textDirection { w_CT_TextDirection }?,
    element tcFitText { w_CT_OnOff }?,
    element vAlign { w_CT_VerticalJc }?,
    element hideMark { w_CT_OnOff }?,
    element headers { w_CT_Headers }?
w_CT_Headers = element header { attribute w:val { s_ST_String } }*
w_CT_TcPr =
    w_CT_TcPrInner,
    element tcPrChange { w_CT_TcPrChange }?
w_CT_TcPrInner = w_CT_TcPrBase, w_EG_CellMarkupElements?

General

Settings

w_settings = element settings {
    element writeProtection { w_CT_WriteProtection }?,
    element view { w_CT_View }?,
    element zoom { w_CT_Zoom }?,
    element removePersonalInformation { w_CT_OnOff }?,
    element removeDateAndTime { w_CT_OnOff }?,
    element doNotDisplayPageBoundaries { w_CT_OnOff }?,
    element displayBackgroundShape { w_CT_OnOff }?,
    element printPostScriptOverText { w_CT_OnOff }?,
    element printFractionalCharacterWidth { w_CT_OnOff }?,
    element printFormsData { w_CT_OnOff }?,
    element embedTrueTypeFonts { w_CT_OnOff }?,
    element embedSystemFonts { w_CT_OnOff }?,
    element saveSubsetFonts { w_CT_OnOff }?,
    element saveFormsData { w_CT_OnOff }?,
    element mirrorMargins { w_CT_OnOff }?,
    element alignBordersAndEdges { w_CT_OnOff }?,
    element bordersDoNotSurroundHeader { w_CT_OnOff }?,
    element bordersDoNotSurroundFooter { w_CT_OnOff }?,
    element gutterAtTop { w_CT_OnOff }?,
    element hideSpellingErrors { w_CT_OnOff }?,
    element hideGrammaticalErrors { w_CT_OnOff }?,
    element activeWritingStyle { w_CT_WritingStyle }*,
    element proofState { w_CT_Proof }?,
    element formsDesign { w_CT_OnOff }?,
    element attachedTemplate { w_CT_Rel }?,
    element linkStyles { w_CT_OnOff }?,
    element stylePaneFormatFilter { w_CT_StylePaneFilter }?,
    element stylePaneSortMethod { w_CT_StyleSort }?,
    element documentType { w_CT_DocType }?,
    element mailMerge { w_CT_MailMerge }?,
    element revisionView { w_CT_TrackChangesView }?,
    element trackRevisions { w_CT_OnOff }?,
    element doNotTrackMoves { w_CT_OnOff }?,
    element doNotTrackFormatting { w_CT_OnOff }?,
    element documentProtection { w_CT_DocProtect }?,
    element autoFormatOverride { w_CT_OnOff }?,
    element styleLockTheme { w_CT_OnOff }?,
    element styleLockQFSet { w_CT_OnOff }?,
    element defaultTabStop { w_CT_TwipsMeasure }?,
    element autoHyphenation { w_CT_OnOff }?,
    element consecutiveHyphenLimit { attribute w:val { xsd:integer } }?,
    element hyphenationZone { w_CT_TwipsMeasure }?,
    element doNotHyphenateCaps { w_CT_OnOff }?,
    element showEnvelope { w_CT_OnOff }?,
    element summaryLength { w_CT_DecimalNumberOrPrecent }?,
    element clickAndTypeStyle { attribute w:val { s_ST_String } }?,
    element defaultTableStyle { attribute w:val { s_ST_String } }?,
    element evenAndOddHeaders { w_CT_OnOff }?,
    element bookFoldRevPrinting { w_CT_OnOff }?,
    element bookFoldPrinting { w_CT_OnOff }?,
    element bookFoldPrintingSheets { attribute w:val { xsd:integer } }?,
    element drawingGridHorizontalSpacing { w_CT_TwipsMeasure }?,
    element drawingGridVerticalSpacing { w_CT_TwipsMeasure }?,
    element displayHorizontalDrawingGridEvery { attribute w:val { xsd:integer } }?,
    element displayVerticalDrawingGridEvery { attribute w:val { xsd:integer } }?,
    element doNotUseMarginsForDrawingGridOrigin { w_CT_OnOff }?,
    element drawingGridHorizontalOrigin { w_CT_TwipsMeasure }?,
    element drawingGridVerticalOrigin { w_CT_TwipsMeasure }?,
    element doNotShadeFormData { w_CT_OnOff }?,
    element noPunctuationKerning { w_CT_OnOff }?,
    element characterSpacingControl { w_CT_CharacterSpacing }?,
    element printTwoOnOne { w_CT_OnOff }?,
    element strictFirstAndLastChars { w_CT_OnOff }?,
    element noLineBreaksAfter { w_CT_Kinsoku }?,
    element noLineBreaksBefore { w_CT_Kinsoku }?,
    element savePreviewPicture { w_CT_OnOff }?,
    element doNotValidateAgainstSchema { w_CT_OnOff }?,
    element saveInvalidXml { w_CT_OnOff }?,
    element ignoreMixedContent { w_CT_OnOff }?,
    element alwaysShowPlaceholderText { w_CT_OnOff }?,
    element doNotDemarcateInvalidXml { w_CT_OnOff }?,
    element saveXmlDataOnly { w_CT_OnOff }?,
    element useXSLTWhenSaving { w_CT_OnOff }?,
    element saveThroughXslt { w_CT_SaveThroughXslt }?,
    element showXMLTags { w_CT_OnOff }?,
    element alwaysMergeEmptyNamespace { w_CT_OnOff }?,
    element updateFields { w_CT_OnOff }?,
    element hdrShapeDefaults { w_CT_ShapeDefaults }?,
    element footnotePr { w_CT_FtnDocProps }?,
    element endnotePr { w_CT_EdnDocProps }?,
    element compat { w_CT_Compat }?,
    element docVars { w_CT_DocVars }?,
    element rsids { w_CT_DocRsids }?,
    m_mathPr?,
    element attachedSchema { attribute w:val { s_ST_String } }*,
    element themeFontLang { w_CT_Language }?,
    element clrSchemeMapping { w_CT_ColorSchemeMapping }?,
    element doNotIncludeSubdocsInStats { w_CT_OnOff }?,
    element doNotAutoCompressPictures { w_CT_OnOff }?,
    element forceUpgrade { w_CT_Empty }?,
    element captions { w_CT_Captions }?,
    element readModeInkLockDown { w_CT_ReadingModeInkLockDown }?,
    element smartTagType { w_CT_SmartTagType }*,
    sl_schemaLibrary?,
    element shapeDefaults { w_CT_ShapeDefaults }?,
    element doNotEmbedSmartTags { w_CT_OnOff }?,
    element decimalSymbol { attribute w:val { s_ST_String } }?,
    element listSeparator { attribute w:val { s_ST_String } }?
}
w_CT_WriteProtection =
    attribute w:recommended { s_ST_OnOff }?,
    w_AG_Password,
    w_AG_TransitionalPassword
w_CT_DocProtect =
    attribute w:edit { "none" | "readOnly" | "comments" | "trackedChanges" | "forms" }?,
    attribute w:formatting { s_ST_OnOff }?,
    attribute w:enforcement { s_ST_OnOff }?,
    w_AG_Password,
    w_AG_TransitionalPassword
w_AG_Password =
    attribute w:algorithmName { s_ST_String }?,
    attribute w:hashValue { xsd:base64Binary }?,
    attribute w:saltValue { xsd:base64Binary }?,
    attribute w:spinCount { xsd:integer }?
w_AG_TransitionalPassword =
    attribute w:cryptProviderType { s_ST_CryptProv }?,
    attribute w:cryptAlgorithmClass { s_ST_AlgClass }?,
    attribute w:cryptAlgorithmType { s_ST_AlgType }?,
    attribute w:cryptAlgorithmSid { xsd:integer }?,
    attribute w:cryptSpinCount { xsd:integer }?,
    attribute w:cryptProvider { s_ST_String }?,
    attribute w:algIdExt { w_ST_LongHexNumber }?,
    attribute w:algIdExtSource { s_ST_String }?,
    attribute w:cryptProviderTypeExt { w_ST_LongHexNumber }?,
    attribute w:cryptProviderTypeExtSource { s_ST_String }?,
    attribute w:hash { xsd:base64Binary }?,
    attribute w:salt { xsd:base64Binary }?
w_CT_View = attribute w:val { "none" | "print" | "outline" | "masterPages" | "normal" | "web" }
w_CT_Zoom =
    attribute w:val { "none" | "fullPage" | "bestFit" | "textFit" }?,
    attribute w:percent { w_ST_DecimalNumberOrPercent }
w_CT_WritingStyle =
    attribute w:lang { s_ST_Lang },
    attribute w:vendorID { s_ST_String },
    attribute w:dllVersion { s_ST_String },
    attribute w:nlCheck { s_ST_OnOff }?,
    attribute w:checkStyle { s_ST_OnOff },
    attribute w:appName { s_ST_String }
w_CT_Proof =
    attribute w:spelling { "clean" | "dirty" }?,
    attribute w:grammar { "clean" | "dirty" }?
w_CT_StylePaneFilter =
    attribute w:allStyles { s_ST_OnOff }?,
    attribute w:customStyles { s_ST_OnOff }?,
    attribute w:latentStyles { s_ST_OnOff }?,
    attribute w:stylesInUse { s_ST_OnOff }?,
    attribute w:headingStyles { s_ST_OnOff }?,
    attribute w:numberingStyles { s_ST_OnOff }?,
    attribute w:tableStyles { s_ST_OnOff }?,
    attribute w:directFormattingOnRuns { s_ST_OnOff }?,
    attribute w:directFormattingOnParagraphs { s_ST_OnOff }?,
    attribute w:directFormattingOnNumbering { s_ST_OnOff }?,
    attribute w:directFormattingOnTables { s_ST_OnOff }?,
    attribute w:clearFormatting { s_ST_OnOff }?,
    attribute w:top3HeadingStyles { s_ST_OnOff }?,
    attribute w:visibleStyles { s_ST_OnOff }?,
    attribute w:alternateStyleNames { s_ST_OnOff }?,
    attribute w:val { w_ST_ShortHexNumber }?
w_CT_StyleSort = attribute w:val {
      "name" | "priority" | "default" | "font" | "basedOn" | "type"
    | "0000" | "0001"     | "0002"    | "0003" | "0004"    | "0005"
}
w_CT_DocType = attribute w:val { xsd:string }
w_CT_TrackChangesView =
    attribute w:markup { s_ST_OnOff }?,
    attribute w:comments { s_ST_OnOff }?,
    attribute w:insDel { s_ST_OnOff }?,
    attribute w:formatting { s_ST_OnOff }?,
    attribute w:inkAnnotations { s_ST_OnOff }?
w_CT_CharacterSpacing = attribute w:val {
    "doNotCompress" | "compressPunctuation" | "compressPunctuationAndJapaneseKana"
}
w_CT_Kinsoku =
    attribute w:lang { s_ST_Lang },
    attribute w:val { s_ST_String }
w_CT_SaveThroughXslt =
    r_id?,
    attribute w:solutionID { s_ST_String }?
w_CT_ShapeDefaults = (w_any_vml_office*)+
w_CT_FtnDocProps =
    w_CT_FtnProps,
    element footnote { w_CT_FtnEdnSepRef }*
w_CT_EdnDocProps =
    w_CT_EdnProps,
    element endnote { w_CT_FtnEdnSepRef }*
w_CT_FtnEdnSepRef = attribute w:id { xsd:integer }
w_CT_Compat =
    element useSingleBorderforContiguousCells { w_CT_OnOff }?,
    element wpJustification { w_CT_OnOff }?,
    element noTabHangInd { w_CT_OnOff }?,
    element noLeading { w_CT_OnOff }?,
    element spaceForUL { w_CT_OnOff }?,
    element noColumnBalance { w_CT_OnOff }?,
    element balanceSingleByteDoubleByteWidth { w_CT_OnOff }?,
    element noExtraLineSpacing { w_CT_OnOff }?,
    element doNotLeaveBackslashAlone { w_CT_OnOff }?,
    element ulTrailSpace { w_CT_OnOff }?,
    element doNotExpandShiftReturn { w_CT_OnOff }?,
    element spacingInWholePoints { w_CT_OnOff }?,
    element lineWrapLikeWord6 { w_CT_OnOff }?,
    element printBodyTextBeforeHeader { w_CT_OnOff }?,
    element printColBlack { w_CT_OnOff }?,
    element wpSpaceWidth { w_CT_OnOff }?,
    element showBreaksInFrames { w_CT_OnOff }?,
    element subFontBySize { w_CT_OnOff }?,
    element suppressBottomSpacing { w_CT_OnOff }?,
    element suppressTopSpacing { w_CT_OnOff }?,
    element suppressSpacingAtTopOfPage { w_CT_OnOff }?,
    element suppressTopSpacingWP { w_CT_OnOff }?,
    element suppressSpBfAfterPgBrk { w_CT_OnOff }?,
    element swapBordersFacingPages { w_CT_OnOff }?,
    element convMailMergeEsc { w_CT_OnOff }?,
    element truncateFontHeightsLikeWP6 { w_CT_OnOff }?,
    element mwSmallCaps { w_CT_OnOff }?,
    element usePrinterMetrics { w_CT_OnOff }?,
    element doNotSuppressParagraphBorders { w_CT_OnOff }?,
    element wrapTrailSpaces { w_CT_OnOff }?,
    element footnoteLayoutLikeWW8 { w_CT_OnOff }?,
    element shapeLayoutLikeWW8 { w_CT_OnOff }?,
    element alignTablesRowByRow { w_CT_OnOff }?,
    element forgetLastTabAlignment { w_CT_OnOff }?,
    element adjustLineHeightInTable { w_CT_OnOff }?,
    element autoSpaceLikeWord95 { w_CT_OnOff }?,
    element noSpaceRaiseLower { w_CT_OnOff }?,
    element doNotUseHTMLParagraphAutoSpacing { w_CT_OnOff }?,
    element layoutRawTableWidth { w_CT_OnOff }?,
    element layoutTableRowsApart { w_CT_OnOff }?,
    element useWord97LineBreakRules { w_CT_OnOff }?,
    element doNotBreakWrappedTables { w_CT_OnOff }?,
    element doNotSnapToGridInCell { w_CT_OnOff }?,
    element selectFldWithFirstOrLastChar { w_CT_OnOff }?,
    element applyBreakingRules { w_CT_OnOff }?,
    element doNotWrapTextWithPunct { w_CT_OnOff }?,
    element doNotUseEastAsianBreakRules { w_CT_OnOff }?,
    element useWord2002TableStyleRules { w_CT_OnOff }?,
    element growAutofit { w_CT_OnOff }?,
    element useFELayout { w_CT_OnOff }?,
    element useNormalStyleForList { w_CT_OnOff }?,
    element doNotUseIndentAsNumberingTabStop { w_CT_OnOff }?,
    element useAltKinsokuLineBreakRules { w_CT_OnOff }?,
    element allowSpaceOfSameStyleInTable { w_CT_OnOff }?,
    element doNotSuppressIndentation { w_CT_OnOff }?,
    element doNotAutofitConstrainedTables { w_CT_OnOff }?,
    element autofitToFirstFixedWidthCell { w_CT_OnOff }?,
    element underlineTabInNumList { w_CT_OnOff }?,
    element displayHangulFixedWidth { w_CT_OnOff }?,
    element splitPgBreakAndParaMark { w_CT_OnOff }?,
    element doNotVertAlignCellWithSp { w_CT_OnOff }?,
    element doNotBreakConstrainedForcedTable { w_CT_OnOff }?,
    element doNotVertAlignInTxbx { w_CT_OnOff }?,
    element useAnsiKerningPairs { w_CT_OnOff }?,
    element cachedColBalance { w_CT_OnOff }?,
    element compatSetting { w_CT_CompatSetting }*
w_CT_CompatSetting =
    attribute w:name { s_ST_String }?,
    attribute w:uri { s_ST_String }?,
    attribute w:val { s_ST_String }?
w_CT_DocVar =
    attribute w:name { s_ST_String },
    attribute w:val { s_ST_String }
w_CT_DocVars = element docVar { w_CT_DocVar }*
w_CT_DocRsids =
    element rsidRoot { w_CT_LongHexNumber }?,
    element rsid { w_CT_LongHexNumber }*
w_CT_ColorSchemeMapping =
    attribute w:bg1 { w_ST_WmlColorSchemeIndex }?,
    attribute w:t1 { w_ST_WmlColorSchemeIndex }?,
    attribute w:bg2 { w_ST_WmlColorSchemeIndex }?,
    attribute w:t2 { w_ST_WmlColorSchemeIndex }?,
    attribute w:accent1 { w_ST_WmlColorSchemeIndex }?,
    attribute w:accent2 { w_ST_WmlColorSchemeIndex }?,
    attribute w:accent3 { w_ST_WmlColorSchemeIndex }?,
    attribute w:accent4 { w_ST_WmlColorSchemeIndex }?,
    attribute w:accent5 { w_ST_WmlColorSchemeIndex }?,
    attribute w:accent6 { w_ST_WmlColorSchemeIndex }?,
    attribute w:hyperlink { w_ST_WmlColorSchemeIndex }?,
    attribute w:followedHyperlink { w_ST_WmlColorSchemeIndex }?
w_ST_WmlColorSchemeIndex =
      "dark1"
    | "light1"
    | "dark2"
    | "light2"
    | "accent1"
    | "accent2"
    | "accent3"
    | "accent4"
    | "accent5"
    | "accent6"
    | "hyperlink"
    | "followedHyperlink"
w_CT_Caption =
    attribute w:name { s_ST_String },
    attribute w:pos { "above" | "below" | "left" | "right" }?,
    attribute w:chapNum { s_ST_OnOff }?,
    attribute w:heading { xsd:integer }?,
    attribute w:noLabel { s_ST_OnOff }?,
    attribute w:numFmt { w_ST_NumberFormat }?,
    attribute w:sep { "hyphen" | "period" | "colon" | "emDash" | "enDash" }?
w_CT_AutoCaption =
    attribute w:name { s_ST_String },
    attribute w:caption { s_ST_String }
w_CT_AutoCaptions = element autoCaption { w_CT_AutoCaption }+
w_CT_Captions =
    element caption { w_CT_Caption }+,
    element autoCaptions { w_CT_AutoCaptions }?
w_CT_ReadingModeInkLockDown =
    attribute w:actualPg { s_ST_OnOff },
    attribute w:w { w_ST_PixelsMeasure },
    attribute w:h { w_ST_PixelsMeasure },
    attribute w:fontSz { w_ST_DecimalNumberOrPercent }
w_CT_SmartTagType =
    attribute w:namespaceuri { s_ST_String }?,
    attribute w:name { s_ST_String }?,
    attribute w:url { s_ST_String }?

Section properties

w_CT_SectPr =
    w_AG_SectPrAttributes,
    w_EG_HdrFtrReferences*,
    w_EG_SectPrContents?,
    element sectPrChange { w_CT_SectPrChange }?
w_AG_SectPrAttributes =
    attribute w:rsidRPr { w_ST_LongHexNumber }?,
    attribute w:rsidDel { w_ST_LongHexNumber }?,
    attribute w:rsidR { w_ST_LongHexNumber }?,
    attribute w:rsidSect { w_ST_LongHexNumber }?
w_EG_HdrFtrReferences =
    element headerReference { w_CT_HdrFtrRef }?
    | element footerReference { w_CT_HdrFtrRef }?
w_CT_HdrFtrRef =
    w_CT_Rel,
    attribute w:type { "even" | "default" | "first" }
w_EG_SectPrContents =
    element footnotePr { w_CT_FtnProps }?,
    element endnotePr { w_CT_EdnProps }?,
    element type { w_CT_SectType }?,
    element pgSz { w_CT_PageSz }?,
    element pgMar { w_CT_PageMar }?,
    element paperSrc { w_CT_PaperSource }?,
    element pgBorders { w_CT_PageBorders }?,
    element lnNumType { w_CT_LineNumber }?,
    element pgNumType { w_CT_PageNumber }?,
    element cols { w_CT_Columns }?,
    element formProt { w_CT_OnOff }?,
    element vAlign { w_CT_VerticalJc }?,
    element noEndnote { w_CT_OnOff }?,
    element titlePg { w_CT_OnOff }?,
    element textDirection { w_CT_TextDirection }?,
    element bidi { w_CT_OnOff }?,
    element rtlGutter { w_CT_OnOff }?,
    element docGrid { w_CT_DocGrid }?,
    element printerSettings { w_CT_Rel }?
w_CT_SectType = attribute w:val {
    "nextPage" | "nextColumn" | "continuous" | "evenPage" | "oddPage"
}?
w_CT_PageSz =
    attribute w:w { s_ST_TwipsMeasure }?,
    attribute w:h { s_ST_TwipsMeasure }?,
    attribute w:orient { "portrait" | "landscape" }?,
    attribute w:code { xsd:integer }?
w_CT_PageMar =
    attribute w:top { w_ST_SignedTwipsMeasure },
    attribute w:right { s_ST_TwipsMeasure },
    attribute w:bottom { w_ST_SignedTwipsMeasure },
    attribute w:left { s_ST_TwipsMeasure },
    attribute w:header { s_ST_TwipsMeasure },
    attribute w:footer { s_ST_TwipsMeasure },
    attribute w:gutter { s_ST_TwipsMeasure }
w_CT_PaperSource =
    attribute w:first { xsd:integer }?,
    attribute w:other { xsd:integer }?
w_CT_PageBorders =
    attribute w:zOrder { "front" | "back" }?,
    attribute w:display { "allPages" | "firstPage" | "notFirstPage" }?,
    attribute w:offsetFrom { "page" | "text" }?,
    element top { w_CT_Border, r_id?, r_topLeft?, r_topRight? }?,
    element left { w_CT_Border, r_id? }?,
    element bottom { w_CT_Border, r_id?, r_bottomLeft?, r_bottomRight? }?,
    element right { w_CT_Border, r_id? }?
w_CT_LineNumber =
    attribute w:countBy { xsd:integer }?,
    attribute w:start { xsd:integer }?,
    attribute w:distance { s_ST_TwipsMeasure }?,
    attribute w:restart { "newPage" | "newSection" | "continuous" }?
w_CT_PageNumber =
    attribute w:fmt { w_ST_NumberFormat }?,
    attribute w:start { xsd:integer }?,
    attribute w:chapStyle { xsd:integer }?,
    attribute w:chapSep { "hyphen" | "period" | "colon" | "emDash" | "enDash" }?
w_CT_Columns =
    attribute w:equalWidth { s_ST_OnOff }?,
    attribute w:space { s_ST_TwipsMeasure }?,
    attribute w:num { xsd:integer }?,
    attribute w:sep { s_ST_OnOff }?,
    element col { w_CT_Column }*
w_CT_Column =
    attribute w:w { s_ST_TwipsMeasure }?,
    attribute w:space { s_ST_TwipsMeasure }?
w_CT_DocGrid =
    attribute w:type { "default" | "lines" | "linesAndChars" | "snapToChars" }?,
    attribute w:linePitch { xsd:integer }?,
    attribute w:charSpace { xsd:integer }?

Numbering

w_numbering = element numbering {
    element numPicBullet { w_CT_NumPicBullet }*,
    element abstractNum { w_CT_AbstractNum }*,
    element num { w_CT_Num }*,
    element numIdMacAtCleanup { attribute w:val { xsd:integer } }?
}
w_CT_NumPicBullet =
    attribute w:numPicBulletId { xsd:integer },
    (element pict { w_CT_Picture } | element drawing { w_CT_Drawing })
w_CT_AbstractNum =
    attribute w:abstractNumId { xsd:integer },
    element nsid { w_CT_LongHexNumber }?,
    element multiLevelType { attribute w:val { "singleLevel" | "multilevel" | "hybridMultilevel" } }?,
    element tmpl { w_CT_LongHexNumber }?,
    element name { attribute w:val { s_ST_String } }?,
    element styleLink { attribute w:val { s_ST_String } }?,
    element numStyleLink { attribute w:val { s_ST_String } }?,
    element lvl { w_CT_Lvl }*
w_CT_Num =
    attribute w:numId { xsd:integer },
    element abstractNumId { attribute w:val { xsd:integer } },
    element lvlOverride { w_CT_NumLvl }*
w_CT_NumLvl =
    attribute w:ilvl { xsd:integer },
    element startOverride { attribute w:val { xsd:integer } }?,
    element lvl { w_CT_Lvl }?
w_CT_Lvl =
    attribute w:ilvl { xsd:integer },
    attribute w:tplc { w_ST_LongHexNumber }?,
    attribute w:tentative { s_ST_OnOff }?,
    element start { attribute w:val { xsd:integer } }?,
    element numFmt { w_CT_NumFmt }?,
    element lvlRestart { attribute w:val { xsd:integer } }?,
    element pStyle { attribute w:val { s_ST_String } }?,
    element isLgl { w_CT_OnOff }?,
    element suff { attribute w:val { "tab" | "space" | "nothing" } }?,
    element lvlText {
        attribute w:val { s_ST_String }?,
        attribute w:null { s_ST_OnOff }?
    }?,
    element lvlPicBulletId { attribute w:val { xsd:integer } }?,
    element legacy {
        attribute w:legacy { s_ST_OnOff }?,
        attribute w:legacySpace { s_ST_TwipsMeasure }?,
        attribute w:legacyIndent { w_ST_SignedTwipsMeasure }?
    }?,
    element lvlJc { w_CT_Jc }?,
    element pPr { w_CT_PPrGeneral }?,
    element rPr { w_CT_RPr }?

Fonts

w_fonts = element fonts { element font { w_CT_Font }* }
w_CT_Font =
    attribute w:name { s_ST_String },
    element altName { attribute w:val { s_ST_String } }?,
    element panose1 { w_CT_Panose }?,
    element charset { w_CT_Charset }?,
    element family { w_CT_FontFamily }?,
    element notTrueType { w_CT_OnOff }?,
    element pitch { w_CT_Pitch }?,
    element sig { w_CT_FontSig }?,
    element embedRegular { w_CT_FontRel }?,
    element embedBold { w_CT_FontRel }?,
    element embedItalic { w_CT_FontRel }?,
    element embedBoldItalic { w_CT_FontRel }?
w_CT_Panose = attribute w:val { s_ST_Panose }
w_CT_Charset =
    attribute w:val { w_ST_UcharHexNumber }?,
    attribute w:characterSet { s_ST_String }?
w_CT_FontFamily = attribute w:val {
    "decorative" | "modern" | "roman" | "script" | "swiss" | "auto"
}
w_CT_Pitch = attribute w:val { "fixed" | "variable" | "default" }
w_CT_FontSig =
    attribute w:usb0 { w_ST_LongHexNumber },
    attribute w:usb1 { w_ST_LongHexNumber },
    attribute w:usb2 { w_ST_LongHexNumber },
    attribute w:usb3 { w_ST_LongHexNumber },
    attribute w:csb0 { w_ST_LongHexNumber },
    attribute w:csb1 { w_ST_LongHexNumber }
w_CT_FontRel =
    w_CT_Rel,
    attribute w:fontKey { s_ST_Guid }?,
    attribute w:subsetted { s_ST_OnOff }?

Comments

w_comments =
    element comments {
        element comment { w_CT_Comment }*
    }
w_CT_Comment =
    w_CT_TrackChange,
    w_EG_BlockLevelElts*,
    attribute w:initials { s_ST_String }?

Change tracking

w_CT_TrackChange =
    attribute w:id { xsd:integer },
    attribute w:author { s_ST_String },
    attribute w:date { w_ST_DateTime }?
w_CT_CellMergeTrackChange =
    w_CT_TrackChange,
    attribute w:vMerge { "cont" | "rest" }?,
    attribute w:vMergeOrig { "cont" | "rest" }?
w_CT_TrackChangeRange =
    w_CT_TrackChange,
    attribute w:displacedByCustomXml { "next" | "prev" }?
w_CT_TrackChangeNumbering =
    w_CT_TrackChange,
    attribute w:original { s_ST_String }?
w_CT_TblPrExChange =
    w_CT_TrackChange,
    element tblPrEx { w_CT_TblPrExBase }
w_CT_TcPrChange =
    w_CT_TrackChange,
    element tcPr { w_CT_TcPrInner }
w_CT_TrPrChange =
    w_CT_TrackChange,
    element trPr { w_CT_TrPrBase }
w_CT_TblGridChange =
    attribute w:id { xsd:integer },
    element tblGrid { w_CT_TblGridBase }
w_CT_TblPrChange =
    w_CT_TrackChange,
    element tblPr { w_CT_TblPrBase }
w_CT_SectPrChange =
    w_CT_TrackChange,
    element sectPr {
      w_AG_SectPrAttributes,
      w_EG_SectPrContents?
    }?
w_CT_PPrChange =
    w_CT_TrackChange,
    element pPr { w_CT_PPrBase }
w_CT_RPrChange =
    w_CT_TrackChange,
    element rPr { w_CT_RPrOriginal }
w_CT_RPrOriginal = w_EG_RPrBase*
w_CT_ParaRPrChange =
    w_CT_TrackChange,
    element rPr { w_CT_ParaRPrOriginal }
w_CT_ParaRPrOriginal = w_EG_ParaRPrTrackChanges?, w_EG_RPrBase*
w_CT_RunTrackChange =
    w_CT_TrackChange,
   (w_EG_ContentRunContent | m_EG_OMathMathElements)*
w_CT_MathCtrlIns =
    w_CT_TrackChange,
    (element del { w_CT_RPrChange }
     | element rPr { w_CT_RPr })?
w_CT_MathCtrlDel =
    w_CT_TrackChange,
    (element rPr { w_CT_RPr })?
w_EG_ParaRPrTrackChanges =
    element ins { w_CT_TrackChange }?,
    element del { w_CT_TrackChange }?,
    element moveFrom { w_CT_TrackChange }?,
    element moveTo { w_CT_TrackChange }?

Special features

Glossary

w_glossaryDocument = element glossaryDocument { w_CT_GlossaryDocument }
w_CT_GlossaryDocument =
    element background { w_CT_Background }?,
    element docParts { w_CT_DocParts }?
w_CT_DocParts = element docPart { w_CT_DocPart }+
w_CT_DocPart =
    element docPartPr { w_CT_DocPartPr }?,
    element docPartBody { w_CT_Body }?
w_CT_DocPartPr =
    element name {
        attribute w:val { s_ST_String },
        attribute w:decorated { s_ST_OnOff }?
    }
    element style { attribute w:val { s_ST_String } }?
    element category {
        element name { attribute w:val { s_ST_String } },
        element gallery { w_CT_DocPartGallery }
    }?
    element types {
        attribute w:all { s_ST_OnOff }?,
        (element type { w_CT_DocPartType }+)
    }?
    element behaviors {
        element behavior { attribute w:val { "content" | "p" | "pg" } }+
    }?
    element description { attribute w:val { s_ST_String } }?
    element guid { w_CT_Guid }?
w_CT_DocPartType = attribute w:val {
    "none" | "normal" | "autoExp" | "toolbar" | "speller" | "formFld" | "bbPlcHdr"
}
w_ST_DocPartGallery =
      "placeholder"
    | "any"
    | "default"
    | "docParts"
    | "coverPg"
    | "eq"
    | "ftrs"
    | "hdrs"
    | "pgNum"
    | "tbls"
    | "watermarks"
    | "autoTxt"
    | "txtBox"
    | "pgNumT"
    | "pgNumB"
    | "pgNumMargins"
    | "tblOfContents"
    | "bib"
    | "custQuickParts"
    | "custCoverPg"
    | "custEq"
    | "custFtrs"
    | "custHdrs"
    | "custPgNum"
    | "custTbls"
    | "custWatermarks"
    | "custAutoTxt"
    | "custTxtBox"
    | "custPgNumT"
    | "custPgNumB"
    | "custPgNumMargins"
    | "custTblOfContents"
    | "custBib"
    | "custom1"
    | "custom2"
    | "custom3"
    | "custom4"
    | "custom5"
w_CT_DocPartGallery = attribute w:val { w_ST_DocPartGallery }

Custom XML

w_CT_CustomXmlRun =
    attribute w:uri { s_ST_String }?,
    attribute w:element { s_ST_XmlName },
    element customXmlPr { w_CT_CustomXmlPr }?,
    w_EG_PContent*
w_CT_CustomXmlBlock =
    attribute w:uri { s_ST_String }?,
    attribute w:element { s_ST_XmlName },
    element customXmlPr { w_CT_CustomXmlPr }?,
    w_EG_ContentBlockContent*
w_CT_CustomXmlPr =
    element placeholder { attribute w:val { s_ST_String } }?,
    element attr { w_CT_Attr }*
w_CT_Attr =
    attribute w:uri { s_ST_String }?,
    attribute w:name { s_ST_String },
    attribute w:val { s_ST_String }
w_CT_CustomXmlRow =
    attribute w:uri { s_ST_String }?,
    attribute w:element { s_ST_XmlName },
    element customXmlPr { w_CT_CustomXmlPr }?,
    w_EG_ContentRowContent*
w_CT_CustomXmlCell =
    attribute w:uri { s_ST_String }?,
    attribute w:element { s_ST_XmlName },
    element customXmlPr { w_CT_CustomXmlPr }?,
    w_EG_ContentCellContent*

Web settings

w_webSettings = element webSettings { w_CT_WebSettings }
w_CT_WebSettings =
    element frameset { w_CT_Frameset }?,
    element divs { w_CT_Divs }?,
    element encoding { attribute w:val { s_ST_String } }?,
    element optimizeForBrowser { w_CT_OptimizeForBrowser }?,
    element relyOnVML { w_CT_OnOff }?,
    element allowPNG { w_CT_OnOff }?,
    element doNotRelyOnCSS { w_CT_OnOff }?,
    element doNotSaveAsSingleFile { w_CT_OnOff }?,
    element doNotOrganizeInFolder { w_CT_OnOff }?,
    element doNotUseLongFileNames { w_CT_OnOff }?,
    element pixelsPerInch { attribute w:val { xsd:integer } }?,
    element targetScreenSz { w_CT_TargetScreenSz }?,
    element saveSmartTagsAsXml { w_CT_OnOff }?
w_CT_FramesetSplitbar =
    element w { w_CT_TwipsMeasure }?,
    element color { w_CT_Color }?,
    element noBorder { w_CT_OnOff }?,
    element flatBorders { w_CT_OnOff }?
w_CT_Frameset =
    element sz { attribute w:val { s_ST_String } }?,
    element framesetSplitbar { w_CT_FramesetSplitbar }?,
    element frameLayout { w_CT_FrameLayout }?,
    element title { attribute w:val { s_ST_String } }?,
    (element frameset { w_CT_Frameset }*
     | element frame { w_CT_Frame }*)*
w_CT_Frame =
    element sz { attribute w:val { s_ST_String } }?,
    element name { attribute w:val { s_ST_String } }?,
    element title { attribute w:val { s_ST_String } }?,
    element longDesc { w_CT_Rel }?,
    element sourceFileName { w_CT_Rel }?,
    element marW { w_CT_PixelsMeasure }?,
    element marH { w_CT_PixelsMeasure }?,
    element scrollbar { w_CT_FrameScrollbar }?,
    element noResizeAllowed { w_CT_OnOff }?,
    element linkedToFile { w_CT_OnOff }?
w_CT_FrameScrollbar = attribute w:val { "on" | "off" | "auto" }
w_CT_FrameLayout = attribute w:val { "rows" | "cols" | "none" }
w_CT_Divs = element div { w_CT_Div }+
w_CT_Div =
    attribute w:id { xsd:integer },
    element blockQuote { w_CT_OnOff }?,
    element bodyDiv { w_CT_OnOff }?,
    element marLeft { w_CT_SignedTwipsMeasure },
    element marRight { w_CT_SignedTwipsMeasure },
    element marTop { w_CT_SignedTwipsMeasure },
    element marBottom { w_CT_SignedTwipsMeasure },
    element divBdr { w_CT_DivBdr }?,
    element divsChild { w_CT_Divs }*
w_CT_DivBdr =
    element top { w_CT_Border }?,
    element left { w_CT_Border }?,
    element bottom { w_CT_Border }?,
    element right { w_CT_Border }?
w_CT_OptimizeForBrowser =
    w_CT_OnOff,
    attribute w:target { s_ST_String }?
w_CT_TargetScreenSz = attribute w:val {
      "544x376"
    | "640x480"
    | "720x512"
    | "800x600"
    | "1024x768"
    | "1152x882"
    | "1152x900"
    | "1280x1024"
    | "1600x1200"
    | "1800x1440"
    | "1920x1200"
}

Structured data

w_CT_SdtListItem =
    attribute w:displayText { s_ST_String }?,
    attribute w:value { s_ST_String }?
w_CT_CalendarType = attribute w:val { s_ST_CalendarType }?
w_CT_SdtDate =
    attribute w:fullDate { w_ST_DateTime }?,
    element dateFormat { attribute w:val { s_ST_String } }?,
    element lid { attribute w:val { s_ST_Lang } }?,
    element storeMappedDataAs { w_CT_SdtDateMappingType }?,
    element calendar { w_CT_CalendarType }?
w_CT_SdtDateMappingType = attribute w:val { "text" | "date" | "dateTime" }?
w_CT_SdtComboBox =
    attribute w:lastValue { s_ST_String }?,
    element listItem { w_CT_SdtListItem }*
w_CT_SdtDocPart =
    element docPartGallery { attribute w:val { s_ST_String } }?,
    element docPartCategory { attribute w:val { s_ST_String } }?,
    element docPartUnique { w_CT_OnOff }?
w_CT_SdtDropDownList =
    attribute w:lastValue { s_ST_String }?,
    element listItem { w_CT_SdtListItem }*
w_CT_SdtPr =
    element rPr { w_CT_RPr }?,
    element alias { attribute w:val { s_ST_String } }?,
    element tag { attribute w:val { s_ST_String } }?,
    element id { attribute w:val { xsd:integer } }?,
    element lock { attribute w:val { "sdtLocked" | "contentLocked" | "unlocked" | "sdtContentLocked" }? }?,
    element placeholder { element docPart { attribute w:val { s_ST_String } } }?,
    element temporary { w_CT_OnOff }?,
    element showingPlcHdr { w_CT_OnOff }?,
    element dataBinding { w_CT_DataBinding }?,
    element label { attribute w:val { xsd:integer } }?,
    element tabIndex { w_CT_UnsignedDecimalNumber }?,
    (element equation { w_CT_Empty }
        | element comboBox { w_CT_SdtComboBox }
         | element date { w_CT_SdtDate }
         | element docPartObj { w_CT_SdtDocPart }
         | element docPartList { w_CT_SdtDocPart }
         | element dropDownList { w_CT_SdtDropDownList }
         | element picture { w_CT_Empty }
         | element richText { w_CT_Empty }
         | element text { w_CT_SdtText }
         | element citation { w_CT_Empty }
         | element group { w_CT_Empty }
         | element bibliography { w_CT_Empty })?
w_CT_DataBinding =
    attribute w:prefixMappings { s_ST_String }?,
    attribute w:xpath { s_ST_String },
    attribute w:storeItemID { s_ST_String }
w_CT_SdtText = attribute w:multiLine { s_ST_OnOff }?
w_CT_SdtEndPr = (element rPr { w_CT_RPr }?)+
w_CT_SdtContentRun = w_EG_PContent*
w_CT_SdtContentBlock = w_EG_ContentBlockContent*
w_CT_SdtContentRow = w_EG_ContentRowContent*
w_CT_SdtContentCell = w_EG_ContentCellContent*
w_CT_SdtBlock =
    element sdtPr { w_CT_SdtPr }?,
    element sdtEndPr { w_CT_SdtEndPr }?,
    element sdtContent { w_CT_SdtContentBlock }?
w_CT_SdtRun =
    element sdtPr { w_CT_SdtPr }?,
    element sdtEndPr { w_CT_SdtEndPr }?,
    element sdtContent { w_CT_SdtContentRun }?
w_CT_SdtCell =
    element sdtPr { w_CT_SdtPr }?,
    element sdtEndPr { w_CT_SdtEndPr }?,
    element sdtContent { w_CT_SdtContentCell }?
w_CT_SdtRow =
    element sdtPr { w_CT_SdtPr }?,
    element sdtEndPr { w_CT_SdtEndPr }?,
    element sdtContent { w_CT_SdtContentRow }?

Mail merge

w_CT_MailMerge =
    element mainDocumentType {
        attribute w:val {
            "catalog" | "envelopes" | "mailingLabels" | "formLetters" | "email" | "fax"
        }    
    },
    element linkToQuery { w_CT_OnOff }?,
    element dataType { attribute w:val { xsd:string } },
    element connectString { attribute w:val { s_ST_String } }?,
    element query { attribute w:val { s_ST_String } }?,
    element dataSource { w_CT_Rel }?,
    element headerSource { w_CT_Rel }?,
    element doNotSuppressBlankLines { w_CT_OnOff }?,
    element destination { "newDocument" | "printer" | "email" | "fax" }?,
    element addressFieldName { attribute w:val { s_ST_String } }?,
    element mailSubject { attribute w:val { s_ST_String } }?,
    element mailAsAttachment { w_CT_OnOff }?,
    element viewMergedData { w_CT_OnOff }?,
    element activeRecord { attribute w:val { xsd:integer } }?,
    element checkErrors { attribute w:val { xsd:integer } }?,
    element odso { w_CT_Odso }?
w_CT_Odso =
    element udl { attribute w:val { s_ST_String } }?,
    element table { attribute w:val { s_ST_String } }?,
    element src { w_CT_Rel }?,
    element colDelim { attribute w:val { xsd:integer } }?,
    element type { w_CT_MailMergeSourceType }?,
    element fHdr { w_CT_OnOff }?,
    element fieldMapData { w_CT_OdsoFieldMapData }*,
    element recipientData { w_CT_Rel }*
w_CT_OdsoFieldMapData =
    element type { attribute w:val { "null" | "dbColumn" } }?,
    element name { attribute w:val { s_ST_String } }?,
    element mappedName { attribute w:val { s_ST_String } }?,
    element column { attribute w:val { xsd:integer } }?,
    element lid { attribute w:val { s_ST_Lang } }?,
    element dynamicAddress { w_CT_OnOff }?
w_CT_MailMergeSourceType = attribute w:val {
    "database" | "addressBook" | "document1" | "document2" |
    "text" | "email" | "native" | "legacy" | "master"
}
w_recipients = element recipients {
    element recipientData {
        element active { w_CT_OnOff }?,
        element column { attribute w:val { xsd:integer } },
        element uniqueTag { w_CT_Base64Binary }
    }+
}

Conditional formatting

w_CT_Cnf =
    attribute w:val { xsd:string { length = "12" pattern = "[01]*" } }?,
    attribute w:firstRow { s_ST_OnOff }?,
    attribute w:lastRow { s_ST_OnOff }?,
    attribute w:firstColumn { s_ST_OnOff }?,
    attribute w:lastColumn { s_ST_OnOff }?,
    attribute w:oddVBand { s_ST_OnOff }?,
    attribute w:evenVBand { s_ST_OnOff }?,
    attribute w:oddHBand { s_ST_OnOff }?,
    attribute w:evenHBand { s_ST_OnOff }?,
    attribute w:firstRowFirstColumn { s_ST_OnOff }?,
    attribute w:firstRowLastColumn { s_ST_OnOff }?,
    attribute w:lastRowFirstColumn { s_ST_OnOff }?,
    attribute w:lastRowLastColumn { s_ST_OnOff }?

Annotations

w_CT_MarkupRange =
    attribute w:id { xsd:integer },
    attribute w:displacedByCustomXml { "next" | "prev" }?
w_CT_BookmarkRange =
    w_CT_MarkupRange,
    attribute w:colFirst { xsd:integer }?,
    attribute w:colLast { xsd:integer }?
w_CT_Bookmark =
    w_CT_BookmarkRange,
    attribute w:name { s_ST_String }
w_CT_MoveBookmark =
    w_CT_Bookmark,
    attribute w:author { s_ST_String },
    attribute w:date { w_ST_DateTime }
w_CT_SmartTagRun =
    attribute w:uri { s_ST_String }?,
    attribute w:element { s_ST_XmlName },
    element smartTagPr { w_CT_SmartTagPr }?,
    w_EG_PContent*
w_CT_SmartTagPr = element attr { w_CT_Attr }*
w_EG_CellMarkupElements =
    element cellIns { w_CT_TrackChange }?
    | element cellDel { w_CT_TrackChange }?
    | element cellMerge { w_CT_CellMergeTrackChange }?
w_EG_RangeMarkupElements =
    element bookmarkStart { w_CT_Bookmark } |
    element bookmarkEnd { w_CT_MarkupRange } |
    element moveFromRangeStart { w_CT_MoveBookmark } |
    element moveFromRangeEnd { w_CT_MarkupRange } |
    element moveToRangeStart { w_CT_MoveBookmark } |
    element moveToRangeEnd { w_CT_MarkupRange } |
    element commentRangeStart { w_CT_MarkupRange } |
    element commentRangeEnd { w_CT_MarkupRange } |
    element customXmlInsRangeStart { w_CT_TrackChange } |
    element customXmlInsRangeEnd { attribute w:id { xsd:integer } } |
    element customXmlDelRangeStart { w_CT_TrackChange } |
    element customXmlDelRangeEnd { attribute w:id { xsd:integer } } |
    element customXmlMoveFromRangeStart { w_CT_TrackChange } |
    element customXmlMoveFromRangeEnd { attribute w:id { xsd:integer } } |
    element customXmlMoveToRangeStart { w_CT_TrackChange } |
    element customXmlMoveToRangeEnd { attribute w:id { xsd:integer } }

Common types

Numeric types

w_CT_OnOff = attribute w:val { s_ST_OnOff }?
w_ST_LongHexNumber = xsd:hexBinary { length = "4" }
w_CT_LongHexNumber = attribute w:val { w_ST_LongHexNumber }
w_ST_ShortHexNumber = xsd:hexBinary { length = "2" }
w_ST_UcharHexNumber = xsd:hexBinary { length = "1" }
w_ST_DecimalNumberOrPercent =
    w_ST_UnqualifiedPercentage | s_ST_Percentage
w_ST_UnqualifiedPercentage = xsd:integer
w_CT_UnsignedDecimalNumber =
    attribute w:val { s_ST_UnsignedDecimalNumber }
w_CT_DecimalNumberOrPrecent =
    attribute w:val { w_ST_DecimalNumberOrPercent }
w_CT_TwipsMeasure = attribute w:val { s_ST_TwipsMeasure }
w_ST_SignedTwipsMeasure = xsd:integer | s_ST_UniversalMeasure
w_CT_SignedTwipsMeasure = attribute w:val { w_ST_SignedTwipsMeasure }
w_ST_PixelsMeasure = s_ST_UnsignedDecimalNumber
w_CT_PixelsMeasure = attribute w:val { w_ST_PixelsMeasure }
w_ST_HpsMeasure =
    s_ST_UnsignedDecimalNumber | s_ST_PositiveUniversalMeasure
w_ST_SignedHpsMeasure = xsd:integer | s_ST_UniversalMeasure
w_CT_SignedHpsMeasure = attribute w:val { w_ST_SignedHpsMeasure }
w_ST_DateTime = xsd:dateTime
w_ST_EighthPointMeasure = s_ST_UnsignedDecimalNumber
w_ST_PointMeasure = s_ST_UnsignedDecimalNumber
w_ST_TextScale = w_ST_TextScalePercent | w_ST_TextScaleDecimal
w_ST_TextScalePercent =
    xsd:string { pattern = "0*(600|([0-5]?[0-9]?[0-9]))%" }
w_ST_TextScaleDecimal =
    xsd:integer { minInclusive = "0" maxInclusive = "600" }
w_CT_TextScale = attribute w:val { w_ST_TextScale }?
w_CT_Base64Binary = attribute w:val { xsd:base64Binary }
w_ST_MeasurementOrPercent =
w_ST_DecimalNumberOrPercent | s_ST_UniversalMeasure

Non-numeric types

w_CT_Empty = empty
w_ST_HexColorAuto = "auto"
w_ST_HexColor = w_ST_HexColorAuto | s_ST_HexColorRGB
w_CT_Color =
    attribute w:val { w_ST_HexColor },
    attribute w:themeColor { w_ST_ThemeColor }?,
    attribute w:themeTint { w_ST_UcharHexNumber }?,
    attribute w:themeShade { w_ST_UcharHexNumber }?
w_ST_ThemeColor =
      "dark1"
    | "light1"
    | "dark2"
    | "light2"
    | "accent1"
    | "accent2"
    | "accent3"
    | "accent4"
    | "accent5"
    | "accent6"
    | "hyperlink"
    | "followedHyperlink"
    | "none"
    | "background1"
    | "text1"
    | "background2"
    | "text2"
w_CT_Guid = attribute w:val { s_ST_Guid }?
w_CT_Language =
    attribute w:val { s_ST_Lang }?,
    attribute w:eastAsia { s_ST_Lang }?,
    attribute w:bidi { s_ST_Lang }?
w_CT_Rel = r_id
w_CT_VerticalJc = attribute w:val { "top" | "center" | "both" | "bottom" }
w_CT_Jc = attribute w:val {
    "start" | "center" | "end" | "both" | "left" | "right"
    "mediumKashida" | "distribute" | "numTab" | "highKashida" |
    "lowKashida" | "thaiDistribute"
}
w_CT_TextDirection = attribute w:val {
    "tb" | "rl" | "lr" | "tbV" | "rlV" | "lrV" |
    "btLr" | "lrTb" | "lrTbV" |"tbLrV" | "tbRl" | "tbRlV"
}
w_CT_NumFmt =
    attribute w:val { w_ST_NumberFormat },
    attribute w:format { s_ST_String }?
w_ST_NumberFormat =
      "decimal"
    | "upperRoman"
    | "lowerRoman"
    | "upperLetter"
    | "lowerLetter"
    | "ordinal"
    | "cardinalText"
    | "ordinalText"
    | "hex"
    | "chicago"
    | "ideographDigital"
    | "japaneseCounting"
    | "aiueo"
    | "iroha"
    | "decimalFullWidth"
    | "decimalHalfWidth"
    | "japaneseLegal"
    | "japaneseDigitalTenThousand"
    | "decimalEnclosedCircle"
    | "decimalFullWidth2"
    | "aiueoFullWidth"
    | "irohaFullWidth"
    | "decimalZero"
    | "bullet"
    | "ganada"
    | "chosung"
    | "decimalEnclosedFullstop"
    | "decimalEnclosedParen"
    | "decimalEnclosedCircleChinese"
    | "ideographEnclosedCircle"
    | "ideographTraditional"
    | "ideographZodiac"
    | "ideographZodiacTraditional"
    | "taiwaneseCounting"
    | "ideographLegalTraditional"
    | "taiwaneseCountingThousand"
    | "taiwaneseDigital"
    | "chineseCounting"
    | "chineseLegalSimplified"
    | "chineseCountingThousand"
    | "koreanDigital"
    | "koreanCounting"
    | "koreanLegal"
    | "koreanDigital2"
    | "vietnameseCounting"
    | "russianLower"
    | "russianUpper"
    | "none"
    | "numberInDash"
    | "hebrew1"
    | "hebrew2"
    | "arabicAlpha"
    | "arabicAbjad"
    | "hindiVowels"
    | "hindiConsonants"
    | "hindiNumbers"
    | "hindiCounting"
    | "thaiLetters"
    | "thaiNumbers"
    | "thaiCounting"
    | "bahtText"
    | "dollarText"
    | "custom"

Uncategorised

w_txbxContent =
    element txbxContent {
        w_EG_BlockLevelElts+
    }
w_any_vml_office =
    o_shapedefaults
    | o_shapelayout
    | o_signatureline
    | o_ink
    | o_diagram
    | o_skew
    | o_extrusion
    | o_callout
    | o_lock
    | o_OLEObject
    | o_complex
    | o_left
    | o_top
    | o_right
    | o_bottom
    | o_column
    | o_clippath
    | o_fill
w_any_vml_vml =
    v_shape
    | v_shapetype
    | v_group
    | v_background
    | v_fill
    | v_formulas
    | v_handles
    | v_imagedata
    | v_path
    | v_textbox
    | v_shadow
    | v_stroke
    | v_textpath
    | v_arc
    | v_curve
    | v_image
    | v_line
    | v_oval
    | v_polyline
    | v_rect
    | v_roundrect