Hi Sreevani

In ObjectScript you can include a double-quote character inside a quoted string by doubling it up.

set teststr ="<book id=""bk105""><author type=""old"">Corets, Eva</author><title>The Sundered Grail</title><genre>Fantasy</genre></book>"

Since in this example, your string clearly contains html you might find that using single-quotes inside your string would be cleaner and easier to read, making it more maintainable:

set teststr ="<book id='bk105'><author type='old'>Corets, Eva</author><title>The Sundered Grail</title><genre>Fantasy</genre></book>"

George

Hi Con

I think your problem might be that background-image and background-repeat are CSS properties, not HTML attributes.  Color works because it is an HTML attribute (although you should use the CSS style property for this as well these days).

Try:

<xsl:if test="$Value = 400">
     <xsl:attribute name='style'>background-image: url("images/trash-icon.png"); background-repeat: no-repeat;</xsl:attribute>
     <xsl:attribute name='color'>#ffffff</xsl:attribute>
</xsl:if>

If that works then you might want to consider using a class attribute to reference a stylesheet rather than including a style attribute directly, but that's another matter.

George

Muhammad

The VS Code ecosystem for Objectscript is evolving fast.  And because it is community driven there is plenty of choice of extensions.

If you are likely to be working with more than one IRIS server then you should check out the InterSystems Server Manager extension.  And for code editing you have a choice of the basic vscode-objectscript or Serenji.

Then for debugging there is some support in the vscode-objectscript extension or you can purchase the premium debugger option for Serenji.

But as Nigel says, check out the VS Code market place, there are quite a number of interesting and useful extensions to choose from depending on your needs.

George

Evgenli

When a label begins with % it is often a sign that it is something that has been generated as part of the class compilation process.

In this case %Construct is the generated constructor code for the class.  More specifically, if any property in your class definition has an initial value specification then the %Construct code will be generated in your .int routine and will initialise the values of these properties.

By default, the .int code for the class %DeepSee.ResultSet.cls will not be present on your system, but you can create it by recompiling this class with the k flag which indicates that .int code should be kept.

Do Compile^%apiOBJ("%DeepSee.ResultSet","k")

Once you have re-compiled this class then you should be able to inspect the .int code and locate the line that is responsible for your <PROTECT> error.

Do you have a multi-rooted Workspace?  Currently gj :: locate only works on the first top-level folder in a workspace (multi-folder capability coming soon).

What is the first top-level folder in your workspace?  Is it a folder on your local file system or a remote connection to an IRIS server using  isfs or isfs-readonly?

If it's a local folder, have you exported all of your source files?