NativeDICOM.rnc 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. default namespace="http://dicom.nema.org/PS3.19/models/NativeDICOM"
  2. # This schema was created as an intermediary, a means of describing
  3. # native binary encoded DICOM objects as XML Infosets, thus allowing
  4. # one to manipulate binary DICOM objects using familiar XML tools.
  5. # As such, the schema is designed to facilitate a simple, mechanical,
  6. # bi-directional translation between binary encoded DICOM and XML-like
  7. # constructs without constraints, and to simplify identifying portions
  8. # of a DICOM object using XPath statements.
  9. #
  10. # Since this schema has minimal type checking, it is neither intended
  11. # to be used for any operation that involves hand coding, nor to
  12. # describe a definitive, fully validating encoding of DICOM concepts
  13. # into XML, as what one might use, for example, in a robust XML
  14. # database system or in XML-based forms, though it may be used
  15. # as a means for translating binary DICOM Objects into such a form
  16. # (e.g. through an XSLT script).
  17. start = element NativeDicomModel { DicomDataSet }
  18. # A DICOM Data Set is as defined in PS3.5. It does not appear
  19. # as an XML Element, since it does not appear in the binary encoded
  20. # DICOM objects. It exists here merely as a documentation aid.
  21. DicomDataSet = DicomAttribute*
  22. DicomAttribute = element DicomAttribute {
  23. Tag, VR, Keyword?, PrivateCreator?,
  24. ( BulkData | Value+ | Item+ | PersonName+ )?
  25. }
  26. BulkData = element BulkData{ UUID }
  27. Value = element Value { Number, xsd:string }
  28. Item = element Item { Number, DicomDataSet }
  29. PersonName = element PersonName {
  30. Number,
  31. element SingleByte { NameComponents }?,
  32. element Ideographic { NameComponents }?,
  33. element Phonetic { NameComponents }?
  34. }
  35. NameComponents =
  36. element FamilyName {xsd:string}?,
  37. element GivenName {xsd:string}?,
  38. element MiddleName {xsd:string}?,
  39. element NamePrefix {xsd:string}?,
  40. element NameSuffix {xsd:string}?
  41. # keyword is the attribute tag from PS3.6
  42. # (derived from the DICOM Attribute's name)
  43. Keyword = attribute keyword { xsd:token }
  44. # canonical XML definition of Hex, with lowercase letters disallowed
  45. Tag = attribute tag { xsd:string{ minLength="8" maxLength="8" pattern="[0-9A-F]{8}" } }
  46. VR = attribute vr { "AE" | "AS" | "AT"| "CS" | "DA" | "DS" | "DT" | "FL" | "FD"
  47. | "IS" | "LO" | "LT" | "OB" | "OF" | "OW" | "PN" | "SH" | "SL"
  48. | "SQ" | "SS" | "ST" | "TM" | "UI" | "UL" | "UN" | "US" | "UT" }
  49. PrivateCreator = attribute privateCreator{ xsd:string }
  50. UUID = attribute uuid { xsd:string }
  51. Number = attribute number { xsd:positiveInteger }