...
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.