lutaml 0.9.43 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/docs.yml +63 -0
- data/.github/workflows/links.yml +99 -0
- data/.github/workflows/rake.yml +13 -2
- data/.github/workflows/release.yml +12 -6
- data/.gitignore +3 -0
- data/.rubocop.yml +11 -3
- data/.rubocop_todo.yml +336 -0
- data/Gemfile +18 -7
- data/README.adoc +1854 -21
- data/Rakefile +7 -1
- data/bin/plantuml2lutaml +3 -3
- data/bin/yaml2lutaml +2 -2
- data/config/diagram_styles.yml +200 -0
- data/config/model_transformations.yml +266 -0
- data/config/package_metadata.example.yml +58 -0
- data/config/qea_schema.yml +1024 -0
- data/config/static_site.yml +166 -0
- data/docs/.github/workflows/docs.yml +66 -0
- data/docs/.github/workflows/links.yml +78 -0
- data/docs/CONTINUATION_PLAN.md +168 -0
- data/docs/Gemfile +13 -0
- data/docs/MIGRATION_GUIDE.md +202 -0
- data/docs/README.md +252 -0
- data/docs/REFACTOR_PLAN.md +214 -0
- data/docs/_config.yml +144 -0
- data/docs/_guides/diagram-generation.adoc +316 -0
- data/docs/_guides/index.adoc +135 -0
- data/docs/{lutaml-express.adoc → _guides/parsing/express-parsing.adoc} +7 -0
- data/docs/_guides/parsing/index.adoc +77 -0
- data/docs/{lutaml-xmi.adoc → _guides/parsing/xmi-parsing.adoc} +7 -0
- data/docs/_guides/sysml-modeling.adoc +37 -0
- data/docs/{lutaml-uml.adoc → _guides/uml-modeling.adoc} +8 -2
- data/docs/_pages/concepts/diagram-generation.adoc +337 -0
- data/docs/_pages/concepts/lur-format.adoc +711 -0
- data/docs/_pages/concepts/qea-parsing.adoc +418 -0
- data/docs/_pages/core/architecture.adoc +329 -0
- data/docs/_pages/core/installation.adoc +321 -0
- data/docs/_pages/core/overview.adoc +197 -0
- data/docs/_pages/index.adoc +48 -0
- data/docs/_pages/uml-syntax.adoc +995 -0
- data/docs/_references/configuration/diagram-styles.adoc +716 -0
- data/docs/_references/configuration/index.adoc +52 -0
- data/docs/_references/configuration/package-metadata.adoc +416 -0
- data/docs/_references/formats/index.adoc +42 -0
- data/docs/{lutaml_syntax.adoc → _references/formats/lutaml-syntax.adoc} +7 -0
- data/docs/_references/formats/qea-structure.adoc +1364 -0
- data/docs/_references/index.adoc +197 -0
- data/docs/_tutorials/index.adoc +109 -0
- data/docs/index.adoc +64 -0
- data/docs/lychee.toml +83 -0
- data/examples/UML_EA.DTD +6856 -0
- data/examples/lur/20251010_current_plateau_v5.1.lur +0 -0
- data/examples/lur/basic.lur +0 -0
- data/examples/lur/test-output.lur +0 -0
- data/examples/lur/test.lur +0 -0
- data/examples/lur_basic_usage.rb +220 -0
- data/examples/lur_cli_workflow.rb +262 -0
- data/examples/lur_statistics.rb +325 -0
- data/examples/qea/20251010_current_plateau_v5.1.qea +0 -0
- data/examples/qea/ArcGISWorkspace_template.qea +0 -0
- data/examples/qea/README_qea_parser.adoc +230 -0
- data/examples/qea/UmlModel_template.qea +0 -0
- data/examples/qea/basic.qea +0 -0
- data/examples/qea/simple.qea +0 -0
- data/examples/qea/simple_example.qea +0 -0
- data/examples/qea/test.qea +0 -0
- data/examples/xmi/20251010_current_plateau_v5.1.xmi +118121 -0
- data/examples/xmi/ArcGISWorkspace_template.xmi +1467 -0
- data/examples/xmi/Images/EAID_0016F797_D055_4717_AF1A_606413D0A166.svg +158 -0
- data/examples/xmi/Images/EAID_00C5C772_5A03_434f_BF30_AC37542A1AAC.svg +659 -0
- data/examples/xmi/Images/EAID_0114FD24_9E58_4664_98CD_71305B59AD11.svg +411 -0
- data/examples/xmi/Images/EAID_01661E1B_31B6_4167_BCCF_A00678FB4EA2.svg +102 -0
- data/examples/xmi/Images/EAID_039FE004_5408_4fc0_89AA_EB319E4F61C7.svg +169 -0
- data/examples/xmi/Images/EAID_04EE9625_17A0_4721_BC71_21756DB21D06.svg +403 -0
- data/examples/xmi/Images/EAID_05FF9417_1619_4170_B0C9_55AA6B988EF1.svg +175 -0
- data/examples/xmi/Images/EAID_09853FB2_AF8A_432f_94C5_6C47461BD937.svg +360 -0
- data/examples/xmi/Images/EAID_09927B7F_A657_4819_99E5_AC9DC99227D9.svg +195 -0
- data/examples/xmi/Images/EAID_09AF6B8A_557C_43bc_BBB0_47C1E9401EF3.svg +218 -0
- data/examples/xmi/Images/EAID_0BE81AC5_031B_4973_A9A0_223CCD92BAA1.svg +471 -0
- data/examples/xmi/Images/EAID_0EDEA6EF_4DC8_4979_BB80_28B1B9EBD1D4.svg +56 -0
- data/examples/xmi/Images/EAID_0F413534_6AD2_48bc_B4AF_8699D530D91D.svg +262 -0
- data/examples/xmi/Images/EAID_1321F39B_AD67_47b5_B5C3_3A42BBFCBDF9.svg +286 -0
- data/examples/xmi/Images/EAID_13E09C71_99E7_40b4_B72D_48AF6379BC2E.svg +164 -0
- data/examples/xmi/Images/EAID_144955D8_CB4E_4b59_BB0C_E549F7F84943.svg +66 -0
- data/examples/xmi/Images/EAID_14E9F5FD_F6CD_4f48_B1CD_F5A40C6D8E83.svg +95 -0
- data/examples/xmi/Images/EAID_157826AA_96A7_4278_89A6_94BD0F31409A.svg +63 -0
- data/examples/xmi/Images/EAID_159E9DA0_7A54_4817_B72A_401C750F675D.svg +306 -0
- data/examples/xmi/Images/EAID_17BC8309_8051_492b_BE87_61CCFE83DB16.svg +45 -0
- data/examples/xmi/Images/EAID_1A10EB6D_E2E5_42a6_A31E_B293D93FD07E.svg +193 -0
- data/examples/xmi/Images/EAID_1A290AFD_CE96_46a2_8351_A986D77CC727.svg +444 -0
- data/examples/xmi/Images/EAID_1B2D9309_C66B_492a_995C_95B2B02E0D7C.svg +168 -0
- data/examples/xmi/Images/EAID_1DE6B973_CE8A_416f_909B_54CEA1E5944E.svg +10 -0
- data/examples/xmi/Images/EAID_204F4ACC_2230_4c8d_9861_EF5A6844B712.svg +60 -0
- data/examples/xmi/Images/EAID_227300E2_4F4B_4955_83B9_FA626CE8680B.svg +188 -0
- data/examples/xmi/Images/EAID_22C24D4C_4894_480a_B113_0CB034CB59E9.svg +426 -0
- data/examples/xmi/Images/EAID_234BC4F5_8100_4969_BDCB_A24E0E641F23.svg +169 -0
- data/examples/xmi/Images/EAID_24446BFC_9FEB_4935_8970_65A4C562A93F.svg +277 -0
- data/examples/xmi/Images/EAID_24E8A45C_C99F_49b7_860A_9CF65FF76C76.svg +575 -0
- data/examples/xmi/Images/EAID_272F3181_4300_48b7_98A0_A8CFD12B1A72.svg +255 -0
- data/examples/xmi/Images/EAID_292E0D94_392C_4da6_A0B5_841501FAE50A.svg +183 -0
- data/examples/xmi/Images/EAID_29DD0967_ADAB_4abb_99C5_544821F5E7DA.svg +10 -0
- data/examples/xmi/Images/EAID_2A339928_E5EF_4ed2_9E5D_CC2CA5CF248B.svg +310 -0
- data/examples/xmi/Images/EAID_2A5E0832_06BE_4381_85D4_9B00E4F95575.svg +155 -0
- data/examples/xmi/Images/EAID_2AAB709F_EFCE_496f_8AFE_92809D66A0A9.svg +81 -0
- data/examples/xmi/Images/EAID_2C8DD882_8DEA_4065_89F8_DDA796AA0C85.svg +520 -0
- data/examples/xmi/Images/EAID_2E98EA19_37D8_4b70_BDCE_CFEE4FA800B0.svg +173 -0
- data/examples/xmi/Images/EAID_30D62231_110F_44e8_9C06_6FCDCBA53A09.svg +722 -0
- data/examples/xmi/Images/EAID_3206D3FD_1FC4_41c7_8D00_36DB908E9319.svg +181 -0
- data/examples/xmi/Images/EAID_3452CC53_9ACB_44eb_9C9D_B90CF862F284.svg +92 -0
- data/examples/xmi/Images/EAID_348EE46E_ABD9_40b0_82A1_0285E75BDC52.svg +187 -0
- data/examples/xmi/Images/EAID_34FF671B_CFDC_47ad_91DF_ECA6D8358180.svg +217 -0
- data/examples/xmi/Images/EAID_359DD694_0100_4bdf_AD5F_712D97E9C69B.svg +157 -0
- data/examples/xmi/Images/EAID_35DE714C_49A8_490e_913A_56F39EF317F9.svg +180 -0
- data/examples/xmi/Images/EAID_360C79F1_8EDF_41db_A069_DECDC55625BC.svg +31 -0
- data/examples/xmi/Images/EAID_36913C58_FF35_4ba2_A04B_9A4824E24609.svg +166 -0
- data/examples/xmi/Images/EAID_372F7F7B_57ED_469a_A640_70DB578B3C56.svg +361 -0
- data/examples/xmi/Images/EAID_37AC19B9_8433_4fee_A326_763170D54D06.svg +32 -0
- data/examples/xmi/Images/EAID_38170608_32B5_4a6f_A68D_A0D7C0C9D019.svg +234 -0
- data/examples/xmi/Images/EAID_3A77A5D0_4E1B_4116_8AAD_407FC422B47F.svg +183 -0
- data/examples/xmi/Images/EAID_3B8BD087_1683_46b1_8D0D_6F839C46C578.svg +42 -0
- data/examples/xmi/Images/EAID_3DC20801_AE8B_4e76_B08C_F574E8A90E13.svg +192 -0
- data/examples/xmi/Images/EAID_3DE28C70_C6D4_406c_B49F_EEF52148C8C1.svg +124 -0
- data/examples/xmi/Images/EAID_458E093C_BA2B_4292_BEC4_37511C163DDC.svg +140 -0
- data/examples/xmi/Images/EAID_45F9B1F7_E568_47c9_B229_953BC2E707E4.svg +266 -0
- data/examples/xmi/Images/EAID_46B3041A_8C23_46e6_8E14_ADE7012274C5.svg +80 -0
- data/examples/xmi/Images/EAID_47E4600F_CEC9_4245_9BF5_EE38007A9DDB.svg +584 -0
- data/examples/xmi/Images/EAID_4881CEEE_792C_4cb0_BEA7_54333B643D0A.svg +155 -0
- data/examples/xmi/Images/EAID_48D364F0_DCA4_41e8_B4D4_509B3023B969.svg +17 -0
- data/examples/xmi/Images/EAID_4DBDAB9E_4C1C_4cb1_A767_06BD743A50A7.svg +78 -0
- data/examples/xmi/Images/EAID_4EB75007_B31D_4f2c_8855_7E9D3A3B17F4.svg +454 -0
- data/examples/xmi/Images/EAID_4F421236_FCF3_4aae_B22A_C7E6A5EFBAC7.svg +81 -0
- data/examples/xmi/Images/EAID_4FC1D352_2102_4b73_BCB0_1410B29C6BD7.svg +379 -0
- data/examples/xmi/Images/EAID_4FE346EA_01E1_4b30_8BE6_BB32EA191E47.svg +126 -0
- data/examples/xmi/Images/EAID_5038EEE3_7DD0_4cca_9829_364E044D37E8.svg +199 -0
- data/examples/xmi/Images/EAID_508A37DC_9378_4f5a_BD96_48F4D24E03A5.svg +162 -0
- data/examples/xmi/Images/EAID_516DA1A2_F0EC_415c_9664_E4CA54E7F05C.svg +136 -0
- data/examples/xmi/Images/EAID_52A1DBD3_D3DA_4b6d_8F96_FC6F39F64242.svg +161 -0
- data/examples/xmi/Images/EAID_575E87BA_32E9_4a84_AA4E_0EFDFC5D4C07.svg +71 -0
- data/examples/xmi/Images/EAID_57E0F1A0_6C72_47ef_B922_B806F9A875E8.svg +209 -0
- data/examples/xmi/Images/EAID_5957C373_3FC1_482f_8F35_D809153A17F5.svg +123 -0
- data/examples/xmi/Images/EAID_59A66AE2_412C_48a6_BFC7_EA56CF11D269.svg +218 -0
- data/examples/xmi/Images/EAID_5A43833E_680B_4a90_8931_0C902304E029.svg +236 -0
- data/examples/xmi/Images/EAID_5D6DB5A0_5047_4bac_9E60_69904A60B56D.svg +353 -0
- data/examples/xmi/Images/EAID_5DA1E7A7_8E59_4803_A831_E9F3EC27328F.svg +242 -0
- data/examples/xmi/Images/EAID_5E2C1E2A_82A8_47f4_B2ED_1398D72BFCFD.svg +246 -0
- data/examples/xmi/Images/EAID_6052620C_4BD5_49f6_A21C_AD7E6DCA2795.svg +290 -0
- data/examples/xmi/Images/EAID_6481E2CC_35A6_43b0_88D4_10A667A2BC2D.svg +60 -0
- data/examples/xmi/Images/EAID_660C7D03_A26C_4977_A7BA_9D0A773DA811.svg +318 -0
- data/examples/xmi/Images/EAID_671F3C3D_35B6_4514_B5B6_DD7E84925493.svg +24 -0
- data/examples/xmi/Images/EAID_676B9C9A_D85F_4d2f_A46B_73F02090DC87.svg +127 -0
- data/examples/xmi/Images/EAID_6797FEFA_5801_48e4_8B9C_3C824C0E165D.svg +412 -0
- data/examples/xmi/Images/EAID_6807F4EE_18EF_4e7e_ACCF_D5BD323AFDE9.svg +130 -0
- data/examples/xmi/Images/EAID_69E81E34_CF28_4c7f_A48F_5941BA85CEE3.svg +96 -0
- data/examples/xmi/Images/EAID_6A3C55E8_3C3C_4f3a_8AAC_0299C5B23070.svg +10 -0
- data/examples/xmi/Images/EAID_6BAC333E_E2C2_42c7_8DDF_6B4FA0FFC03B.svg +143 -0
- data/examples/xmi/Images/EAID_6D0349D5_3F1B_4b28_82D2_910743DEB5E5.svg +114 -0
- data/examples/xmi/Images/EAID_6E95B74E_8A09_4698_9E9E_23BCFD2CE194.svg +37 -0
- data/examples/xmi/Images/EAID_70C77F92_5614_4b22_8C8E_67859F59D8FD.svg +254 -0
- data/examples/xmi/Images/EAID_71F9216B_E7A7_4083_B08E_6C71B57F3A1F.svg +187 -0
- data/examples/xmi/Images/EAID_73025C5A_08FC_47ff_AB2F_C7F79CF54B41.svg +145 -0
- data/examples/xmi/Images/EAID_74C974B6_6D07_425d_B7AC_C8899E3B4967.svg +76 -0
- data/examples/xmi/Images/EAID_7504FCD2_524C_4e7d_BAE4_4E58A8A8A12C.svg +196 -0
- data/examples/xmi/Images/EAID_78030266_3603_4747_9D75_03D16614BE7D.svg +35 -0
- data/examples/xmi/Images/EAID_785226C1_12B1_4104_A4C1_F19B70B9FB71.svg +348 -0
- data/examples/xmi/Images/EAID_7854470F_26B8_4d3c_AFDF_C05BCE6ED0CD.svg +72 -0
- data/examples/xmi/Images/EAID_794F4A8F_18CA_4e9f_8477_A6F0E5ED22D4.svg +187 -0
- data/examples/xmi/Images/EAID_7A24839E_C8AE_424d_B7D2_6DA16DC813E7.svg +114 -0
- data/examples/xmi/Images/EAID_7A3649FD_E960_4ae6_B9B1_A9001C066AE7.svg +181 -0
- data/examples/xmi/Images/EAID_7B2C6765_AB68_439a_87F3_DAC323CB2AF5.svg +196 -0
- data/examples/xmi/Images/EAID_7C44AC09_27C1_47b3_9A85_88EC71C081FF.svg +55 -0
- data/examples/xmi/Images/EAID_7CE102CA_97C1_4cac_BD3B_0500D3712D2A.svg +195 -0
- data/examples/xmi/Images/EAID_7D960BD8_65D8_4934_9C11_4EF860DD8FBA.svg +90 -0
- data/examples/xmi/Images/EAID_80939C98_A456_48c3_BCEA_4B72851F2DF6.svg +174 -0
- data/examples/xmi/Images/EAID_812FE862_76ED_44f0_B678_7A4601B395CF.svg +142 -0
- data/examples/xmi/Images/EAID_81B76F5B_9D64_4bbf_8AC8_34234FB87533.svg +740 -0
- data/examples/xmi/Images/EAID_84352F1A_195B_411b_9552_5BFC40BF90B5.svg +105 -0
- data/examples/xmi/Images/EAID_846DD800_139C_4d47_A1DF_3FB1AC5D130F.svg +554 -0
- data/examples/xmi/Images/EAID_84A9C65B_FD6D_4bb5_818F_E8C35FF5BCD1.svg +228 -0
- data/examples/xmi/Images/EAID_853674F5_7DC9_4aae_809B_5728098B5D5B.svg +154 -0
- data/examples/xmi/Images/EAID_860CBBFB_2F27_408f_9144_751F9D1F487F.svg +273 -0
- data/examples/xmi/Images/EAID_87476527_7B9B_4b92_967E_3D38365470CA.svg +239 -0
- data/examples/xmi/Images/EAID_87DAE930_5069_4c58_AC65_4B0B2C0F32C8.svg +10 -0
- data/examples/xmi/Images/EAID_88AF6BD7_BC34_406f_BB59_47CFAB4A7D5D.svg +116 -0
- data/examples/xmi/Images/EAID_88D0CB44_20D0_44fc_A6E3_B663332EF401.svg +200 -0
- data/examples/xmi/Images/EAID_8BB1CA0C_C003_4678_973B_A1C3308E021D.svg +136 -0
- data/examples/xmi/Images/EAID_8DAB169F_D189_4320_A0F5_4443E3297F0E.svg +181 -0
- data/examples/xmi/Images/EAID_8FD488EF_BAAB_40ec_A7ED_F7CC831D546E.svg +324 -0
- data/examples/xmi/Images/EAID_90BCA409_BB45_42c5_AFA5_45FE3D995904.svg +342 -0
- data/examples/xmi/Images/EAID_926AFE38_01FA_469e_B6AA_ED5F4D62B66F.svg +105 -0
- data/examples/xmi/Images/EAID_92AB0FD0_B0FB_4ceb_8EAE_66B6600D31D7.svg +681 -0
- data/examples/xmi/Images/EAID_92C43670_3057_47f1_A576_C60843FF3D26.svg +136 -0
- data/examples/xmi/Images/EAID_93F63576_BE01_4cd8_8A91_C674FF77FC3D.svg +718 -0
- data/examples/xmi/Images/EAID_9400D9BC_05A5_41fc_83F7_02E5C67F9718.svg +487 -0
- data/examples/xmi/Images/EAID_95246DCF_1C09_4a16_9512_98000F56B3D8.svg +292 -0
- data/examples/xmi/Images/EAID_9994BF62_51E2_42cd_BB35_16C537B6718A.svg +715 -0
- data/examples/xmi/Images/EAID_9AAD6C21_B1E7_4472_B64A_FB5E3569D970.svg +116 -0
- data/examples/xmi/Images/EAID_9BD7189A_877B_4ca9_B42C_817DEF144FB2.svg +284 -0
- data/examples/xmi/Images/EAID_9DA6C553_94FC_4204_83AD_ECC4B45A53EF.svg +159 -0
- data/examples/xmi/Images/EAID_9EE6A41B_5FAA_4c89_B98F_732059778630.svg +10 -0
- data/examples/xmi/Images/EAID_9F1A4B54_46F6_435c_9529_E43E54CF6050.svg +172 -0
- data/examples/xmi/Images/EAID_9FE1EA7B_4CEF_4976_A281_93A94315BD84.svg +153 -0
- data/examples/xmi/Images/EAID_A0695647_6172_4262_8C30_67441399609C.svg +290 -0
- data/examples/xmi/Images/EAID_A081C63E_D6F2_41a7_A99C_307836754AFA.svg +149 -0
- data/examples/xmi/Images/EAID_A24E2778_5AD9_44f2_AB8F_5CD3913477D6.svg +194 -0
- data/examples/xmi/Images/EAID_A264F089_F9B3_406c_A3A8_FF34903797D3.svg +143 -0
- data/examples/xmi/Images/EAID_A282E5D1_2A13_4e7f_BC76_5D086DD4A577.svg +357 -0
- data/examples/xmi/Images/EAID_A3BCE1D6_9DB5_4272_A020_4C0E194B99CC.svg +171 -0
- data/examples/xmi/Images/EAID_A56E3818_D1B8_4b63_B69E_FBAC4A8AF482.svg +218 -0
- data/examples/xmi/Images/EAID_A57215D5_75C5_4532_BCF4_264A77CD62F1.svg +204 -0
- data/examples/xmi/Images/EAID_A59065AF_9669_486c_9582_9693177CFC7F.svg +263 -0
- data/examples/xmi/Images/EAID_A759374D_589A_488c_99EF_537ACB9B1FF9.svg +398 -0
- data/examples/xmi/Images/EAID_A7B25F46_F18A_4373_B16D_8C6AC0B868B0.svg +174 -0
- data/examples/xmi/Images/EAID_A9FE9E6F_A5F4_47e5_A6BA_26E22C7346B6.svg +310 -0
- data/examples/xmi/Images/EAID_AA62CDEB_55EC_498d_B326_4AA2C9AF6A05.svg +144 -0
- data/examples/xmi/Images/EAID_AAF52AF6_F7F9_4005_AE46_8920847BEA03.svg +144 -0
- data/examples/xmi/Images/EAID_AB281AC1_7CB8_404a_8124_34343DDD84E2.svg +198 -0
- data/examples/xmi/Images/EAID_AB7F1FDF_A66B_42a1_B8A3_7F594BAAD508.svg +143 -0
- data/examples/xmi/Images/EAID_AC2191E3_76E3_40b2_9E21_0E0B9B5277D2.svg +114 -0
- data/examples/xmi/Images/EAID_AD451676_A7C8_4c6a_A925_A9B9CA344142.svg +339 -0
- data/examples/xmi/Images/EAID_ADBA40A1_9375_4c1b_9938_0990612EB615.svg +429 -0
- data/examples/xmi/Images/EAID_ADC8773C_1B27_48ac_BAC1_14C1C919FAF6.svg +245 -0
- data/examples/xmi/Images/EAID_AE0718DF_AF69_4ea1_A099_E20028FE40A1.svg +173 -0
- data/examples/xmi/Images/EAID_B0DDB85D_A00C_4a7f_8C06_CCA15E5E4FE5.svg +31 -0
- data/examples/xmi/Images/EAID_B27ED282_D5E5_4f33_8AC1_62802F9E0B35.svg +256 -0
- data/examples/xmi/Images/EAID_B3AFECCB_17DD_44d6_8A44_2C38D9A64C0B.svg +95 -0
- data/examples/xmi/Images/EAID_B3B6C5B1_278E_4714_8244_B6C28B66AB50.svg +176 -0
- data/examples/xmi/Images/EAID_B53E76CD_A0F2_4e2f_B3AB_796D85964EF2.svg +179 -0
- data/examples/xmi/Images/EAID_B55D6E67_0BDD_4163_B359_11A6FBA89C74.svg +207 -0
- data/examples/xmi/Images/EAID_B58D1A53_E860_41a3_8352_11C274093E83.svg +189 -0
- data/examples/xmi/Images/EAID_B62C02B3_69DB_49e9_8089_4EE398BDE666.svg +165 -0
- data/examples/xmi/Images/EAID_BC008774_B539_4150_8174_B675989053D0.svg +22 -0
- data/examples/xmi/Images/EAID_BC1F7E00_082D_4a26_922B_3967A8D66859.svg +266 -0
- data/examples/xmi/Images/EAID_BDA613D8_402A_475a_AA15_683D88FD3D23.svg +183 -0
- data/examples/xmi/Images/EAID_C028B286_4C85_47d8_B6D5_80B28F556E82.svg +303 -0
- data/examples/xmi/Images/EAID_C173A6F4_1D1B_400e_AD8C_64FFF7CD5BE5.svg +178 -0
- data/examples/xmi/Images/EAID_C1834072_CADC_4ce4_B0FC_8284AE5CF4A4.svg +158 -0
- data/examples/xmi/Images/EAID_C1EC985B_5CBD_4e91_8661_EB4EF23781D9.svg +286 -0
- data/examples/xmi/Images/EAID_C31C1314_B679_4413_B8FE_A2CD584FC128.svg +305 -0
- data/examples/xmi/Images/EAID_C37CFBD6_69BA_42fb_9AC7_2D329D931BCF.svg +171 -0
- data/examples/xmi/Images/EAID_C857C934_306F_463a_87D5_257CB225ECFE.svg +174 -0
- data/examples/xmi/Images/EAID_C96797DE_2238_42d3_896A_9F92500270ED.svg +180 -0
- data/examples/xmi/Images/EAID_C96CBC24_B20E_459a_8F9D_75B61CDCB89F.svg +656 -0
- data/examples/xmi/Images/EAID_CACB523D_56A5_4f05_B3C2_51BB18F380FD.svg +158 -0
- data/examples/xmi/Images/EAID_CB34B578_101B_48b4_9271_214FFEA6A83A.svg +409 -0
- data/examples/xmi/Images/EAID_CBBD6CF4_0A1E_4406_9930_89DE43527910.svg +361 -0
- data/examples/xmi/Images/EAID_CC06A828_3750_472f_8DB2_C2E0863FCE17.svg +96 -0
- data/examples/xmi/Images/EAID_CD5CF053_1772_4a0f_962D_B17054D8EEAA.svg +173 -0
- data/examples/xmi/Images/EAID_CE440B5A_9534_4c75_9BA5_50862BB396C2.svg +97 -0
- data/examples/xmi/Images/EAID_CE4734FC_7986_4b3a_807F_A5B2C7EDE9E4.svg +193 -0
- data/examples/xmi/Images/EAID_D14AA320_9D41_4366_8739_9C2C21F96AE1.svg +32 -0
- data/examples/xmi/Images/EAID_D2FA55D3_C733_4a4d_92D0_0BC7AC0BB5BC.svg +108 -0
- data/examples/xmi/Images/EAID_D351FC34_FB03_488d_ADA4_BDB93DA9CB02.svg +49 -0
- data/examples/xmi/Images/EAID_D368FDF3_BDC5_4718_A701_351C8587A376.svg +592 -0
- data/examples/xmi/Images/EAID_D4DA8C48_3998_450d_87C4_9D65C9FECDB4.svg +42 -0
- data/examples/xmi/Images/EAID_D5464ECF_290E_4b2b_A6C4_25BE80F886CB.svg +76 -0
- data/examples/xmi/Images/EAID_D55235B0_61E9_461a_8379_2B8BF2403BE2.svg +147 -0
- data/examples/xmi/Images/EAID_D555ED73_F010_45d7_8A53_45A33C64C249.svg +318 -0
- data/examples/xmi/Images/EAID_D7AAC526_267E_45a0_A853_3207F02363F8.svg +45 -0
- data/examples/xmi/Images/EAID_D998B20D_A875_4ef8_A9CE_996BE56602BD.svg +158 -0
- data/examples/xmi/Images/EAID_DBFA8B39_F5B7_4c0e_9552_19AEAE5BA64E.svg +200 -0
- data/examples/xmi/Images/EAID_DE47A47D_E7BE_4e6f_BA81_F789EE8CFE72.svg +61 -0
- data/examples/xmi/Images/EAID_DFBB1072_8EC5_4384_8241_7EDF4B6B888B.svg +78 -0
- data/examples/xmi/Images/EAID_E325B9D8_E955_4aed_8125_63167BD40320.svg +67 -0
- data/examples/xmi/Images/EAID_E32D9D02_CAE9_4a47_92A8_3290EDCD6E6D.svg +79 -0
- data/examples/xmi/Images/EAID_E3B28611_7857_458a_B0BC_736E777B88EC.svg +194 -0
- data/examples/xmi/Images/EAID_E43C37EC_1176_4d2e_8B98_B6F3DFF6A092.svg +96 -0
- data/examples/xmi/Images/EAID_E591C1CF_7F35_4160_8A72_DFA097AD5811.svg +271 -0
- data/examples/xmi/Images/EAID_E77C66A2_2E94_4196_BFC6_662FE5AEEB6F.svg +332 -0
- data/examples/xmi/Images/EAID_E7AABA98_2450_4986_9736_DCCAF0108C50.svg +639 -0
- data/examples/xmi/Images/EAID_E7D9A2C4_72D6_40b9_8EB8_6B35476246B3.svg +134 -0
- data/examples/xmi/Images/EAID_E9CDAD85_ECF1_43de_819F_30A0D01785E6.svg +193 -0
- data/examples/xmi/Images/EAID_EC8AF507_F441_4e8a_B8A7_C1690F3C7D0B.svg +58 -0
- data/examples/xmi/Images/EAID_ED501058_D540_47ac_8EBC_5921E8C0BF57.svg +384 -0
- data/examples/xmi/Images/EAID_EFBF5F0F_DF74_4944_8791_114F5637C335.svg +590 -0
- data/examples/xmi/Images/EAID_EFFFA027_2A1F_425c_8437_BF89AADC8893.svg +365 -0
- data/examples/xmi/Images/EAID_F07E7718_B2C2_4a65_B5DD_477CB73E971E.svg +165 -0
- data/examples/xmi/Images/EAID_F0F20BDF_C729_47f7_B6FC_25ED2C4609CA.svg +61 -0
- data/examples/xmi/Images/EAID_F32E5AFE_8605_4c77_AE69_D0D0A6E380AC.svg +76 -0
- data/examples/xmi/Images/EAID_F3F00F45_CD37_46fd_B521_D1040EB2FB16.svg +123 -0
- data/examples/xmi/Images/EAID_F46E8F19_D8F1_4a3d_B87B_B0BAB4F50F50.svg +202 -0
- data/examples/xmi/Images/EAID_F48E5F6E_2411_4635_9315_3EAA4CFA29F7.svg +351 -0
- data/examples/xmi/Images/EAID_F4C23F9E_DD74_4fed_B75D_AD3C6448BA24.svg +189 -0
- data/examples/xmi/Images/EAID_F853B3C4_B145_4ef0_B261_C3CC0475B6D2.svg +215 -0
- data/examples/xmi/Images/EAID_F8BE68CA_1F8F_47e5_9454_01A2EB7D388A.svg +124 -0
- data/examples/xmi/Images/EAID_F92A6A28_612E_468e_9E39_D7AE7D24E24D.svg +208 -0
- data/examples/xmi/Images/EAID_F995FA49_B86E_4c94_BE5E_C928FB6B87D0.svg +302 -0
- data/examples/xmi/Images/EAID_FEAE013A_A4E4_4283_A491_1FEB8D0EBA28.svg +524 -0
- data/examples/xmi/Images/EAID_FEBE5726_3751_470b_9023_8C569202E97E.svg +730 -0
- data/examples/xmi/UML_EA.DTD +6856 -0
- data/examples/xmi/UmlModel_template.xmi +23 -0
- data/examples/xmi/basic.xmi +9086 -0
- data/examples/xmi/simple.xmi +655 -0
- data/examples/xmi/simple_example.xmi +23 -0
- data/examples/xmi/test.xmi +1703 -0
- data/exe/lutaml +2 -16
- data/exe/lutaml-wsd2uml +3 -3
- data/exe/lutaml-yaml2uml +2 -2
- data/lib/lutaml/cli/commands/base_command.rb +118 -0
- data/lib/lutaml/cli/element_identifier.rb +165 -0
- data/lib/lutaml/cli/enhanced_formatter.rb +502 -0
- data/lib/lutaml/cli/interactive_shell.rb +911 -0
- data/lib/lutaml/cli/lml_commands.rb +201 -0
- data/lib/lutaml/cli/output_formatter.rb +348 -0
- data/lib/lutaml/cli/resource_registry.rb +127 -0
- data/lib/lutaml/cli/tree_view_formatter.rb +308 -0
- data/lib/lutaml/cli/uml/build_command.rb +538 -0
- data/lib/lutaml/cli/uml/diagram_command.rb +421 -0
- data/lib/lutaml/cli/uml/export_command.rb +78 -0
- data/lib/lutaml/cli/uml/find_command.rb +122 -0
- data/lib/lutaml/cli/uml/info_command.rb +104 -0
- data/lib/lutaml/cli/uml/inspect_command.rb +88 -0
- data/lib/lutaml/cli/uml/ls_command.rb +105 -0
- data/lib/lutaml/cli/uml/repl_command.rb +50 -0
- data/lib/lutaml/cli/uml/search_command.rb +88 -0
- data/lib/lutaml/cli/uml/serve_command.rb +59 -0
- data/lib/lutaml/cli/uml/shared_helpers.rb +51 -0
- data/lib/lutaml/cli/uml/spa_command.rb +209 -0
- data/lib/lutaml/cli/uml/stats_command.rb +60 -0
- data/lib/lutaml/cli/uml/tree_command.rb +85 -0
- data/lib/lutaml/cli/uml/validate_command.rb +195 -0
- data/lib/lutaml/cli/uml/verify_command.rb +107 -0
- data/lib/lutaml/cli/uml_commands.rb +163 -0
- data/lib/lutaml/cli.rb +72 -0
- data/lib/lutaml/command_line.rb +8 -6
- data/lib/lutaml/converter/dsl_to_uml.rb +2 -0
- data/lib/lutaml/converter/xmi_to_uml.rb +40 -19
- data/lib/lutaml/ea/diagram/configuration.rb +379 -0
- data/lib/lutaml/ea/diagram/element_renderers/base_renderer.rb +81 -0
- data/lib/lutaml/ea/diagram/element_renderers/class_renderer.rb +330 -0
- data/lib/lutaml/ea/diagram/element_renderers/connector_renderer.rb +55 -0
- data/lib/lutaml/ea/diagram/element_renderers/package_renderer.rb +69 -0
- data/lib/lutaml/ea/diagram/extractor.rb +559 -0
- data/lib/lutaml/ea/diagram/layout_engine.rb +251 -0
- data/lib/lutaml/ea/diagram/path_builder.rb +258 -0
- data/lib/lutaml/ea/diagram/style_parser.rb +315 -0
- data/lib/lutaml/ea/diagram/style_resolver.rb +291 -0
- data/lib/lutaml/ea/diagram/svg_renderer.rb +285 -0
- data/lib/lutaml/ea/diagram/util.rb +69 -0
- data/lib/lutaml/ea/diagram.rb +77 -0
- data/lib/lutaml/express/parsers/exp.rb +1 -1
- data/lib/lutaml/express.rb +4 -2
- data/lib/lutaml/formatter/base.rb +6 -6
- data/lib/lutaml/formatter/graphviz.rb +10 -8
- data/lib/lutaml/formatter.rb +3 -0
- data/lib/lutaml/layout/engine.rb +9 -7
- data/lib/lutaml/layout/graph_viz_engine.rb +2 -1
- data/lib/lutaml/layout.rb +8 -0
- data/lib/lutaml/model_transformations/configuration.rb +333 -0
- data/lib/lutaml/model_transformations/format_registry.rb +394 -0
- data/lib/lutaml/model_transformations/parsers/base_parser.rb +389 -0
- data/lib/lutaml/model_transformations/parsers/qea_parser.rb +455 -0
- data/lib/lutaml/model_transformations/parsers/xmi_parser.rb +301 -0
- data/lib/lutaml/model_transformations/transformation_engine.rb +409 -0
- data/lib/lutaml/model_transformations.rb +143 -0
- data/lib/lutaml/parser.rb +15 -7
- data/lib/lutaml/qea/benchmark.rb +212 -0
- data/lib/lutaml/qea/database.rb +324 -0
- data/lib/lutaml/qea/factory/association_transformer.rb +115 -0
- data/lib/lutaml/qea/factory/attribute_tag_transformer.rb +60 -0
- data/lib/lutaml/qea/factory/attribute_transformer.rb +103 -0
- data/lib/lutaml/qea/factory/base_transformer.rb +132 -0
- data/lib/lutaml/qea/factory/class_transformer.rb +734 -0
- data/lib/lutaml/qea/factory/constraint_transformer.rb +78 -0
- data/lib/lutaml/qea/factory/data_type_transformer.rb +162 -0
- data/lib/lutaml/qea/factory/diagram_transformer.rb +182 -0
- data/lib/lutaml/qea/factory/document_builder.rb +275 -0
- data/lib/lutaml/qea/factory/ea_to_uml_factory.rb +260 -0
- data/lib/lutaml/qea/factory/enum_transformer.rb +87 -0
- data/lib/lutaml/qea/factory/generalization_transformer.rb +106 -0
- data/lib/lutaml/qea/factory/instance_transformer.rb +96 -0
- data/lib/lutaml/qea/factory/object_property_transformer.rb +61 -0
- data/lib/lutaml/qea/factory/operation_transformer.rb +75 -0
- data/lib/lutaml/qea/factory/package_transformer.rb +199 -0
- data/lib/lutaml/qea/factory/reference_resolver.rb +99 -0
- data/lib/lutaml/qea/factory/tagged_value_transformer.rb +41 -0
- data/lib/lutaml/qea/factory/transformer_registry.rb +85 -0
- data/lib/lutaml/qea/file_detector.rb +178 -0
- data/lib/lutaml/qea/infrastructure/database_connection.rb +100 -0
- data/lib/lutaml/qea/infrastructure/schema_reader.rb +136 -0
- data/lib/lutaml/qea/infrastructure/table_reader.rb +224 -0
- data/lib/lutaml/qea/models/base_model.rb +48 -0
- data/lib/lutaml/qea/models/ea_attribute.rb +135 -0
- data/lib/lutaml/qea/models/ea_attribute_tag.rb +109 -0
- data/lib/lutaml/qea/models/ea_complexity_type.rb +81 -0
- data/lib/lutaml/qea/models/ea_connector.rb +162 -0
- data/lib/lutaml/qea/models/ea_connector_type.rb +62 -0
- data/lib/lutaml/qea/models/ea_constraint_type.rb +65 -0
- data/lib/lutaml/qea/models/ea_datatype.rb +108 -0
- data/lib/lutaml/qea/models/ea_diagram.rb +117 -0
- data/lib/lutaml/qea/models/ea_diagram_link.rb +80 -0
- data/lib/lutaml/qea/models/ea_diagram_object.rb +86 -0
- data/lib/lutaml/qea/models/ea_diagram_type.rb +58 -0
- data/lib/lutaml/qea/models/ea_document.rb +68 -0
- data/lib/lutaml/qea/models/ea_object.rb +208 -0
- data/lib/lutaml/qea/models/ea_object_constraint.rb +62 -0
- data/lib/lutaml/qea/models/ea_object_property.rb +96 -0
- data/lib/lutaml/qea/models/ea_object_type.rb +75 -0
- data/lib/lutaml/qea/models/ea_operation.rb +153 -0
- data/lib/lutaml/qea/models/ea_operation_param.rb +73 -0
- data/lib/lutaml/qea/models/ea_package.rb +75 -0
- data/lib/lutaml/qea/models/ea_script.rb +69 -0
- data/lib/lutaml/qea/models/ea_status_type.rb +68 -0
- data/lib/lutaml/qea/models/ea_stereotype.rb +59 -0
- data/lib/lutaml/qea/models/ea_tagged_value.rb +105 -0
- data/lib/lutaml/qea/models/ea_xref.rb +174 -0
- data/lib/lutaml/qea/parser.rb +61 -0
- data/lib/lutaml/qea/repositories/base_repository.rb +215 -0
- data/lib/lutaml/qea/repositories/object_repository.rb +221 -0
- data/lib/lutaml/qea/services/configuration.rb +211 -0
- data/lib/lutaml/qea/services/database_loader.rb +215 -0
- data/lib/lutaml/qea/validation/association_validator.rb +75 -0
- data/lib/lutaml/qea/validation/attribute_validator.rb +103 -0
- data/lib/lutaml/qea/validation/base_validator.rb +305 -0
- data/lib/lutaml/qea/validation/class_validator.rb +123 -0
- data/lib/lutaml/qea/validation/database/circular_reference_validator.rb +111 -0
- data/lib/lutaml/qea/validation/database/orphan_validator.rb +155 -0
- data/lib/lutaml/qea/validation/database/referential_integrity_validator.rb +130 -0
- data/lib/lutaml/qea/validation/diagram_validator.rb +114 -0
- data/lib/lutaml/qea/validation/formatters/json_formatter.rb +137 -0
- data/lib/lutaml/qea/validation/formatters/text_formatter.rb +235 -0
- data/lib/lutaml/qea/validation/operation_validator.rb +81 -0
- data/lib/lutaml/qea/validation/package_validator.rb +113 -0
- data/lib/lutaml/qea/validation/validation_engine.rb +497 -0
- data/lib/lutaml/qea/validation/validation_message.rb +144 -0
- data/lib/lutaml/qea/validation/validation_result.rb +212 -0
- data/lib/lutaml/qea/validation/validator_registry.rb +134 -0
- data/lib/lutaml/qea/verification/comparison_result.rb +264 -0
- data/lib/lutaml/qea/verification/document_normalizer.rb +177 -0
- data/lib/lutaml/qea/verification/document_verifier.rb +320 -0
- data/lib/lutaml/qea/verification/element_comparator.rb +306 -0
- data/lib/lutaml/qea/verification/structure_matcher.rb +287 -0
- data/lib/lutaml/qea.rb +226 -0
- data/lib/lutaml/sysml/allocate.rb +2 -0
- data/lib/lutaml/sysml/allocated.rb +2 -0
- data/lib/lutaml/sysml/binding_connector.rb +2 -0
- data/lib/lutaml/sysml/block.rb +2 -0
- data/lib/lutaml/sysml/constraint_block.rb +2 -0
- data/lib/lutaml/sysml/copy.rb +2 -0
- data/lib/lutaml/sysml/derive_requirement.rb +2 -0
- data/lib/lutaml/sysml/nested_connector_end.rb +2 -0
- data/lib/lutaml/sysml/refine.rb +2 -0
- data/lib/lutaml/sysml/requirement.rb +2 -0
- data/lib/lutaml/sysml/requirement_related.rb +2 -0
- data/lib/lutaml/sysml/satisfy.rb +2 -0
- data/lib/lutaml/sysml/test_case.rb +2 -0
- data/lib/lutaml/sysml/trace.rb +2 -0
- data/lib/lutaml/sysml/verify.rb +2 -0
- data/lib/lutaml/sysml/xmi_file.rb +2 -0
- data/lib/lutaml/sysml.rb +3 -1
- data/lib/lutaml/uml/association.rb +4 -0
- data/lib/lutaml/uml/class.rb +11 -9
- data/lib/lutaml/uml/classifier.rb +3 -0
- data/lib/lutaml/uml/comment.rb +13 -0
- data/lib/lutaml/uml/data_type.rb +7 -6
- data/lib/lutaml/uml/diagram.rb +12 -0
- data/lib/lutaml/uml/diagram_link.rb +26 -0
- data/lib/lutaml/uml/diagram_object.rb +30 -0
- data/lib/lutaml/uml/document.rb +18 -0
- data/lib/lutaml/uml/enum.rb +4 -3
- data/lib/lutaml/uml/fontname.rb +13 -0
- data/lib/lutaml/uml/generalization.rb +2 -0
- data/lib/lutaml/uml/group.rb +2 -0
- data/lib/lutaml/uml/namespace.rb +2 -2
- data/lib/lutaml/uml/node/{field.rb → attribute.rb} +4 -4
- data/lib/lutaml/uml/node/base.rb +1 -1
- data/lib/lutaml/uml/node/class_node.rb +12 -12
- data/lib/lutaml/uml/node/class_relationship.rb +2 -2
- data/lib/lutaml/uml/node/document.rb +2 -2
- data/lib/lutaml/uml/node/method_argument.rb +3 -3
- data/lib/lutaml/uml/node/{method.rb → operation.rb} +4 -4
- data/lib/lutaml/uml/node/relationship.rb +3 -3
- data/lib/lutaml/uml/package.rb +7 -4
- data/lib/lutaml/uml/package_path.rb +235 -0
- data/lib/lutaml/uml/parsers/attribute.rb +2 -2
- data/lib/lutaml/uml/parsers/dsl.rb +3 -4
- data/lib/lutaml/uml/parsers/yaml.rb +1 -1
- data/lib/lutaml/uml/qualified_name.rb +178 -0
- data/lib/lutaml/uml/tagged_value.rb +21 -0
- data/lib/lutaml/uml/top_element.rb +7 -1
- data/lib/lutaml/uml/top_element_attribute.rb +4 -0
- data/lib/lutaml/uml/validation/document_structure_validator.rb +389 -0
- data/lib/lutaml/uml.rb +89 -45
- data/lib/lutaml/uml_repository/error_handler.rb +203 -0
- data/lib/lutaml/uml_repository/exporters/base_exporter.rb +61 -0
- data/lib/lutaml/uml_repository/exporters/json_exporter.rb +344 -0
- data/lib/lutaml/uml_repository/exporters/markdown_exporter.rb +598 -0
- data/lib/lutaml/uml_repository/index_builder.rb +460 -0
- data/lib/lutaml/uml_repository/lazy_repository.rb +238 -0
- data/lib/lutaml/uml_repository/package_exporter.rb +336 -0
- data/lib/lutaml/uml_repository/package_loader.rb +220 -0
- data/lib/lutaml/uml_repository/package_metadata.rb +77 -0
- data/lib/lutaml/uml_repository/presenters/association_presenter.rb +86 -0
- data/lib/lutaml/uml_repository/presenters/attribute_presenter.rb +101 -0
- data/lib/lutaml/uml_repository/presenters/class_presenter.rb +75 -0
- data/lib/lutaml/uml_repository/presenters/datatype_presenter.rb +108 -0
- data/lib/lutaml/uml_repository/presenters/diagram_presenter.rb +508 -0
- data/lib/lutaml/uml_repository/presenters/element_presenter.rb +92 -0
- data/lib/lutaml/uml_repository/presenters/enum_presenter.rb +83 -0
- data/lib/lutaml/uml_repository/presenters/package_presenter.rb +48 -0
- data/lib/lutaml/uml_repository/presenters/presenter_factory.rb +76 -0
- data/lib/lutaml/uml_repository/queries/association_query.rb +187 -0
- data/lib/lutaml/uml_repository/queries/base_query.rb +45 -0
- data/lib/lutaml/uml_repository/queries/class_query.rb +117 -0
- data/lib/lutaml/uml_repository/queries/diagram_query.rb +111 -0
- data/lib/lutaml/uml_repository/queries/inheritance_query.rb +259 -0
- data/lib/lutaml/uml_repository/queries/package_query.rb +239 -0
- data/lib/lutaml/uml_repository/queries/search_query.rb +357 -0
- data/lib/lutaml/uml_repository/query_dsl/conditions/base_condition.rb +28 -0
- data/lib/lutaml/uml_repository/query_dsl/conditions/block_condition.rb +46 -0
- data/lib/lutaml/uml_repository/query_dsl/conditions/hash_condition.rb +84 -0
- data/lib/lutaml/uml_repository/query_dsl/conditions/package_condition.rb +84 -0
- data/lib/lutaml/uml_repository/query_dsl/order.rb +90 -0
- data/lib/lutaml/uml_repository/query_dsl/query_builder.rb +296 -0
- data/lib/lutaml/uml_repository/repository.rb +764 -0
- data/lib/lutaml/uml_repository/repository_enhanced.rb +439 -0
- data/lib/lutaml/uml_repository/search_result.rb +86 -0
- data/lib/lutaml/uml_repository/static_site/configuration.rb +270 -0
- data/lib/lutaml/uml_repository/static_site/data_transformer.rb +967 -0
- data/lib/lutaml/uml_repository/static_site/generator.rb +401 -0
- data/lib/lutaml/uml_repository/static_site/id_generator.rb +115 -0
- data/lib/lutaml/uml_repository/static_site/search_index_builder.rb +317 -0
- data/lib/lutaml/uml_repository/static_site.rb +88 -0
- data/lib/lutaml/uml_repository/statistics_calculator.rb +334 -0
- data/lib/lutaml/uml_repository/validators/repository_validator.rb +404 -0
- data/lib/lutaml/uml_repository/web_ui/app.rb +144 -0
- data/lib/lutaml/uml_repository/web_ui/public/app.js +452 -0
- data/lib/lutaml/uml_repository/web_ui/public/styles.css +381 -0
- data/lib/lutaml/uml_repository/web_ui/views/index.erb +40 -0
- data/lib/lutaml/uml_repository.rb +97 -0
- data/lib/lutaml/version.rb +3 -1
- data/lib/lutaml/xmi/liquid_drops/association_drop.rb +60 -58
- data/lib/lutaml/xmi/liquid_drops/attribute_drop.rb +55 -53
- data/lib/lutaml/xmi/liquid_drops/cardinality_drop.rb +15 -13
- data/lib/lutaml/xmi/liquid_drops/connector_drop.rb +50 -46
- data/lib/lutaml/xmi/liquid_drops/constraint_drop.rb +19 -17
- data/lib/lutaml/xmi/liquid_drops/data_type_drop.rb +93 -90
- data/lib/lutaml/xmi/liquid_drops/dependency_drop.rb +26 -24
- data/lib/lutaml/xmi/liquid_drops/diagram_drop.rb +26 -24
- data/lib/lutaml/xmi/liquid_drops/enum_drop.rb +40 -37
- data/lib/lutaml/xmi/liquid_drops/enum_owned_literal_drop.rb +20 -18
- data/lib/lutaml/xmi/liquid_drops/generalization_attribute_drop.rb +64 -62
- data/lib/lutaml/xmi/liquid_drops/generalization_drop.rb +142 -140
- data/lib/lutaml/xmi/liquid_drops/klass_drop.rb +174 -170
- data/lib/lutaml/xmi/liquid_drops/operation_drop.rb +23 -21
- data/lib/lutaml/xmi/liquid_drops/package_drop.rb +95 -93
- data/lib/lutaml/xmi/liquid_drops/root_drop.rb +28 -25
- data/lib/lutaml/xmi/liquid_drops/source_target_drop.rb +39 -37
- data/lib/lutaml/xmi/parsers/xmi_base.rb +27 -17
- data/lib/lutaml/xmi/parsers/xml.rb +9 -9
- data/lib/lutaml/xmi.rb +37 -6
- data/lib/lutaml/xml/parsers/xml.rb +3 -1
- data/lib/lutaml/xml.rb +3 -1
- data/lib/lutaml.rb +14 -2
- data/lutaml.gemspec +16 -8
- data/plateau_all_packages.lur +0 -0
- data/templates/static_site/assets/scripts/app.js +45 -0
- data/templates/static_site/assets/scripts/core/state.js +419 -0
- data/templates/static_site/assets/scripts/core/utils.js +133 -0
- data/templates/static_site/assets/scripts/ui/details.js +74 -0
- data/templates/static_site/assets/scripts/ui/diagrams.js +345 -0
- data/templates/static_site/assets/scripts/ui/search.js +187 -0
- data/templates/static_site/assets/scripts/ui/sidebar.js +214 -0
- data/templates/static_site/assets/styles/00-variables.css +144 -0
- data/templates/static_site/assets/styles/01-reset.css +79 -0
- data/templates/static_site/assets/styles/02-base.css +149 -0
- data/templates/static_site/assets/styles/03-layout.css +171 -0
- data/templates/static_site/assets/styles/04-components.css +856 -0
- data/templates/static_site/assets/styles/05-utilities.css +89 -0
- data/templates/static_site/assets/styles/06-diagrams.css +277 -0
- data/templates/static_site/components/class_details.liquid +328 -0
- data/templates/static_site/components/content.liquid +508 -0
- data/templates/static_site/components/diagram_list.liquid +52 -0
- data/templates/static_site/components/diagram_viewer.liquid +71 -0
- data/templates/static_site/components/header.liquid +134 -0
- data/templates/static_site/components/package_details.liquid +119 -0
- data/templates/static_site/components/sidebar.liquid +46 -0
- data/templates/static_site/components/tree_node.liquid +81 -0
- data/templates/static_site/multi_file.liquid +46 -0
- data/templates/static_site/single_file.liquid +52 -0
- metadata +604 -31
- data/CODE_OF_CONDUCT.md +0 -74
- data/docs/lutaml-sysml.adoc +0 -10
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Diagram Generation Guide
|
|
3
|
+
parent: Guides
|
|
4
|
+
nav_order: 10
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
= EA-Style Diagram Generation
|
|
8
|
+
|
|
9
|
+
LutaML can generate pixel-perfect SVG diagrams from Enterprise Architect (EA) models, matching EA's visual style exactly including colors, fonts, and layout.
|
|
10
|
+
|
|
11
|
+
== Features
|
|
12
|
+
|
|
13
|
+
* **EA-style colors**: DataType (pink #FFCCFF), FeatureType (yellow #FFFFCC), GML types (green #CCFFCC)
|
|
14
|
+
* **Configurable styling**: Full YAML-based configuration system
|
|
15
|
+
* **Multiple connector types**: Generalization, association, aggregation, composition, dependency
|
|
16
|
+
* **Stereotype rendering**: Displays stereotypes in EA format («stereotype»)
|
|
17
|
+
* **Lazy-loading in SPA mode**: Diagrams loaded on-demand for performance
|
|
18
|
+
* **CLI extraction**: Extract diagrams individually or in batch
|
|
19
|
+
* **Priority-based styling**: EA data > user config > built-in defaults
|
|
20
|
+
|
|
21
|
+
== Quick Start
|
|
22
|
+
|
|
23
|
+
=== Generate Diagram from QEA File
|
|
24
|
+
|
|
25
|
+
[source,ruby]
|
|
26
|
+
----
|
|
27
|
+
require 'lutaml'
|
|
28
|
+
|
|
29
|
+
# Load QEA file
|
|
30
|
+
document = Lutaml::Qea.parse("model.qea")
|
|
31
|
+
repo = Lutaml::UmlRepository::Repository.new(document: document)
|
|
32
|
+
|
|
33
|
+
# Get a diagram
|
|
34
|
+
diagram = repo.packages_index.flat_map(&:diagrams).first
|
|
35
|
+
|
|
36
|
+
# Generate SVG
|
|
37
|
+
presenter = Lutaml::UmlRepository::Presenters::DiagramPresenter.new(diagram, repo)
|
|
38
|
+
svg = presenter.svg_output
|
|
39
|
+
|
|
40
|
+
# Save to file
|
|
41
|
+
File.write("diagram.svg", svg)
|
|
42
|
+
----
|
|
43
|
+
|
|
44
|
+
=== CLI Usage
|
|
45
|
+
|
|
46
|
+
[source,bash]
|
|
47
|
+
----
|
|
48
|
+
# Extract single diagram
|
|
49
|
+
lutaml diagram extract model.qea -d EAID_12345 -o diagram.svg
|
|
50
|
+
|
|
51
|
+
# Extract all diagrams to directory
|
|
52
|
+
lutaml diagram extract model.qea -o diagrams/
|
|
53
|
+
|
|
54
|
+
# List all diagrams
|
|
55
|
+
lutaml diagram list model.qea
|
|
56
|
+
|
|
57
|
+
# Generate static site with diagrams
|
|
58
|
+
lutaml generate-site model.qea -o output/
|
|
59
|
+
----
|
|
60
|
+
|
|
61
|
+
== Configuration
|
|
62
|
+
|
|
63
|
+
Diagram styling is fully configurable via YAML. Create a `diagram_styles.yml` file:
|
|
64
|
+
|
|
65
|
+
[source,yaml]
|
|
66
|
+
----
|
|
67
|
+
stereotypes:
|
|
68
|
+
DataType:
|
|
69
|
+
colors:
|
|
70
|
+
fill: "#FFCCFF" # Pink for datatypes
|
|
71
|
+
stroke: "#000000"
|
|
72
|
+
fonts:
|
|
73
|
+
class_name:
|
|
74
|
+
weight: 700
|
|
75
|
+
style: "italic"
|
|
76
|
+
|
|
77
|
+
FeatureType:
|
|
78
|
+
colors:
|
|
79
|
+
fill: "#FFFFCC" # Yellow for feature types
|
|
80
|
+
stroke: "#000000"
|
|
81
|
+
|
|
82
|
+
defaults:
|
|
83
|
+
colors:
|
|
84
|
+
default_fill: "#E0E0E0"
|
|
85
|
+
default_stroke: "#000000"
|
|
86
|
+
fonts:
|
|
87
|
+
default:
|
|
88
|
+
family: "Carlito, Arial, sans-serif"
|
|
89
|
+
size: 9
|
|
90
|
+
weight: 400
|
|
91
|
+
----
|
|
92
|
+
|
|
93
|
+
=== Configuration Priority
|
|
94
|
+
|
|
95
|
+
The style resolver merges styles from multiple sources with this priority:
|
|
96
|
+
|
|
97
|
+
1. **EA Data** (highest) - Colors and styles from `.qea` file
|
|
98
|
+
2. **User Configuration** - Your custom `diagram_styles.yml`
|
|
99
|
+
3. **Built-in Defaults** (lowest) - Sensible EA-style defaults
|
|
100
|
+
|
|
101
|
+
This ensures EA's original styling is preserved while allowing customization.
|
|
102
|
+
|
|
103
|
+
=== Configuration Options
|
|
104
|
+
|
|
105
|
+
==== Stereotypes
|
|
106
|
+
|
|
107
|
+
Define styles for specific stereotypes:
|
|
108
|
+
|
|
109
|
+
[source,yaml]
|
|
110
|
+
----
|
|
111
|
+
stereotypes:
|
|
112
|
+
Interface:
|
|
113
|
+
colors:
|
|
114
|
+
fill: "#FFFFEE"
|
|
115
|
+
fonts:
|
|
116
|
+
class_name:
|
|
117
|
+
style: "italic"
|
|
118
|
+
----
|
|
119
|
+
|
|
120
|
+
==== Packages
|
|
121
|
+
|
|
122
|
+
Define styles for package hierarchies (supports wildcards):
|
|
123
|
+
|
|
124
|
+
[source,yaml]
|
|
125
|
+
----
|
|
126
|
+
packages:
|
|
127
|
+
"CityGML::*":
|
|
128
|
+
colors:
|
|
129
|
+
fill: "#FFFFCC"
|
|
130
|
+
----
|
|
131
|
+
|
|
132
|
+
==== Classes
|
|
133
|
+
|
|
134
|
+
Define styles for specific classes:
|
|
135
|
+
|
|
136
|
+
[source,yaml]
|
|
137
|
+
----
|
|
138
|
+
classes:
|
|
139
|
+
Building:
|
|
140
|
+
colors:
|
|
141
|
+
fill: "#CCFFFF"
|
|
142
|
+
----
|
|
143
|
+
|
|
144
|
+
==== Connectors
|
|
145
|
+
|
|
146
|
+
Customize connector appearance:
|
|
147
|
+
|
|
148
|
+
[source,yaml]
|
|
149
|
+
----
|
|
150
|
+
connectors:
|
|
151
|
+
association:
|
|
152
|
+
arrow:
|
|
153
|
+
type: "open_arrow"
|
|
154
|
+
size: 8
|
|
155
|
+
line:
|
|
156
|
+
stroke_width: 1
|
|
157
|
+
stroke: "#000000"
|
|
158
|
+
labels:
|
|
159
|
+
show_role_names: true
|
|
160
|
+
show_cardinality: true
|
|
161
|
+
----
|
|
162
|
+
|
|
163
|
+
== API Usage
|
|
164
|
+
|
|
165
|
+
=== DiagramPresenter
|
|
166
|
+
|
|
167
|
+
The main class for generating diagrams:
|
|
168
|
+
|
|
169
|
+
[source,ruby]
|
|
170
|
+
----
|
|
171
|
+
presenter = Lutaml::UmlRepository::Presenters::DiagramPresenter.new(
|
|
172
|
+
diagram,
|
|
173
|
+
repository,
|
|
174
|
+
config_path: "custom_styles.yml" # Optional
|
|
175
|
+
)
|
|
176
|
+
|
|
177
|
+
# Generate SVG
|
|
178
|
+
svg = presenter.svg_output(
|
|
179
|
+
padding: 20, # Padding around diagram
|
|
180
|
+
background_color: "#ffffff", # Background color
|
|
181
|
+
grid_visible: false, # Show grid
|
|
182
|
+
interactive: false # Enable click handlers
|
|
183
|
+
)
|
|
184
|
+
----
|
|
185
|
+
|
|
186
|
+
=== Accessing Diagram Data
|
|
187
|
+
|
|
188
|
+
[source,ruby]
|
|
189
|
+
----
|
|
190
|
+
# Get all diagrams
|
|
191
|
+
diagrams = repo.packages_index.flat_map(&:diagrams).compact
|
|
192
|
+
|
|
193
|
+
# Find specific diagram
|
|
194
|
+
diagram = diagrams.find { |d| d.xmi_id.include?("EAID_12345") }
|
|
195
|
+
|
|
196
|
+
# Get diagram info
|
|
197
|
+
puts "Name: #{diagram.name}"
|
|
198
|
+
puts "Type: #{diagram.diagram_type}"
|
|
199
|
+
puts "Elements: #{diagram.diagram_objects.count}"
|
|
200
|
+
puts "Links: #{diagram.diagram_links.count}"
|
|
201
|
+
----
|
|
202
|
+
|
|
203
|
+
== Architecture
|
|
204
|
+
|
|
205
|
+
=== Component Overview
|
|
206
|
+
|
|
207
|
+
[source]
|
|
208
|
+
----
|
|
209
|
+
DiagramPresenter
|
|
210
|
+
│
|
|
211
|
+
├─> LayoutEngine (coordinate conversion)
|
|
212
|
+
├─> StyleResolver (style merging)
|
|
213
|
+
├─> SvgRenderer (SVG generation)
|
|
214
|
+
│ │
|
|
215
|
+
│ ├─> ElementRenderers (class, package, etc.)
|
|
216
|
+
│ └─> PathBuilder (connector routing)
|
|
217
|
+
│
|
|
218
|
+
└─> Configuration (YAML config loading)
|
|
219
|
+
----
|
|
220
|
+
|
|
221
|
+
=== Key Components
|
|
222
|
+
|
|
223
|
+
* **DiagramPresenter**: Coordinates the entire rendering pipeline
|
|
224
|
+
* **LayoutEngine**: Converts EA coordinates (left/top/right/bottom) to SVG (x/y/width/height)
|
|
225
|
+
* **StyleResolver**: Merges EA data + user config + defaults with priority system
|
|
226
|
+
* **SvgRenderer**: Generates complete SVG with layers (background, connectors, elements)
|
|
227
|
+
* **PathBuilder**: Parses EA geometry strings and builds SVG paths
|
|
228
|
+
* **ElementRenderers**: Render specific element types (classes, packages, etc.)
|
|
229
|
+
|
|
230
|
+
== Coordinate System
|
|
231
|
+
|
|
232
|
+
EA uses a different coordinate system than SVG:
|
|
233
|
+
|
|
234
|
+
* **EA**: Uses left/top/right/bottom for element bounds
|
|
235
|
+
* **SVG**: Uses x/y/width/height
|
|
236
|
+
|
|
237
|
+
The LayoutEngine automatically converts between these:
|
|
238
|
+
|
|
239
|
+
[source,ruby]
|
|
240
|
+
----
|
|
241
|
+
# EA coordinates
|
|
242
|
+
diagram_object.left # Left edge
|
|
243
|
+
diagram_object.top # Top edge
|
|
244
|
+
diagram_object.right # Right edge
|
|
245
|
+
diagram_object.bottom # Bottom edge
|
|
246
|
+
|
|
247
|
+
# Converted to SVG
|
|
248
|
+
{
|
|
249
|
+
x: left,
|
|
250
|
+
y: top,
|
|
251
|
+
width: right - left,
|
|
252
|
+
height: bottom - top
|
|
253
|
+
}
|
|
254
|
+
----
|
|
255
|
+
|
|
256
|
+
== Troubleshooting
|
|
257
|
+
|
|
258
|
+
=== Diagrams Not Appearing
|
|
259
|
+
|
|
260
|
+
1. Check that diagrams exist in the QEA file:
|
|
261
|
+
+
|
|
262
|
+
[source,bash]
|
|
263
|
+
----
|
|
264
|
+
lutaml diagram list model.qea
|
|
265
|
+
----
|
|
266
|
+
|
|
267
|
+
2. Verify diagram has visual elements:
|
|
268
|
+
+
|
|
269
|
+
[source,ruby]
|
|
270
|
+
----
|
|
271
|
+
puts "Objects: #{diagram.diagram_objects.count}"
|
|
272
|
+
puts "Links: #{diagram.diagram_links.count}"
|
|
273
|
+
----
|
|
274
|
+
|
|
275
|
+
=== Colors Not Matching EA
|
|
276
|
+
|
|
277
|
+
1. Check if EA data exists in diagram_object.style
|
|
278
|
+
2. Verify configuration file is being loaded
|
|
279
|
+
3. Check stereotype names match exactly (case-sensitive)
|
|
280
|
+
|
|
281
|
+
=== Elements Positioned Incorrectly
|
|
282
|
+
|
|
283
|
+
EA coordinates may have negative values. The LayoutEngine should normalize these, but you can verify:
|
|
284
|
+
|
|
285
|
+
[source,ruby]
|
|
286
|
+
----
|
|
287
|
+
diagram.diagram_objects.each do |obj|
|
|
288
|
+
puts "#{obj.object_xmi_id}: (#{obj.left}, #{obj.top})"
|
|
289
|
+
end
|
|
290
|
+
----
|
|
291
|
+
|
|
292
|
+
== Performance
|
|
293
|
+
|
|
294
|
+
Diagram generation is optimized for both single and batch operations:
|
|
295
|
+
|
|
296
|
+
* **Single diagram**: <1 second
|
|
297
|
+
* **Batch (100 diagrams)**: ~2 minutes
|
|
298
|
+
* **Memory usage**: Modest, processes one diagram at a time
|
|
299
|
+
|
|
300
|
+
For large batches, diagrams are generated and saved incrementally to avoid memory issues.
|
|
301
|
+
|
|
302
|
+
== Future Enhancements
|
|
303
|
+
|
|
304
|
+
Planned features for future releases:
|
|
305
|
+
|
|
306
|
+
* **PNG/PDF export**: Generate raster and PDF formats
|
|
307
|
+
* **Interactive diagrams**: Click handlers and tooltips
|
|
308
|
+
* **Diagram comparison**: Visual diff between versions
|
|
309
|
+
* **Custom themes**: Pre-built color schemes
|
|
310
|
+
* **Legend generation**: Auto-generate color legends
|
|
311
|
+
|
|
312
|
+
== See Also
|
|
313
|
+
|
|
314
|
+
* link:diagram-configuration[Complete Configuration Reference]
|
|
315
|
+
* link:../README[LutaML README]
|
|
316
|
+
* link:../config/diagram_styles.yml[Default Styles]
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
= Guides
|
|
2
|
+
:nav_order: 3
|
|
3
|
+
:has_children: true
|
|
4
|
+
|
|
5
|
+
== Overview
|
|
6
|
+
|
|
7
|
+
This section provides task-oriented how-to documentation for common workflows and operations with LutaML. Each guide focuses on accomplishing a specific goal.
|
|
8
|
+
|
|
9
|
+
== Command-Line Usage
|
|
10
|
+
|
|
11
|
+
=== link:../cli-usage[Complete CLI Guide]
|
|
12
|
+
|
|
13
|
+
Comprehensive guide to using LutaML's command-line interface, including all commands, options, and workflows.
|
|
14
|
+
|
|
15
|
+
== Diagram Generation
|
|
16
|
+
|
|
17
|
+
=== link:diagram-generation[Generating EA-Style Diagrams]
|
|
18
|
+
|
|
19
|
+
Learn how to generate pixel-perfect SVG diagrams from Enterprise Architect models with full styling support.
|
|
20
|
+
|
|
21
|
+
**Topics covered:**
|
|
22
|
+
|
|
23
|
+
* EA-style colors and fonts
|
|
24
|
+
* Configurable styling system
|
|
25
|
+
* Multiple connector types
|
|
26
|
+
* Lazy-loading in SPA mode
|
|
27
|
+
|
|
28
|
+
== Modeling Languages
|
|
29
|
+
|
|
30
|
+
=== link:uml-modeling[UML Modeling with LutaML]
|
|
31
|
+
|
|
32
|
+
Work with UML class diagrams using LutaML's native syntax and conversion tools.
|
|
33
|
+
|
|
34
|
+
=== link:sysml-modeling[SysML Modeling with LutaML]
|
|
35
|
+
|
|
36
|
+
Extend UML with SysML concepts for systems engineering and MBSE workflows.
|
|
37
|
+
|
|
38
|
+
== Configuration & Customization
|
|
39
|
+
|
|
40
|
+
=== link:../references/configuration/diagram-styles[Configuring Diagram Styles]
|
|
41
|
+
|
|
42
|
+
Learn how to customize diagram colors, fonts, and styling using YAML configuration files.
|
|
43
|
+
|
|
44
|
+
=== link:../references/configuration/package-metadata[Setting Up Package Metadata]
|
|
45
|
+
|
|
46
|
+
Configure XML namespaces, schema locations, and other metadata for UML packages.
|
|
47
|
+
|
|
48
|
+
=== link:repository-management[Managing Repositories]
|
|
49
|
+
|
|
50
|
+
Best practices for organizing, versioning, and maintaining LUR repositories.
|
|
51
|
+
|
|
52
|
+
== Parsing Guides
|
|
53
|
+
|
|
54
|
+
=== link:parsing/qea-parsing[Parsing QEA Files]
|
|
55
|
+
|
|
56
|
+
How to parse Enterprise Architect QEA files directly from SQLite databases.
|
|
57
|
+
|
|
58
|
+
**Topics covered:**
|
|
59
|
+
|
|
60
|
+
* File validation
|
|
61
|
+
* Performance optimization
|
|
62
|
+
* Handling large models
|
|
63
|
+
* Error recovery
|
|
64
|
+
|
|
65
|
+
=== link:parsing/xmi-parsing[Parsing XMI Files]
|
|
66
|
+
|
|
67
|
+
Working with OMG XMI format exports from various UML tools.
|
|
68
|
+
|
|
69
|
+
**Topics covered:**
|
|
70
|
+
|
|
71
|
+
* XMI format detection
|
|
72
|
+
* Namespace handling
|
|
73
|
+
* Profile support
|
|
74
|
+
* Validation
|
|
75
|
+
|
|
76
|
+
=== link:parsing/express-parsing[Parsing EXPRESS Schemas]
|
|
77
|
+
|
|
78
|
+
Handle ISO 10303-11 EXPRESS schemas used in industrial standards.
|
|
79
|
+
|
|
80
|
+
**Topics covered:**
|
|
81
|
+
|
|
82
|
+
* Schema file parsing
|
|
83
|
+
* Cache files
|
|
84
|
+
* Model transformation
|
|
85
|
+
* Integration with Expressir
|
|
86
|
+
|
|
87
|
+
== Working with Models
|
|
88
|
+
|
|
89
|
+
=== Querying and Search
|
|
90
|
+
|
|
91
|
+
* Full-text search across models
|
|
92
|
+
* Using the query DSL effectively
|
|
93
|
+
* Filtering by properties
|
|
94
|
+
* Pattern matching
|
|
95
|
+
|
|
96
|
+
=== Export and Integration
|
|
97
|
+
|
|
98
|
+
* Exporting to CSV/JSON/YAML
|
|
99
|
+
* Generating documentation
|
|
100
|
+
* Integration with other tools
|
|
101
|
+
* Custom exporters
|
|
102
|
+
|
|
103
|
+
== Advanced Topics
|
|
104
|
+
|
|
105
|
+
=== Performance Optimization
|
|
106
|
+
|
|
107
|
+
* LUR caching strategies
|
|
108
|
+
* Lazy loading
|
|
109
|
+
* Memory management
|
|
110
|
+
* Batch processing
|
|
111
|
+
|
|
112
|
+
=== Extending LutaML
|
|
113
|
+
|
|
114
|
+
* Custom parsers
|
|
115
|
+
* Plugin development
|
|
116
|
+
* Transformer creation
|
|
117
|
+
* Renderer extensions
|
|
118
|
+
|
|
119
|
+
== Guide Format
|
|
120
|
+
|
|
121
|
+
Each guide follows this structure:
|
|
122
|
+
|
|
123
|
+
1. **Purpose** - What this guide helps you accomplish
|
|
124
|
+
2. **Prerequisites** - What you need to know or have installed
|
|
125
|
+
3. **Concepts** - Key concepts for understanding
|
|
126
|
+
4. **Step-by-Step Instructions** - Detailed walkthrough
|
|
127
|
+
5. **Examples** - Real-world examples
|
|
128
|
+
6. **Troubleshooting** - Common issues and solutions
|
|
129
|
+
7. **References** - Related documentation
|
|
130
|
+
|
|
131
|
+
== Related Sections
|
|
132
|
+
|
|
133
|
+
* link:../tutorials[Tutorials] - Step-by-step learning paths
|
|
134
|
+
* link:../pages[Core Topics] - Fundamental concepts
|
|
135
|
+
* link:../references[Reference] - Detailed specifications
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Parsing Guides
|
|
3
|
+
parent: Guides
|
|
4
|
+
nav_order: 20
|
|
5
|
+
has_children: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
= Parsing Guides
|
|
9
|
+
|
|
10
|
+
Comprehensive guides for parsing different model formats with LutaML.
|
|
11
|
+
|
|
12
|
+
== Available Parsing Guides
|
|
13
|
+
|
|
14
|
+
=== link:express-parsing[EXPRESS Parsing]
|
|
15
|
+
|
|
16
|
+
Guide for parsing ISO 10303-11 EXPRESS schemas used in industrial standards.
|
|
17
|
+
|
|
18
|
+
**Topics covered:**
|
|
19
|
+
|
|
20
|
+
* Schema file parsing with Expressir
|
|
21
|
+
* Cache file handling
|
|
22
|
+
* Model transformation
|
|
23
|
+
* Integration examples
|
|
24
|
+
|
|
25
|
+
=== link:xmi-parsing[XMI Parsing]
|
|
26
|
+
|
|
27
|
+
Guide for parsing OMG XMI format exports from UML tools.
|
|
28
|
+
|
|
29
|
+
**Topics covered:**
|
|
30
|
+
|
|
31
|
+
* XMI format detection
|
|
32
|
+
* Namespace handling
|
|
33
|
+
* Profile support
|
|
34
|
+
* Validation techniques
|
|
35
|
+
|
|
36
|
+
=== QEA Parsing
|
|
37
|
+
|
|
38
|
+
Enterprise Architect QEA format parsing is covered in multiple locations:
|
|
39
|
+
|
|
40
|
+
* link:../../pages/concepts/qea-parsing[Concept Overview] - Understanding QEA
|
|
41
|
+
* link:../../references/formats/qea-structure[Format Specification] - Complete details
|
|
42
|
+
* link:../../tutorials/getting-started[Tutorial] - Step-by-step walkthrough
|
|
43
|
+
|
|
44
|
+
== Common Parsing Patterns
|
|
45
|
+
|
|
46
|
+
=== Using the Unified Parser
|
|
47
|
+
|
|
48
|
+
LutaML provides a single entry point for all formats:
|
|
49
|
+
|
|
50
|
+
[source,ruby]
|
|
51
|
+
----
|
|
52
|
+
require "lutaml"
|
|
53
|
+
|
|
54
|
+
# Automatically detects format and parses
|
|
55
|
+
document = Lutaml::Parser.parse([File.new("model.xmi")])
|
|
56
|
+
document = Lutaml::Parser.parse([File.new("model.qea")])
|
|
57
|
+
document = Lutaml::Parser.parse([File.new("schema.exp")])
|
|
58
|
+
----
|
|
59
|
+
|
|
60
|
+
=== Error Handling
|
|
61
|
+
|
|
62
|
+
All parsers follow consistent error handling:
|
|
63
|
+
|
|
64
|
+
[source,ruby]
|
|
65
|
+
----
|
|
66
|
+
begin
|
|
67
|
+
document = Lutaml::Parser.parse([File.new("model.xmi")])
|
|
68
|
+
rescue Lutaml::ParseError => e
|
|
69
|
+
puts "Parse error: #{e.message}"
|
|
70
|
+
end
|
|
71
|
+
----
|
|
72
|
+
|
|
73
|
+
== Related Documentation
|
|
74
|
+
|
|
75
|
+
* link:../../references/formats[Format Specifications] - Technical details
|
|
76
|
+
* link:../../tutorials/getting-started[Getting Started] - Basic parsing tutorial
|
|
77
|
+
* link:../../references/api/parsers[Parser API Reference] - Complete API docs
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: SysML Modeling with LutaML
|
|
3
|
+
parent: Guides
|
|
4
|
+
nav_order: 12
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
= Lutaml::Sysml
|
|
8
|
+
|
|
9
|
+
Lutaml::Sysml extends Lutaml::Uml by adding concepts relevant to systems
|
|
10
|
+
engineering, supporting a Model-Based Systems Engineering (MBSE) approach
|
|
11
|
+
throughout the entire system lifecycle.
|
|
12
|
+
|
|
13
|
+
== Overview
|
|
14
|
+
|
|
15
|
+
SysML (Systems Modeling Language) is a general-purpose modeling language for systems engineering applications. It supports the specification, analysis, design, verification, and validation of complex systems that may include hardware, software, data, personnel, procedures, and facilities.
|
|
16
|
+
|
|
17
|
+
== Usage
|
|
18
|
+
|
|
19
|
+
Lutaml::Sysml provides specialized diagram types and elements for systems engineering modeling, including:
|
|
20
|
+
|
|
21
|
+
* Requirements diagrams
|
|
22
|
+
* Block definition diagrams
|
|
23
|
+
* Internal block diagrams
|
|
24
|
+
* Parametric diagrams
|
|
25
|
+
* Activity diagrams
|
|
26
|
+
* Sequence diagrams
|
|
27
|
+
* State machine diagrams
|
|
28
|
+
* Use case diagrams
|
|
29
|
+
|
|
30
|
+
== Integration with UML
|
|
31
|
+
|
|
32
|
+
Since SysML extends UML, all UML modeling capabilities are available in SysML models. The extension adds systems engineering-specific stereotypes, properties, and diagram types while maintaining compatibility with the UML foundation.
|
|
33
|
+
|
|
34
|
+
== See Also
|
|
35
|
+
|
|
36
|
+
* link:uml-modeling[UML Modeling Guide]
|
|
37
|
+
* link:../README[LutaML Documentation]
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: UML Modeling with LutaML
|
|
3
|
+
parent: Guides
|
|
4
|
+
nav_order: 11
|
|
5
|
+
---
|
|
6
|
+
|
|
1
7
|
= Lutaml::Uml
|
|
2
8
|
|
|
3
9
|
Lutaml::Uml is a language for specifying UML class diagrams and a tool for
|
|
@@ -5,7 +11,7 @@ converting it into various different formats.
|
|
|
5
11
|
|
|
6
12
|
== Language
|
|
7
13
|
|
|
8
|
-
See link:lutaml_syntax
|
|
14
|
+
See link:lutaml_syntax[LutaML syntax]
|
|
9
15
|
|
|
10
16
|
== Usages
|
|
11
17
|
|
|
@@ -102,7 +108,7 @@ diagram Address {
|
|
|
102
108
|
caption ''
|
|
103
109
|
association {
|
|
104
110
|
owner_type aggregation
|
|
105
|
-
owner
|
|
111
|
+
owner
|
|
106
112
|
member_type direct
|
|
107
113
|
member AddressComponent
|
|
108
114
|
}
|