Modelica URI到文件的映射
我试图理解URI到文件的映射。让我们以这个URI为例:Modelica URI到文件的映射,modelica,Modelica,我试图理解URI到文件的映射。让我们以这个URI为例: modelica://foo.bar/file.png file.png有两个可能的位置是否正确 可能是 $MODELICAPATH/foo/file.png如果文件$MODELICAPATH/foo/bar.mo存在 或 $MODELICAPATH/foo/bar/file.png如果文件$MODELICAPATH/foo/bar/package.mo存在。可能是帮助的“13.2.3外部资源”部分 对您的示例稍作修改有助于理解其工作原理。
modelica://foo.bar/file.png
file.png有两个可能的位置是否正确
可能是
$MODELICAPATH/foo/file.png
如果文件$MODELICAPATH/foo/bar.mo
存在
或
$MODELICAPATH/foo/bar/file.png
如果文件$MODELICAPATH/foo/bar/package.mo
存在。可能是帮助的“13.2.3外部资源”部分
对您的示例稍作修改有助于理解其工作原理。使用modelica://foo/bar/file.png
将foo
称为顶级包/库。在模拟环境中加载路径时,将解析路径库。如果按层次存储库(即每个包表示为文件夹,每个模型表示为文件)bar
将是库根目录中的子文件夹file.png将是bar
中的文件名
如果包存储为单个文件,则这是不同的,但由于这有几个缺点,我建议使用分层选项
如果加载了库,则无需编辑$ModelicaPath$
通常,图片等被放入图书馆的资源文件夹中。此文件夹可以包含其他文件夹,如数据
,图像
,脚本
。这是否意味着我对上述示例的解释是正确的?我不是在写一个包,而是一个文档浏览器,需要正确解析所有类型的链接。它可以是第二个变体,即使foo/bar/package.mo不存在(如链接中所述)。实际上,它不可能是上述的第一个变体,因为modelica://foo/file.png 应该引用其他文件。对不起,我不明白。我完全糊涂了。规范中说,路径是相对于包进行解释的。我的理解是:如果类foo.bar
存储在foo/bar.mo
中,那么file.png
必须相对于路径foo/
,即foo/file.png
。但如果foo.bar
存储在foo/bar/package.mo
中,则它与foo/bar/
相关,即foo/bar/file.png
。这个解释中的错误在哪里?文本“相对于包”有点不清楚-但是文本的其余部分清楚地表明,如果foo.bar存储在foo/package.mo中,那么modelica//foo.bar/file.png仍然可以存储为foo/bar/file.png,并且不能存储为foo/file.png,因为这会与modelica://foo/file.png. 正如MarkusA所写,一个更好的想法是使用一个Resources-folder。因此“相对于包”是指“相对于包的顶级目录”,这里的package一词与关键字package无关。