http://www.protogeni.net/trac/protogeni/wiki/RSpecExtensions2
This is not ideal, but as far as I know, there is no way to work around it
with standard tools
---
Broad audience or deep message: Pick one.
On Fri, 2 Mar 2012, Tom Mitchell wrote:
> Hi,
> I'm trying to write an RSpec extension and I need a little help. I'd like to
> add a new tag within the services tag of a node in the GENI v3 request
> RSpec. I intend for it to work like this:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <rspec xmlns="http://www.geni.net/resources/rspec/3"
> ᅵ ᅵ ᅵ ᅵxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> ᅵ ᅵ ᅵ ᅵxmlns:orca="http://www.gpolab.bbn.com/internal/userdir/tmitchel"
> ᅵ ᅵ ᅵ ᅵxsi:schemaLocation="http://www.geni.net/resources/rspec/3
> ᅵ ᅵ ᅵ ᅵ ᅵ ᅵ ᅵ ᅵ ᅵ ᅵ ᅵ ᅵ ᅵ ᅵhttp://www.geni.net/resources/rspec/3/request.xsd
> ᅵ ᅵ ᅵ ᅵ ᅵ ᅵ ᅵ ᅵ ᅵ ᅵ ᅵ ᅵ ᅵ ᅵhttp://example.com/rspec/extension/
> ᅵ ᅵ ᅵ ᅵ ᅵ ᅵ ᅵ ᅵ ᅵ ᅵ ᅵ ᅵ ᅵ ᅵhttp://example.com/rspec/extension/foo.xsd"
> ᅵ ᅵ ᅵ ᅵtype="request" >
> ᅵ <node client_id="node">
> ᅵ ᅵ <services>
> ᅵ ᅵ ᅵ <example:velocity_script>
> #!/bin/sh
> ᅵ wget http://www.geni.net/myconf.xml > /tmp/wget.log
> #
> ᅵ wget http://www.geni.net/mysetup.sh > /tmp/setup.log
> ᅵ ᅵ ᅵ </example:velocity_script>
> ᅵ ᅵ </services>
> ᅵ </node>
> </rspec>
>
>
> I followed alongwithᅵhttp://www.protogeni.net/trac/protogeni/wiki/RSpecCreatingExtensionᅵan
> d generated a RelaxNG Compact file for the tag:
>
> default namespace = "http://example.com/rspec/extension/"
> Services = element velocity_script { text }
> start = Services
>
>
> This works fine, except it doesn't require the tag to be a child of the
> services tag. That's where I've hit a wall. Here's my attempt, which doesn't
> seem to be doing what I want:
>
> namespace geni = "http://www.geni.net/resources/rspec/3"
> default namespace = "http://example.com/rspec/extension/"
>
> RSpec =ᅵ
> element geni:rspec {
> ᅵelement geni:node { Node }*