Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

nXML mode requires that the schema associated with a document instance be expressed in the Relax NG Compact Syntax. Relax NG is a schema language for XML that is in the final stages of ISO standardization. I've transformed the XSD-notation pipeline schema into Relax NG Compact notation ; and attached it looks like this:

No Format

default namespace = "http://glast-ground.slac.stanford.edu/pipeline"
namespace xsi = "http://www.w3.org/2001/XMLSchema-instance"

start = pipeline

pipeline = element pipeline {
	attribute xsi:schemaLocation { xsd:string },
	name,
	type,
	dataset-base-path,
	run-log-path,
	executable+,
	batch-job-configuration+,
	file*,
	foreign-input-file*,
	processing-step+
}

name = element name {
	xsd:string { minLength="1" maxLength="30" }
}
type = element type { 
	xsd:NMTOKEN "SimReconDigi" |
	xsd:NMTOKEN "test" |
	xsd:NMTOKEN "Analysis" |
	xsd:NMTOKEN "Reconstruction" |
	xsd:NMTOKEN "Digitization" |
	xsd:NMTOKEN "Report" |
	xsd:NMTOKEN "SystemTest" |
	xsd:NMTOKEN "Simulation" | 
	xsd:NMTOKEN "Reprocessing" |
	xsd:NMTOKEN "Conversion"
}
dataset-base-path = element dataset-base-path {
	xsd:string { minLength = "0" maxLength = "200" }
}
run-log-path = element run-log-path {
	xsd:string { minLength = "1" maxLength = "200" }
}
executable = element executable {
	xsd:string { minLength = "1" maxLength = "200" } ,
	attribute name { xsd:string { minLength = "1" maxLength = "20" } }, 
	attribute version { xsd:string { minLength = "1" maxLength = "20" } }
}
batch-job-configuration = element batch-job-configuration {
	element working-directory { xsd:string { minLength = "0" maxLength = "200" } },
	element log-file-path { xsd:string { minLength = "1" maxLength = "200" } },
	attribute name { xsd:string },
	attribute queue {
		xsd:NMTOKEN "long" |
		xsd:NMTOKEN "short" |
		xsd:NMTOKEN "xlong" |
		xsd:NMTOKEN "medium" |
		xsd:NMTOKEN "xxl" |
		xsd:NMTOKEN "express"
	},
	attribute group {
		xsd:NMTOKEN "none" |
		xsd:NMTOKEN "glastgrp" |
		xsd:NMTOKEN "glastdata"
	}
}
file = element file {
	xsd:string,
	attribute name { xsd:string { minLength = "1" maxLength = "30" } },
	attribute type {
		xsd:NMTOKEN "MC" |
		xsd:NMTOKEN "Analysis" |
		xsd:NMTOKEN "text" |
		xsd:NMTOKEN "LDF" |
		xsd:NMTOKEN "DIGI" |
		xsd:NMTOKEN "RAW" |
		xsd:NMTOKEN "rcReport" |
		xsd:NMTOKEN "merit" |
		xsd:NMTOKEN "svac" |
		xsd:NMTOKEN "histogram" |
		xsd:NMTOKEN "script" |
		xsd:NMTOKEN "log" |
		xsd:NMTOKEN "ntuple" |
		xsd:NMTOKEN "tree" |
		xsd:NMTOKEN "RECON"
	},
	attribute file-type {
		xsd:NMTOKEN "jobOpt" |
		xsd:NMTOKEN "root" |
		xsd:NMTOKEN "txt" |
		xsd:NMTOKEN "fits" |
		xsd:NMTOKEN "pl" |
		xsd:NMTOKEN "csh" |
		xsd:NMTOKEN "tgz" |
		xsd:NMTOKEN "xml" |
		xsd:NMTOKEN "sh" |
		xsd:NMTOKEN "tar" |
		xsd:NMTOKEN "gz" |
		xsd:NMTOKEN "tar.gz" |
		xsd:NMTOKEN "pdf" |
		xsd:NMTOKEN "ps" |
		xsd:NMTOKEN "html" |
		xsd:NMTOKEN "tex" 
	}
}
foreign-input-file = element foreign-input-file {
	xsd:string,
	attribute name { xsd:string { minLength = "1" maxLength = "30" } },
	attribute pipeline { xsd:string { minLength = "1" maxLength = "30" } },
	attribute file { xsd:string { minLength = "1" maxLength = "30" } }
}
processing-step = element processing-step {
	element input-file { attribute name { xsd:string } }*,
	element output-file { attribute name { xsd:string } }*,
	attribute name { xsd:string },
	attribute executable { xsd:string },
	attribute batch-job-configuration { xsd:string }
}

...

to this page. The following procedure will allow nXML mode to associate the pipeline schema with your pipeline configuration files:

  • Place this pipeline.rnc file in the directory ~/site-lisp/nxml/schema

...

  • .
  • Replace ~/site-lisp/nxml/schema/schemas.xml with this modified schemas.xml.

Usage

nXML mode continuously validates your document against the schema as you type, highlighting portions of the document that are invalid. Use the 'C-Enter' or 'M-Tab' keystrokes to complete the current element or attribute you are typing. If more than one possible completion is available, you will be presented with a list. This site provides more detailed documentation the modified version also attached to this page.