type Ftr = class(OpenXmlElement) public function Create();overload; function Create(_node: XmlNode);overload; function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Ftr);override; public // attributes property property XmlnsM read ReadXmlAttrXmlnsM write WriteXmlAttrXmlnsM; property XmlnsMc read ReadXmlAttrXmlnsMc write WriteXmlAttrXmlnsMc; property XmlnsMo read ReadXmlAttrXmlnsMo write WriteXmlAttrXmlnsMo; property XmlnsR read ReadXmlAttrXmlnsR write WriteXmlAttrXmlnsR; property XmlnsV read ReadXmlAttrXmlnsV write WriteXmlAttrXmlnsV; property XmlnsW14 read ReadXmlAttrXmlnsW14 write WriteXmlAttrXmlnsW14; property XmlnsW read ReadXmlAttrXmlnsW write WriteXmlAttrXmlnsW; property XmlnsWne read ReadXmlAttrXmlnsWne write WriteXmlAttrXmlnsWne; property XmlnsWp14 read ReadXmlAttrXmlnsWp14 write WriteXmlAttrXmlnsWp14; property XmlnsWp read ReadXmlAttrXmlnsWp write WriteXmlAttrXmlnsWp; property XmlnsWpc read ReadXmlAttrXmlnsWpc write WriteXmlAttrXmlnsWpc; property XmlnsWpg read ReadXmlAttrXmlnsWpg write WriteXmlAttrXmlnsWpg; property XmlnsWpi read ReadXmlAttrXmlnsWpi write WriteXmlAttrXmlnsWpi; property XmlnsWps read ReadXmlAttrXmlnsWps write WriteXmlAttrXmlnsWps; property McIgnorable read ReadXmlAttrMcIgnorable write WriteXmlAttrMcIgnorable; function ReadXmlAttrXmlnsM(); function WriteXmlAttrXmlnsM(_value); function ReadXmlAttrXmlnsMc(); function WriteXmlAttrXmlnsMc(_value); function ReadXmlAttrXmlnsMo(); function WriteXmlAttrXmlnsMo(_value); function ReadXmlAttrXmlnsR(); function WriteXmlAttrXmlnsR(_value); function ReadXmlAttrXmlnsV(); function WriteXmlAttrXmlnsV(_value); function ReadXmlAttrXmlnsW14(); function WriteXmlAttrXmlnsW14(_value); function ReadXmlAttrXmlnsW(); function WriteXmlAttrXmlnsW(_value); function ReadXmlAttrXmlnsWne(); function WriteXmlAttrXmlnsWne(_value); function ReadXmlAttrXmlnsWp14(); function WriteXmlAttrXmlnsWp14(_value); function ReadXmlAttrXmlnsWp(); function WriteXmlAttrXmlnsWp(_value); function ReadXmlAttrXmlnsWpc(); function WriteXmlAttrXmlnsWpc(_value); function ReadXmlAttrXmlnsWpg(); function WriteXmlAttrXmlnsWpg(_value); function ReadXmlAttrXmlnsWpi(); function WriteXmlAttrXmlnsWpi(_value); function ReadXmlAttrXmlnsWps(); function WriteXmlAttrXmlnsWps(_value); function ReadXmlAttrMcIgnorable(); function WriteXmlAttrMcIgnorable(_value); // multi property property Ps read ReadPs; function ReadPs(_index); function AddP(): P; function AppendP(): P; public // Attributes XmlAttrXmlnsM: OpenXmlAttribute; XmlAttrXmlnsMc: OpenXmlAttribute; XmlAttrXmlnsMo: OpenXmlAttribute; XmlAttrXmlnsR: OpenXmlAttribute; XmlAttrXmlnsV: OpenXmlAttribute; XmlAttrXmlnsW14: OpenXmlAttribute; XmlAttrXmlnsW: OpenXmlAttribute; XmlAttrXmlnsWne: OpenXmlAttribute; XmlAttrXmlnsWp14: OpenXmlAttribute; XmlAttrXmlnsWp: OpenXmlAttribute; XmlAttrXmlnsWpc: OpenXmlAttribute; XmlAttrXmlnsWpg: OpenXmlAttribute; XmlAttrXmlnsWpi: OpenXmlAttribute; XmlAttrXmlnsWps: OpenXmlAttribute; XmlAttrMcIgnorable: OpenXmlAttribute; // Children end; function Ftr.Create();overload; begin {self.}Create(nil, "w", "ftr"); end; function Ftr.Create(_node: XmlNode);overload; begin class(OpenXmlElement).Create(_node: XmlNode); end; function Ftr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); class(OpenXmlElement).Create(_parent, _prefix, _local_name); end; function Ftr.Init();override; begin pre := {self.}Prefix ? {self.}Prefix + ":" : ""; attributes_ := array(); attributes_pf_ := array( "xmlns:m": makeweakref(thisFunction(WriteXmlAttrXmlnsM)), "xmlns:mc": makeweakref(thisFunction(WriteXmlAttrXmlnsMc)), "xmlns:mo": makeweakref(thisFunction(WriteXmlAttrXmlnsMo)), "xmlns:r": makeweakref(thisFunction(WriteXmlAttrXmlnsR)), "xmlns:v": makeweakref(thisFunction(WriteXmlAttrXmlnsV)), "xmlns:w14": makeweakref(thisFunction(WriteXmlAttrXmlnsW14)), "xmlns:w": makeweakref(thisFunction(WriteXmlAttrXmlnsW)), "xmlns:wne": makeweakref(thisFunction(WriteXmlAttrXmlnsWne)), "xmlns:wp14": makeweakref(thisFunction(WriteXmlAttrXmlnsWp14)), "xmlns:wp": makeweakref(thisFunction(WriteXmlAttrXmlnsWp)), "xmlns:wpc": makeweakref(thisFunction(WriteXmlAttrXmlnsWpc)), "xmlns:wpg": makeweakref(thisFunction(WriteXmlAttrXmlnsWpg)), "xmlns:wpi": makeweakref(thisFunction(WriteXmlAttrXmlnsWpi)), "xmlns:wps": makeweakref(thisFunction(WriteXmlAttrXmlnsWps)), "mc:Ignorable": makeweakref(thisFunction(WriteXmlAttrMcIgnorable)), ); sorted_child_ := array( pre + "p": array(0, makeweakref(thisFunction(AppendP))), ); container_ := new TSOfficeContainer(sorted_child_); end; function Ftr.Copy(_obj: Ftr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; class(OpenXmlElement).Copy(_obj); if not ifnil(_obj.XmlnsM) then {self.}XmlnsM := _obj.XmlnsM; if not ifnil(_obj.XmlnsMc) then {self.}XmlnsMc := _obj.XmlnsMc; if not ifnil(_obj.XmlnsMo) then {self.}XmlnsMo := _obj.XmlnsMo; if not ifnil(_obj.XmlnsR) then {self.}XmlnsR := _obj.XmlnsR; if not ifnil(_obj.XmlnsV) then {self.}XmlnsV := _obj.XmlnsV; if not ifnil(_obj.XmlnsW14) then {self.}XmlnsW14 := _obj.XmlnsW14; if not ifnil(_obj.XmlnsW) then {self.}XmlnsW := _obj.XmlnsW; if not ifnil(_obj.XmlnsWne) then {self.}XmlnsWne := _obj.XmlnsWne; if not ifnil(_obj.XmlnsWp14) then {self.}XmlnsWp14 := _obj.XmlnsWp14; if not ifnil(_obj.XmlnsWp) then {self.}XmlnsWp := _obj.XmlnsWp; if not ifnil(_obj.XmlnsWpc) then {self.}XmlnsWpc := _obj.XmlnsWpc; if not ifnil(_obj.XmlnsWpg) then {self.}XmlnsWpg := _obj.XmlnsWpg; if not ifnil(_obj.XmlnsWpi) then {self.}XmlnsWpi := _obj.XmlnsWpi; if not ifnil(_obj.XmlnsWps) then {self.}XmlnsWps := _obj.XmlnsWps; if not ifnil(_obj.McIgnorable) then {self.}McIgnorable := _obj.McIgnorable; tslassigning := tslassigning_backup; end; function Ftr.ReadXmlAttrXmlnsM(); begin return {self.}XmlAttrXmlnsM.Value; end; function Ftr.WriteXmlAttrXmlnsM(_value); begin if ifnil({self.}XmlAttrXmlnsM) then begin {self.}XmlAttrXmlnsM := new OpenXmlAttribute("xmlns", "m", nil); attributes_[length(attributes_)] := {self.}XmlAttrXmlnsM; end {self.}XmlAttrXmlnsM.Value := _value; end; function Ftr.ReadXmlAttrXmlnsMc(); begin return {self.}XmlAttrXmlnsMc.Value; end; function Ftr.WriteXmlAttrXmlnsMc(_value); begin if ifnil({self.}XmlAttrXmlnsMc) then begin {self.}XmlAttrXmlnsMc := new OpenXmlAttribute("xmlns", "mc", nil); attributes_[length(attributes_)] := {self.}XmlAttrXmlnsMc; end {self.}XmlAttrXmlnsMc.Value := _value; end; function Ftr.ReadXmlAttrXmlnsMo(); begin return {self.}XmlAttrXmlnsMo.Value; end; function Ftr.WriteXmlAttrXmlnsMo(_value); begin if ifnil({self.}XmlAttrXmlnsMo) then begin {self.}XmlAttrXmlnsMo := new OpenXmlAttribute("xmlns", "mo", nil); attributes_[length(attributes_)] := {self.}XmlAttrXmlnsMo; end {self.}XmlAttrXmlnsMo.Value := _value; end; function Ftr.ReadXmlAttrXmlnsR(); begin return {self.}XmlAttrXmlnsR.Value; end; function Ftr.WriteXmlAttrXmlnsR(_value); begin if ifnil({self.}XmlAttrXmlnsR) then begin {self.}XmlAttrXmlnsR := new OpenXmlAttribute("xmlns", "r", nil); attributes_[length(attributes_)] := {self.}XmlAttrXmlnsR; end {self.}XmlAttrXmlnsR.Value := _value; end; function Ftr.ReadXmlAttrXmlnsV(); begin return {self.}XmlAttrXmlnsV.Value; end; function Ftr.WriteXmlAttrXmlnsV(_value); begin if ifnil({self.}XmlAttrXmlnsV) then begin {self.}XmlAttrXmlnsV := new OpenXmlAttribute("xmlns", "v", nil); attributes_[length(attributes_)] := {self.}XmlAttrXmlnsV; end {self.}XmlAttrXmlnsV.Value := _value; end; function Ftr.ReadXmlAttrXmlnsW14(); begin return {self.}XmlAttrXmlnsW14.Value; end; function Ftr.WriteXmlAttrXmlnsW14(_value); begin if ifnil({self.}XmlAttrXmlnsW14) then begin {self.}XmlAttrXmlnsW14 := new OpenXmlAttribute("xmlns", "w14", nil); attributes_[length(attributes_)] := {self.}XmlAttrXmlnsW14; end {self.}XmlAttrXmlnsW14.Value := _value; end; function Ftr.ReadXmlAttrXmlnsW(); begin return {self.}XmlAttrXmlnsW.Value; end; function Ftr.WriteXmlAttrXmlnsW(_value); begin if ifnil({self.}XmlAttrXmlnsW) then begin {self.}XmlAttrXmlnsW := new OpenXmlAttribute("xmlns", "w", nil); attributes_[length(attributes_)] := {self.}XmlAttrXmlnsW; end {self.}XmlAttrXmlnsW.Value := _value; end; function Ftr.ReadXmlAttrXmlnsWne(); begin return {self.}XmlAttrXmlnsWne.Value; end; function Ftr.WriteXmlAttrXmlnsWne(_value); begin if ifnil({self.}XmlAttrXmlnsWne) then begin {self.}XmlAttrXmlnsWne := new OpenXmlAttribute("xmlns", "wne", nil); attributes_[length(attributes_)] := {self.}XmlAttrXmlnsWne; end {self.}XmlAttrXmlnsWne.Value := _value; end; function Ftr.ReadXmlAttrXmlnsWp14(); begin return {self.}XmlAttrXmlnsWp14.Value; end; function Ftr.WriteXmlAttrXmlnsWp14(_value); begin if ifnil({self.}XmlAttrXmlnsWp14) then begin {self.}XmlAttrXmlnsWp14 := new OpenXmlAttribute("xmlns", "wp14", nil); attributes_[length(attributes_)] := {self.}XmlAttrXmlnsWp14; end {self.}XmlAttrXmlnsWp14.Value := _value; end; function Ftr.ReadXmlAttrXmlnsWp(); begin return {self.}XmlAttrXmlnsWp.Value; end; function Ftr.WriteXmlAttrXmlnsWp(_value); begin if ifnil({self.}XmlAttrXmlnsWp) then begin {self.}XmlAttrXmlnsWp := new OpenXmlAttribute("xmlns", "wp", nil); attributes_[length(attributes_)] := {self.}XmlAttrXmlnsWp; end {self.}XmlAttrXmlnsWp.Value := _value; end; function Ftr.ReadXmlAttrXmlnsWpc(); begin return {self.}XmlAttrXmlnsWpc.Value; end; function Ftr.WriteXmlAttrXmlnsWpc(_value); begin if ifnil({self.}XmlAttrXmlnsWpc) then begin {self.}XmlAttrXmlnsWpc := new OpenXmlAttribute("xmlns", "wpc", nil); attributes_[length(attributes_)] := {self.}XmlAttrXmlnsWpc; end {self.}XmlAttrXmlnsWpc.Value := _value; end; function Ftr.ReadXmlAttrXmlnsWpg(); begin return {self.}XmlAttrXmlnsWpg.Value; end; function Ftr.WriteXmlAttrXmlnsWpg(_value); begin if ifnil({self.}XmlAttrXmlnsWpg) then begin {self.}XmlAttrXmlnsWpg := new OpenXmlAttribute("xmlns", "wpg", nil); attributes_[length(attributes_)] := {self.}XmlAttrXmlnsWpg; end {self.}XmlAttrXmlnsWpg.Value := _value; end; function Ftr.ReadXmlAttrXmlnsWpi(); begin return {self.}XmlAttrXmlnsWpi.Value; end; function Ftr.WriteXmlAttrXmlnsWpi(_value); begin if ifnil({self.}XmlAttrXmlnsWpi) then begin {self.}XmlAttrXmlnsWpi := new OpenXmlAttribute("xmlns", "wpi", nil); attributes_[length(attributes_)] := {self.}XmlAttrXmlnsWpi; end {self.}XmlAttrXmlnsWpi.Value := _value; end; function Ftr.ReadXmlAttrXmlnsWps(); begin return {self.}XmlAttrXmlnsWps.Value; end; function Ftr.WriteXmlAttrXmlnsWps(_value); begin if ifnil({self.}XmlAttrXmlnsWps) then begin {self.}XmlAttrXmlnsWps := new OpenXmlAttribute("xmlns", "wps", nil); attributes_[length(attributes_)] := {self.}XmlAttrXmlnsWps; end {self.}XmlAttrXmlnsWps.Value := _value; end; function Ftr.ReadXmlAttrMcIgnorable(); begin return {self.}XmlAttrMcIgnorable.Value; end; function Ftr.WriteXmlAttrMcIgnorable(_value); begin if ifnil({self.}XmlAttrMcIgnorable) then begin {self.}XmlAttrMcIgnorable := new OpenXmlAttribute("mc", "Ignorable", nil); attributes_[length(attributes_)] := {self.}XmlAttrMcIgnorable; end {self.}XmlAttrMcIgnorable.Value := _value; end; function Ftr.ReadPs(_index); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "p", ind); end; function Ftr.AddP(): P; begin obj := new P(self, {self.}Prefix, "p"); container_.Insert(obj); return obj; end; function Ftr.AppendP(): P; begin obj := new P(self, {self.}Prefix, "p"); container_.Append(obj); return obj; end;