Hello everyone,

Sometime ago I sent a patch changing the XML schema to add GTK support for 
libvirt. As the type for one path argument, I used the <text/> type, simply 
copying the similar approach from another place in the XML schema definition. I 
was told that it's not the best way to use the <text/> type for paths and that 
absFilePath, a defined basic type for paths, should be used instead.

After this, I decided to fix this in a place where I had seen the same 
approach, too. After further investigation, I found a lot more places where the 
<text/> type is used for paths. Moreover, I found out that we have at least 4 
type definitions for paths (files and directories). Some of these types accept 
simply everything, others paths starting with "/" or even Windows-style disk 
names.

  <define name="filePath">
    <data type="string">
      <param name="pattern">.+</param>
    </data>
  </define>

  <define name="dirPath">
    <data type="string">
      <param name="pattern">.+</param>
    </data>
  </define>

  <define name="absFilePath">
    <data type="string">
      <param name="pattern">(/|[a-zA-Z]:\\).+</param>
    </data>
  </define>

  <define name="absDirPath">
    <data type="string">
      <param name="pattern">/.*</param>
    </data>
  </define>

According to this, I have the following questions:

1. Do we allow users to use relative paths, or MUST all paths be absolute?

2. Do we have to accept Windows-style paths everywhere?

3. Do we need to have different types for directories? For example, in some 
places, the filePath type is used for directory parameters.

And as a last question, do we want to unify the basic types related to paths to 
maintain the schemas more consistent?


Kirill

Reply via email to