1*e5dd7070Spatrick<?xml version="1.0" encoding="UTF-8"?> 2*e5dd7070Spatrick 3*e5dd7070Spatrick<grammar xmlns="http://relaxng.org/ns/structure/1.0" 4*e5dd7070Spatrick datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> 5*e5dd7070Spatrick 6*e5dd7070Spatrick <start> 7*e5dd7070Spatrick <choice> 8*e5dd7070Spatrick <!-- Everything else not explicitly mentioned below. --> 9*e5dd7070Spatrick <ref name="Other" /> 10*e5dd7070Spatrick 11*e5dd7070Spatrick <ref name="Function" /> 12*e5dd7070Spatrick <ref name="Class" /> 13*e5dd7070Spatrick <ref name="Variable" /> 14*e5dd7070Spatrick <ref name="Namespace" /> 15*e5dd7070Spatrick <ref name="Typedef" /> 16*e5dd7070Spatrick <ref name="Enum" /> 17*e5dd7070Spatrick </choice> 18*e5dd7070Spatrick </start> 19*e5dd7070Spatrick 20*e5dd7070Spatrick <define name="Other"> 21*e5dd7070Spatrick <element name="Other"> 22*e5dd7070Spatrick <ref name="attrSourceLocation" /> 23*e5dd7070Spatrick <ref name="Name" /> 24*e5dd7070Spatrick <optional> 25*e5dd7070Spatrick <ref name="USR" /> 26*e5dd7070Spatrick </optional> 27*e5dd7070Spatrick <optional> 28*e5dd7070Spatrick <ref name="Headerfile" /> 29*e5dd7070Spatrick </optional> 30*e5dd7070Spatrick <optional> 31*e5dd7070Spatrick <ref name="Declaration" /> 32*e5dd7070Spatrick </optional> 33*e5dd7070Spatrick <optional> 34*e5dd7070Spatrick <ref name="Abstract" /> 35*e5dd7070Spatrick </optional> 36*e5dd7070Spatrick <optional> 37*e5dd7070Spatrick <ref name="TemplateParameters" /> 38*e5dd7070Spatrick </optional> 39*e5dd7070Spatrick <optional> 40*e5dd7070Spatrick <ref name="Parameters" /> 41*e5dd7070Spatrick </optional> 42*e5dd7070Spatrick <optional> 43*e5dd7070Spatrick <ref name="ResultDiscussion" /> 44*e5dd7070Spatrick </optional> 45*e5dd7070Spatrick <optional> 46*e5dd7070Spatrick <ref name="Discussion" /> 47*e5dd7070Spatrick </optional> 48*e5dd7070Spatrick </element> 49*e5dd7070Spatrick </define> 50*e5dd7070Spatrick 51*e5dd7070Spatrick <define name="Function"> 52*e5dd7070Spatrick <element name="Function"> 53*e5dd7070Spatrick <optional> 54*e5dd7070Spatrick <attribute name="templateKind"> 55*e5dd7070Spatrick <choice> 56*e5dd7070Spatrick <value>template</value> 57*e5dd7070Spatrick <value>specialization</value> 58*e5dd7070Spatrick </choice> 59*e5dd7070Spatrick </attribute> 60*e5dd7070Spatrick </optional> 61*e5dd7070Spatrick <ref name="attrSourceLocation" /> 62*e5dd7070Spatrick 63*e5dd7070Spatrick <optional> 64*e5dd7070Spatrick <attribute name="isInstanceMethod"> 65*e5dd7070Spatrick <data type="boolean" /> 66*e5dd7070Spatrick </attribute> 67*e5dd7070Spatrick </optional> 68*e5dd7070Spatrick <optional> 69*e5dd7070Spatrick <attribute name="isClassMethod"> 70*e5dd7070Spatrick <data type="boolean" /> 71*e5dd7070Spatrick </attribute> 72*e5dd7070Spatrick </optional> 73*e5dd7070Spatrick 74*e5dd7070Spatrick <ref name="Name" /> 75*e5dd7070Spatrick <optional> 76*e5dd7070Spatrick <ref name="USR" /> 77*e5dd7070Spatrick </optional> 78*e5dd7070Spatrick <optional> 79*e5dd7070Spatrick <ref name="Headerfile" /> 80*e5dd7070Spatrick </optional> 81*e5dd7070Spatrick <optional> 82*e5dd7070Spatrick <ref name="Declaration" /> 83*e5dd7070Spatrick </optional> 84*e5dd7070Spatrick <optional> 85*e5dd7070Spatrick <ref name="Abstract" /> 86*e5dd7070Spatrick </optional> 87*e5dd7070Spatrick <optional> 88*e5dd7070Spatrick <ref name="TemplateParameters" /> 89*e5dd7070Spatrick </optional> 90*e5dd7070Spatrick <optional> 91*e5dd7070Spatrick <ref name="Parameters" /> 92*e5dd7070Spatrick </optional> 93*e5dd7070Spatrick <optional> 94*e5dd7070Spatrick <ref name="Exceptions" /> 95*e5dd7070Spatrick </optional> 96*e5dd7070Spatrick <zeroOrMore> 97*e5dd7070Spatrick <ref name="Availability" /> 98*e5dd7070Spatrick </zeroOrMore> 99*e5dd7070Spatrick <zeroOrMore> 100*e5dd7070Spatrick <ref name="Deprecated" /> 101*e5dd7070Spatrick </zeroOrMore> 102*e5dd7070Spatrick <zeroOrMore> 103*e5dd7070Spatrick <ref name="Unavailable" /> 104*e5dd7070Spatrick </zeroOrMore> 105*e5dd7070Spatrick <optional> 106*e5dd7070Spatrick <ref name="ResultDiscussion" /> 107*e5dd7070Spatrick </optional> 108*e5dd7070Spatrick <optional> 109*e5dd7070Spatrick <ref name="Discussion" /> 110*e5dd7070Spatrick </optional> 111*e5dd7070Spatrick </element> 112*e5dd7070Spatrick </define> 113*e5dd7070Spatrick 114*e5dd7070Spatrick <define name="Class"> 115*e5dd7070Spatrick <element name="Class"> 116*e5dd7070Spatrick <optional> 117*e5dd7070Spatrick <attribute name="templateKind"> 118*e5dd7070Spatrick <choice> 119*e5dd7070Spatrick <value>template</value> 120*e5dd7070Spatrick <value>specialization</value> 121*e5dd7070Spatrick <value>partialSpecialization</value> 122*e5dd7070Spatrick </choice> 123*e5dd7070Spatrick </attribute> 124*e5dd7070Spatrick </optional> 125*e5dd7070Spatrick <ref name="attrSourceLocation" /> 126*e5dd7070Spatrick 127*e5dd7070Spatrick <ref name="Name" /> 128*e5dd7070Spatrick <optional> 129*e5dd7070Spatrick <ref name="USR" /> 130*e5dd7070Spatrick </optional> 131*e5dd7070Spatrick <optional> 132*e5dd7070Spatrick <ref name="Headerfile" /> 133*e5dd7070Spatrick </optional> 134*e5dd7070Spatrick <optional> 135*e5dd7070Spatrick <ref name="Declaration" /> 136*e5dd7070Spatrick </optional> 137*e5dd7070Spatrick <optional> 138*e5dd7070Spatrick <ref name="Abstract" /> 139*e5dd7070Spatrick </optional> 140*e5dd7070Spatrick <optional> 141*e5dd7070Spatrick <ref name="TemplateParameters" /> 142*e5dd7070Spatrick </optional> 143*e5dd7070Spatrick 144*e5dd7070Spatrick <!-- Parameters and results don't make sense for classes, but the user 145*e5dd7070Spatrick can specify \param or \returns in a comment anyway. --> 146*e5dd7070Spatrick <optional> 147*e5dd7070Spatrick <ref name="Parameters" /> 148*e5dd7070Spatrick </optional> 149*e5dd7070Spatrick <optional> 150*e5dd7070Spatrick <ref name="ResultDiscussion" /> 151*e5dd7070Spatrick </optional> 152*e5dd7070Spatrick 153*e5dd7070Spatrick <optional> 154*e5dd7070Spatrick <ref name="Discussion" /> 155*e5dd7070Spatrick </optional> 156*e5dd7070Spatrick </element> 157*e5dd7070Spatrick </define> 158*e5dd7070Spatrick 159*e5dd7070Spatrick <define name="Variable"> 160*e5dd7070Spatrick <element name="Variable"> 161*e5dd7070Spatrick <ref name="attrSourceLocation" /> 162*e5dd7070Spatrick <ref name="Name" /> 163*e5dd7070Spatrick <optional> 164*e5dd7070Spatrick <ref name="USR" /> 165*e5dd7070Spatrick </optional> 166*e5dd7070Spatrick <optional> 167*e5dd7070Spatrick <ref name="Headerfile" /> 168*e5dd7070Spatrick </optional> 169*e5dd7070Spatrick <optional> 170*e5dd7070Spatrick <ref name="Declaration" /> 171*e5dd7070Spatrick </optional> 172*e5dd7070Spatrick <optional> 173*e5dd7070Spatrick <ref name="Abstract" /> 174*e5dd7070Spatrick </optional> 175*e5dd7070Spatrick 176*e5dd7070Spatrick <!-- Template parameters, parameters and results don't make sense for 177*e5dd7070Spatrick variables, but the user can specify \tparam \param or \returns 178*e5dd7070Spatrick in a comment anyway. --> 179*e5dd7070Spatrick <optional> 180*e5dd7070Spatrick <ref name="TemplateParameters" /> 181*e5dd7070Spatrick </optional> 182*e5dd7070Spatrick <optional> 183*e5dd7070Spatrick <ref name="Parameters" /> 184*e5dd7070Spatrick </optional> 185*e5dd7070Spatrick <optional> 186*e5dd7070Spatrick <ref name="ResultDiscussion" /> 187*e5dd7070Spatrick </optional> 188*e5dd7070Spatrick 189*e5dd7070Spatrick <optional> 190*e5dd7070Spatrick <ref name="Discussion" /> 191*e5dd7070Spatrick </optional> 192*e5dd7070Spatrick </element> 193*e5dd7070Spatrick </define> 194*e5dd7070Spatrick 195*e5dd7070Spatrick <define name="Namespace"> 196*e5dd7070Spatrick <element name="Namespace"> 197*e5dd7070Spatrick <ref name="attrSourceLocation" /> 198*e5dd7070Spatrick <ref name="Name" /> 199*e5dd7070Spatrick <optional> 200*e5dd7070Spatrick <ref name="USR" /> 201*e5dd7070Spatrick </optional> 202*e5dd7070Spatrick <optional> 203*e5dd7070Spatrick <ref name="Headerfile" /> 204*e5dd7070Spatrick </optional> 205*e5dd7070Spatrick <optional> 206*e5dd7070Spatrick <ref name="Declaration" /> 207*e5dd7070Spatrick </optional> 208*e5dd7070Spatrick <optional> 209*e5dd7070Spatrick <ref name="Abstract" /> 210*e5dd7070Spatrick </optional> 211*e5dd7070Spatrick 212*e5dd7070Spatrick <!-- Template parameters, parameters and results don't make sense for 213*e5dd7070Spatrick namespaces, but the user can specify \tparam, \param or \returns 214*e5dd7070Spatrick in a comment anyway. --> 215*e5dd7070Spatrick <optional> 216*e5dd7070Spatrick <ref name="TemplateParameters" /> 217*e5dd7070Spatrick </optional> 218*e5dd7070Spatrick <optional> 219*e5dd7070Spatrick <ref name="Parameters" /> 220*e5dd7070Spatrick </optional> 221*e5dd7070Spatrick <optional> 222*e5dd7070Spatrick <ref name="ResultDiscussion" /> 223*e5dd7070Spatrick </optional> 224*e5dd7070Spatrick 225*e5dd7070Spatrick <optional> 226*e5dd7070Spatrick <ref name="Discussion" /> 227*e5dd7070Spatrick </optional> 228*e5dd7070Spatrick </element> 229*e5dd7070Spatrick </define> 230*e5dd7070Spatrick 231*e5dd7070Spatrick <define name="Typedef"> 232*e5dd7070Spatrick <element name="Typedef"> 233*e5dd7070Spatrick <ref name="attrSourceLocation" /> 234*e5dd7070Spatrick <ref name="Name" /> 235*e5dd7070Spatrick <optional> 236*e5dd7070Spatrick <ref name="USR" /> 237*e5dd7070Spatrick </optional> 238*e5dd7070Spatrick <optional> 239*e5dd7070Spatrick <ref name="Headerfile" /> 240*e5dd7070Spatrick </optional> 241*e5dd7070Spatrick <optional> 242*e5dd7070Spatrick <ref name="Declaration" /> 243*e5dd7070Spatrick </optional> 244*e5dd7070Spatrick <optional> 245*e5dd7070Spatrick <ref name="Abstract" /> 246*e5dd7070Spatrick </optional> 247*e5dd7070Spatrick 248*e5dd7070Spatrick <optional> 249*e5dd7070Spatrick <ref name="TemplateParameters" /> 250*e5dd7070Spatrick </optional> 251*e5dd7070Spatrick 252*e5dd7070Spatrick <!-- Parameters and results might make sense for typedefs if the type is 253*e5dd7070Spatrick a function pointer type. --> 254*e5dd7070Spatrick <optional> 255*e5dd7070Spatrick <ref name="Parameters" /> 256*e5dd7070Spatrick </optional> 257*e5dd7070Spatrick <optional> 258*e5dd7070Spatrick <ref name="ResultDiscussion" /> 259*e5dd7070Spatrick </optional> 260*e5dd7070Spatrick 261*e5dd7070Spatrick <optional> 262*e5dd7070Spatrick <ref name="Discussion" /> 263*e5dd7070Spatrick </optional> 264*e5dd7070Spatrick </element> 265*e5dd7070Spatrick </define> 266*e5dd7070Spatrick 267*e5dd7070Spatrick <define name="Enum"> 268*e5dd7070Spatrick <element name="Enum"> 269*e5dd7070Spatrick <ref name="attrSourceLocation" /> 270*e5dd7070Spatrick <ref name="Name" /> 271*e5dd7070Spatrick <optional> 272*e5dd7070Spatrick <ref name="USR" /> 273*e5dd7070Spatrick </optional> 274*e5dd7070Spatrick <optional> 275*e5dd7070Spatrick <ref name="Headerfile" /> 276*e5dd7070Spatrick </optional> 277*e5dd7070Spatrick <optional> 278*e5dd7070Spatrick <ref name="Declaration" /> 279*e5dd7070Spatrick </optional> 280*e5dd7070Spatrick <optional> 281*e5dd7070Spatrick <ref name="Abstract" /> 282*e5dd7070Spatrick </optional> 283*e5dd7070Spatrick 284*e5dd7070Spatrick <!-- Template parameters, parameters and results don't make sense for 285*e5dd7070Spatrick enums, but the user can specify \tparam \param or \returns in a 286*e5dd7070Spatrick comment anyway. --> 287*e5dd7070Spatrick <optional> 288*e5dd7070Spatrick <ref name="TemplateParameters" /> 289*e5dd7070Spatrick </optional> 290*e5dd7070Spatrick <optional> 291*e5dd7070Spatrick <ref name="Parameters" /> 292*e5dd7070Spatrick </optional> 293*e5dd7070Spatrick <optional> 294*e5dd7070Spatrick <ref name="ResultDiscussion" /> 295*e5dd7070Spatrick </optional> 296*e5dd7070Spatrick 297*e5dd7070Spatrick <optional> 298*e5dd7070Spatrick <ref name="Discussion" /> 299*e5dd7070Spatrick </optional> 300*e5dd7070Spatrick </element> 301*e5dd7070Spatrick </define> 302*e5dd7070Spatrick 303*e5dd7070Spatrick <define name="attrSourceLocation"> 304*e5dd7070Spatrick <optional> 305*e5dd7070Spatrick <attribute name="file"> 306*e5dd7070Spatrick <!-- Non-empty text content. --> 307*e5dd7070Spatrick <data type="string"> 308*e5dd7070Spatrick <param name="pattern">.*\S.*</param> 309*e5dd7070Spatrick </data> 310*e5dd7070Spatrick </attribute> 311*e5dd7070Spatrick </optional> 312*e5dd7070Spatrick <optional> 313*e5dd7070Spatrick <attribute name="line"> 314*e5dd7070Spatrick <data type="positiveInteger" /> 315*e5dd7070Spatrick </attribute> 316*e5dd7070Spatrick <attribute name="column"> 317*e5dd7070Spatrick <data type="positiveInteger" /> 318*e5dd7070Spatrick </attribute> 319*e5dd7070Spatrick </optional> 320*e5dd7070Spatrick </define> 321*e5dd7070Spatrick 322*e5dd7070Spatrick <define name="Name"> 323*e5dd7070Spatrick <element name="Name"> 324*e5dd7070Spatrick <!-- Non-empty text content. --> 325*e5dd7070Spatrick <data type="string"> 326*e5dd7070Spatrick <param name="pattern">.*\S.*</param> 327*e5dd7070Spatrick </data> 328*e5dd7070Spatrick </element> 329*e5dd7070Spatrick </define> 330*e5dd7070Spatrick 331*e5dd7070Spatrick <define name="USR"> 332*e5dd7070Spatrick <element name="USR"> 333*e5dd7070Spatrick <!-- Non-empty text content. --> 334*e5dd7070Spatrick <data type="string"> 335*e5dd7070Spatrick <param name="pattern">.*\S.*</param> 336*e5dd7070Spatrick </data> 337*e5dd7070Spatrick </element> 338*e5dd7070Spatrick </define> 339*e5dd7070Spatrick 340*e5dd7070Spatrick <define name="Abstract"> 341*e5dd7070Spatrick <element name="Abstract"> 342*e5dd7070Spatrick <zeroOrMore> 343*e5dd7070Spatrick <ref name="TextBlockContent" /> 344*e5dd7070Spatrick </zeroOrMore> 345*e5dd7070Spatrick </element> 346*e5dd7070Spatrick </define> 347*e5dd7070Spatrick 348*e5dd7070Spatrick <define name="Declaration"> 349*e5dd7070Spatrick <element name="Declaration"> 350*e5dd7070Spatrick <!-- Non-empty text content. --> 351*e5dd7070Spatrick <data type="string"/> 352*e5dd7070Spatrick </element> 353*e5dd7070Spatrick </define> 354*e5dd7070Spatrick 355*e5dd7070Spatrick <define name="Headerfile"> 356*e5dd7070Spatrick <element name="Headerfile"> 357*e5dd7070Spatrick <oneOrMore> 358*e5dd7070Spatrick <ref name="TextBlockContent" /> 359*e5dd7070Spatrick </oneOrMore> 360*e5dd7070Spatrick </element> 361*e5dd7070Spatrick </define> 362*e5dd7070Spatrick 363*e5dd7070Spatrick <define name="Discussion"> 364*e5dd7070Spatrick <element name="Discussion"> 365*e5dd7070Spatrick <zeroOrMore> 366*e5dd7070Spatrick <ref name="TextBlockContent" /> 367*e5dd7070Spatrick </zeroOrMore> 368*e5dd7070Spatrick </element> 369*e5dd7070Spatrick </define> 370*e5dd7070Spatrick 371*e5dd7070Spatrick <define name="TemplateParameters"> 372*e5dd7070Spatrick <element name="TemplateParameters"> 373*e5dd7070Spatrick <!-- Parameter elements should be sorted according to position. --> 374*e5dd7070Spatrick <oneOrMore> 375*e5dd7070Spatrick <element name="Parameter"> 376*e5dd7070Spatrick <element name="Name"> 377*e5dd7070Spatrick <!-- Non-empty text content. --> 378*e5dd7070Spatrick <data type="string"> 379*e5dd7070Spatrick <param name="pattern">.*\S.*</param> 380*e5dd7070Spatrick </data> 381*e5dd7070Spatrick </element> 382*e5dd7070Spatrick <optional> 383*e5dd7070Spatrick <!-- This is index at depth 0. libclang API can return more 384*e5dd7070Spatrick information about position, but we expose only essential 385*e5dd7070Spatrick information here, since "Parameter" elements are already 386*e5dd7070Spatrick sorted. 387*e5dd7070Spatrick 388*e5dd7070Spatrick "Position" element could be added in future if needed. --> 389*e5dd7070Spatrick <element name="Index"> 390*e5dd7070Spatrick <data type="nonNegativeInteger" /> 391*e5dd7070Spatrick </element> 392*e5dd7070Spatrick </optional> 393*e5dd7070Spatrick <!-- In general, template parameters with whitespace discussion 394*e5dd7070Spatrick should not be emitted. Schema might be more strict here. --> 395*e5dd7070Spatrick <element name="Discussion"> 396*e5dd7070Spatrick <ref name="TextBlockContent" /> 397*e5dd7070Spatrick </element> 398*e5dd7070Spatrick </element> 399*e5dd7070Spatrick </oneOrMore> 400*e5dd7070Spatrick </element> 401*e5dd7070Spatrick </define> 402*e5dd7070Spatrick 403*e5dd7070Spatrick <define name="Parameters"> 404*e5dd7070Spatrick <element name="Parameters"> 405*e5dd7070Spatrick <!-- Parameter elements should be sorted according to index. --> 406*e5dd7070Spatrick <oneOrMore> 407*e5dd7070Spatrick <element name="Parameter"> 408*e5dd7070Spatrick <element name="Name"> 409*e5dd7070Spatrick <!-- Non-empty text content. --> 410*e5dd7070Spatrick <data type="string"> 411*e5dd7070Spatrick <param name="pattern">.*\S.*</param> 412*e5dd7070Spatrick </data> 413*e5dd7070Spatrick </element> 414*e5dd7070Spatrick <optional> 415*e5dd7070Spatrick <choice> 416*e5dd7070Spatrick <element name="Index"> 417*e5dd7070Spatrick <data type="nonNegativeInteger" /> 418*e5dd7070Spatrick </element> 419*e5dd7070Spatrick <element name="IsVarArg"> 420*e5dd7070Spatrick <empty /> 421*e5dd7070Spatrick </element> 422*e5dd7070Spatrick </choice> 423*e5dd7070Spatrick </optional> 424*e5dd7070Spatrick <element name="Direction"> 425*e5dd7070Spatrick <attribute name="isExplicit"> 426*e5dd7070Spatrick <data type="boolean" /> 427*e5dd7070Spatrick </attribute> 428*e5dd7070Spatrick <choice> 429*e5dd7070Spatrick <value>in</value> 430*e5dd7070Spatrick <value>out</value> 431*e5dd7070Spatrick <value>in,out</value> 432*e5dd7070Spatrick </choice> 433*e5dd7070Spatrick </element> 434*e5dd7070Spatrick <!-- In general, template parameters with whitespace discussion 435*e5dd7070Spatrick should not be emitted, unless direction is explicitly specified. 436*e5dd7070Spatrick Schema might be more strict here. --> 437*e5dd7070Spatrick <element name="Discussion"> 438*e5dd7070Spatrick <ref name="TextBlockContent" /> 439*e5dd7070Spatrick </element> 440*e5dd7070Spatrick </element> 441*e5dd7070Spatrick </oneOrMore> 442*e5dd7070Spatrick </element> 443*e5dd7070Spatrick </define> 444*e5dd7070Spatrick 445*e5dd7070Spatrick <define name="Exceptions"> 446*e5dd7070Spatrick <element name="Exceptions"> 447*e5dd7070Spatrick <oneOrMore> 448*e5dd7070Spatrick <ref name="TextBlockContent" /> 449*e5dd7070Spatrick </oneOrMore> 450*e5dd7070Spatrick </element> 451*e5dd7070Spatrick </define> 452*e5dd7070Spatrick 453*e5dd7070Spatrick <define name="Availability"> 454*e5dd7070Spatrick <element name="Availability"> 455*e5dd7070Spatrick <attribute name="distribution"> 456*e5dd7070Spatrick <data type="string" /> 457*e5dd7070Spatrick </attribute> 458*e5dd7070Spatrick <optional> 459*e5dd7070Spatrick <element name="IntroducedInVersion"> 460*e5dd7070Spatrick <data type="string"> 461*e5dd7070Spatrick <param name="pattern">\d+|\d+\.\d+|\d+\.\d+.\d+</param> 462*e5dd7070Spatrick </data> 463*e5dd7070Spatrick </element> 464*e5dd7070Spatrick </optional> 465*e5dd7070Spatrick <optional> 466*e5dd7070Spatrick <element name="DeprecatedInVersion"> 467*e5dd7070Spatrick <data type="string"> 468*e5dd7070Spatrick <param name="pattern">\d+|\d+\.\d+|\d+\.\d+.\d+</param> 469*e5dd7070Spatrick </data> 470*e5dd7070Spatrick </element> 471*e5dd7070Spatrick </optional> 472*e5dd7070Spatrick <optional> 473*e5dd7070Spatrick <element name="RemovedAfterVersion"> 474*e5dd7070Spatrick <data type="string"> 475*e5dd7070Spatrick <param name="pattern">\d+|\d+\.\d+|\d+\.\d+.\d+</param> 476*e5dd7070Spatrick </data> 477*e5dd7070Spatrick </element> 478*e5dd7070Spatrick </optional> 479*e5dd7070Spatrick <optional> 480*e5dd7070Spatrick <element name="DeprecationSummary"> 481*e5dd7070Spatrick <data type="string" /> 482*e5dd7070Spatrick </element> 483*e5dd7070Spatrick </optional> 484*e5dd7070Spatrick <optional> 485*e5dd7070Spatrick <ref name="Unavailable" /> 486*e5dd7070Spatrick </optional> 487*e5dd7070Spatrick </element> 488*e5dd7070Spatrick </define> 489*e5dd7070Spatrick 490*e5dd7070Spatrick <define name="Deprecated"> 491*e5dd7070Spatrick <element name="Deprecated"> 492*e5dd7070Spatrick <optional> 493*e5dd7070Spatrick <data type="string" /> 494*e5dd7070Spatrick </optional> 495*e5dd7070Spatrick </element> 496*e5dd7070Spatrick </define> 497*e5dd7070Spatrick 498*e5dd7070Spatrick <define name="Unavailable"> 499*e5dd7070Spatrick <element name="Unavailable"> 500*e5dd7070Spatrick <optional> 501*e5dd7070Spatrick <data type="string" /> 502*e5dd7070Spatrick </optional> 503*e5dd7070Spatrick </element> 504*e5dd7070Spatrick </define> 505*e5dd7070Spatrick 506*e5dd7070Spatrick <define name="ResultDiscussion"> 507*e5dd7070Spatrick <element name="ResultDiscussion"> 508*e5dd7070Spatrick <zeroOrMore> 509*e5dd7070Spatrick <ref name="TextBlockContent" /> 510*e5dd7070Spatrick </zeroOrMore> 511*e5dd7070Spatrick </element> 512*e5dd7070Spatrick </define> 513*e5dd7070Spatrick 514*e5dd7070Spatrick <define name="TextBlockContent"> 515*e5dd7070Spatrick <choice> 516*e5dd7070Spatrick <element name="Para"> 517*e5dd7070Spatrick <optional> 518*e5dd7070Spatrick <attribute name="kind"> 519*e5dd7070Spatrick <choice> 520*e5dd7070Spatrick <value>attention</value> 521*e5dd7070Spatrick <value>author</value> 522*e5dd7070Spatrick <value>authors</value> 523*e5dd7070Spatrick <value>bug</value> 524*e5dd7070Spatrick <value>copyright</value> 525*e5dd7070Spatrick <value>date</value> 526*e5dd7070Spatrick <value>invariant</value> 527*e5dd7070Spatrick <value>note</value> 528*e5dd7070Spatrick <value>post</value> 529*e5dd7070Spatrick <value>pre</value> 530*e5dd7070Spatrick <value>remark</value> 531*e5dd7070Spatrick <value>remarks</value> 532*e5dd7070Spatrick <value>sa</value> 533*e5dd7070Spatrick <value>see</value> 534*e5dd7070Spatrick <value>since</value> 535*e5dd7070Spatrick <value>todo</value> 536*e5dd7070Spatrick <value>version</value> 537*e5dd7070Spatrick <value>warning</value> 538*e5dd7070Spatrick </choice> 539*e5dd7070Spatrick </attribute> 540*e5dd7070Spatrick </optional> 541*e5dd7070Spatrick <zeroOrMore> 542*e5dd7070Spatrick <ref name="TextInlineContent" /> 543*e5dd7070Spatrick </zeroOrMore> 544*e5dd7070Spatrick </element> 545*e5dd7070Spatrick <element name="Verbatim"> 546*e5dd7070Spatrick <attribute name="xml:space"> 547*e5dd7070Spatrick <value>preserve</value> 548*e5dd7070Spatrick </attribute> 549*e5dd7070Spatrick <attribute name="kind"> 550*e5dd7070Spatrick <!-- TODO: add all Doxygen verbatim kinds --> 551*e5dd7070Spatrick <choice> 552*e5dd7070Spatrick <value>code</value> 553*e5dd7070Spatrick <value>verbatim</value> 554*e5dd7070Spatrick </choice> 555*e5dd7070Spatrick </attribute> 556*e5dd7070Spatrick <text /> 557*e5dd7070Spatrick </element> 558*e5dd7070Spatrick </choice> 559*e5dd7070Spatrick </define> 560*e5dd7070Spatrick 561*e5dd7070Spatrick <define name="TextInlineContent"> 562*e5dd7070Spatrick <choice> 563*e5dd7070Spatrick <text /> 564*e5dd7070Spatrick <element name="bold"> 565*e5dd7070Spatrick <!-- Non-empty text content. --> 566*e5dd7070Spatrick <data type="string"> 567*e5dd7070Spatrick <param name="pattern">.*\S.*</param> 568*e5dd7070Spatrick </data> 569*e5dd7070Spatrick </element> 570*e5dd7070Spatrick <element name="monospaced"> 571*e5dd7070Spatrick <!-- Non-empty text content. --> 572*e5dd7070Spatrick <data type="string"> 573*e5dd7070Spatrick <param name="pattern">.*\S.*</param> 574*e5dd7070Spatrick </data> 575*e5dd7070Spatrick </element> 576*e5dd7070Spatrick <element name="emphasized"> 577*e5dd7070Spatrick <!-- Non-empty text content. --> 578*e5dd7070Spatrick <data type="string"> 579*e5dd7070Spatrick <param name="pattern">.*\S.*</param> 580*e5dd7070Spatrick </data> 581*e5dd7070Spatrick </element> 582*e5dd7070Spatrick <element name="anchor"> 583*e5dd7070Spatrick <attribute name="id"> 584*e5dd7070Spatrick <data type="string"> 585*e5dd7070Spatrick <!-- Non-empty text content without whitespace. --> 586*e5dd7070Spatrick <param name="pattern">\S+</param> 587*e5dd7070Spatrick </data> 588*e5dd7070Spatrick </attribute> 589*e5dd7070Spatrick </element> 590*e5dd7070Spatrick <element name="rawHTML"> 591*e5dd7070Spatrick <optional> 592*e5dd7070Spatrick <!-- If not specified, the default value is 'false'. --> 593*e5dd7070Spatrick <!-- The value 'false' or absence of the attribute does not imply 594*e5dd7070Spatrick that the HTML is actually well-formed. --> 595*e5dd7070Spatrick <attribute name="isMalformed"> 596*e5dd7070Spatrick <data type="boolean" /> 597*e5dd7070Spatrick </attribute> 598*e5dd7070Spatrick </optional> 599*e5dd7070Spatrick <!-- Non-empty text content. --> 600*e5dd7070Spatrick <data type="string"> 601*e5dd7070Spatrick <param name="pattern">.*\S.*</param> 602*e5dd7070Spatrick </data> 603*e5dd7070Spatrick </element> 604*e5dd7070Spatrick </choice> 605*e5dd7070Spatrick </define> 606*e5dd7070Spatrick 607*e5dd7070Spatrick</grammar> 608*e5dd7070Spatrick 609