X12Validator Module
Properties Methods Events Config Settings Errors
The X12Validator module validates X12 documents against the specified standard, ensuring compliance and correctness.
Syntax
EDISDK.X12Validator
Remarks
This component provides a simple way to validate an EDI document and obtain details about any validation errors.
Before calling Validate call LoadSchema to load the schema for the document to be validated. The schema defines many validation rules such as minimum and maximum lengths, minimum and maximum occurrences, and more. The validation performed by the class depends largely on the schema's definition.
When the Validate method is called the class will attempt to validate the document. If errors are found during validation the ValidationErrors property will be populated with details of each error.
Inspect the ValidationErrors property for information on any errors that were encountered.
Validation Example
validator.InputFile = @"C:\X12_Files\810_InvalidRepeat.txt";
validator.LoadSchema(@"C:\X12_Schemas\4010.xml", "810");
validator.Validate();
foreach (X12ValidationErrorDetail error in validator.ValidationErrors) {
Console.WriteLine(error.ErrorCode + ": " + error.ErrorMessage);
}
Property List
The following is the full list of the properties of the module with short descriptions. Click on the links for further details.
| Delimiters | Contains the delimiters for the EDI Document. |
| InputData | The EDI message, specified as a string. |
| InputFile | The file containing the EDI message. |
| ValidationErrors | Collection of validation errors for the current document. |
Method List
The following is the full list of the methods of the module with short descriptions. Click on the links for further details.
| Config | Sets or retrieves a configuration setting. |
| LoadSchema | Loads schema information from a file or string data. |
| Reset | Resets all properties to their default values. |
| Validate | Validate the EDI document and warn about any errors encountered. |
Event List
The following is the full list of the events fired by the module with short descriptions. Click on the links for further details.
| Error | Fires when a parsing error occurs. |
| ResolveSchema | Fires to request schema information for a specific transaction set. |
| ValidateWarning | Fires to warn about validation errors. |
Config Settings
The following is a list of config settings for the module with short descriptions. Click on the links for further details.
| InputFormat | The format of the input X12 document for validation. |
| MaxValidationErrors | The maximum number of validation errors to return. |
Delimiters Property (X12Validator Module)
Contains the delimiters for the EDI Document.
Syntax
public var delimiters: X12Delimiters { get {...} }
@property (nonatomic,readwrite,assign,getter=delimiterComponent,setter=setDelimiterComponent:) NSString* delimiterComponent; - (NSString*)delimiterComponent; - (void)setDelimiterComponent :(NSString*)newDelimiterComponent; @property (nonatomic,readwrite,assign,getter=delimiterElement,setter=setDelimiterElement:) NSString* delimiterElement; - (NSString*)delimiterElement; - (void)setDelimiterElement :(NSString*)newDelimiterElement; @property (nonatomic,readwrite,assign,getter=delimiterRepetition,setter=setDelimiterRepetition:) NSString* delimiterRepetition; - (NSString*)delimiterRepetition; - (void)setDelimiterRepetition :(NSString*)newDelimiterRepetition; @property (nonatomic,readwrite,assign,getter=delimiterSegment,setter=setDelimiterSegment:) NSString* delimiterSegment; - (NSString*)delimiterSegment; - (void)setDelimiterSegment :(NSString*)newDelimiterSegment;
Default Value
1
Remarks
This property contains the delimiters that will be used when parsing the X12 document. If the document uses delimiters other than the default, change the properties of this object to parse the document correctly.
This property is read-only.
InputData Property (X12Validator Module)
The EDI message, specified as a string.
Syntax
public var inputData: String { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=inputData,setter=setInputData:) NSString* inputData; - (NSString*)inputData; - (void)setInputData :(NSString*)newInputData;
Default Value
""
Remarks
Set this property to specify the input EDI message as a string. The message can then be parsed with Parse.
InputFile Property (X12Validator Module)
The file containing the EDI message.
Syntax
public var inputFile: String { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=inputFile,setter=setInputFile:) NSString* inputFile; - (NSString*)inputFile; - (void)setInputFile :(NSString*)newInputFile;
Default Value
""
Remarks
Set this property to specify the input EDI message as a file. The message can then be parsed with Parse.
If the file is not found or cannot be opened, an error will be returned.
Note: If both InputFile and InputData are set, InputData takes precedence.
ValidationErrors Property (X12Validator Module)
Collection of validation errors for the current document.
Syntax
public var validationErrors: Array<X12ValidationErrorDetail> { get {...} }
@property (nonatomic,readonly,assign,getter=validationErrorCount) int validationErrorCount; - (int)validationErrorCount; - (int)validationErrorColumn:(int)validationErrorIndex; - (int)validationErrorComponentIndex:(int)validationErrorIndex; - (int)validationErrorElementIndex:(int)validationErrorIndex; - (NSString*)validationErrorErrorCode:(int)validationErrorIndex; - (NSString*)validationErrorErrorMessage:(int)validationErrorIndex; - (int)validationErrorErrorType:(int)validationErrorIndex; - (int)validationErrorFGroupIndex:(int)validationErrorIndex; - (int)validationErrorInterchangeIndex:(int)validationErrorIndex; - (int)validationErrorLine:(int)validationErrorIndex; - (long long)validationErrorPosition:(int)validationErrorIndex; - (int)validationErrorSegmentIndex:(int)validationErrorIndex; - (NSString*)validationErrorSegmentTag:(int)validationErrorIndex; - (int)validationErrorTransactionSetIndex:(int)validationErrorIndex;
Default Value
1
Remarks
After calling Validate this property contains details of any validation errors. Validation errors are also accessible through the ValidateWarning event as the document is validated.
This property is read-only.
Config Method (X12Validator Module)
Sets or retrieves a configuration setting.
Syntax
- (NSString*)config:(NSString*)configurationString;
Remarks
Config is a generic method available in every class. It is used to set and retrieve configuration settings for the class.
These settings are similar in functionality to properties, but they are rarely used. In order to avoid "polluting" the property namespace of the class, access to these internal properties is provided through the Config method.
To set a configuration setting named PROPERTY, you must call Config("PROPERTY=VALUE"), where VALUE is the value of the setting expressed as a string. For boolean values, use the strings "True", "False", "0", "1", "Yes", or "No" (case does not matter).
To read (query) the value of a configuration setting, you must call Config("PROPERTY"). The value will be returned as a string.
LoadSchema Method (X12Validator Module)
Loads schema information from a file or string data.
Syntax
- (void)loadSchema:(NSString*)fileOrData :(NSString*)messagename;
Remarks
This method loads schema information for use when parsing, validating, and translating messages.
The FileOrData parameter can be set to the path of a file containing schema data, or can be set to the contents of a schema file directly.
MessageName can be set to the name of a specific message to load only the specified message's schema information. If left empty or set to "*", the entire schema will be loaded.
Reset Method (X12Validator Module)
Resets all properties to their default values.
Syntax
public func reset() throws -> Void
- (void)reset;
Remarks
This method resets all properties of the component to their default values as specified in the property definitions.
Validate Method (X12Validator Module)
Validate the EDI document and warn about any errors encountered.
Syntax
public func validate() throws -> Void
- (void)validate;
Remarks
This method parses the input EDI document, firing the ValidateWarning event for any non-blocking errors it encounters.
Error Event (X12Validator Module)
Fires when a parsing error occurs.
Syntax
- (void)onError:(int)errorCode :(NSString*)description;
Remarks
This event fires when the class encounters a parsing error while processing a document.
ResolveSchema Event (X12Validator Module)
Fires to request schema information for a specific transaction set.
Syntax
- (void)onResolveSchema:(NSString*)versionNumber :(NSString*)transactionSetIDCode;
Remarks
LoadSchema can be called from within this event to load the schema information for the specified transaction set.
ValidateWarning Event (X12Validator Module)
Fires to warn about validation errors.
Syntax
func onValidateWarning(position: Int64, line: Int32, column: Int32, errorCode: String, errorMessage: String, errorType: Int32)
- (void)onValidateWarning:(long long)position :(int)line :(int)column :(NSString*)errorCode :(NSString*)errorMessage :(int)errorType;
Remarks
When the class encounters a non-blocking error while validating a document, this event fires with information about the error.
X12Delimiters Type
The delimiters used in the X12 document.
Remarks
This type contains fields specifying the various delimiters used within the X12 document.
Fields
component
String
Default Value: ":"
The delimiter separating components.
In X12Reader, this type is used to hold the delimiters found when parsing the component, while in X12Writer the fields can be set to choose the delimiters that will be used when writing
element
String
Default Value: "*"
The delimiter separating elements.
In X12Reader, this type is used to hold the delimiters found when parsing the element, while in X12Writer the fields can be set to choose the delimiters that will be used when writing
repetition
String
Default Value: "^"
The delimiter separating components.
In X12Reader, this type is used to hold the delimiters found when parsing the component, while in X12Writer the fields can be set to choose the delimiters that will be used when writing
segment
String
Default Value: "~"
The delimiter separating segments.
In X12Reader, this type is used to hold the delimiters found when parsing the segment, while in X12Writer the fields can be set to choose the delimiters that will be used when writing
Constructors
public init()
X12ValidationErrorDetail Type
Contains the details of a validation error.
Remarks
This represents an error that was encountered while validating an X12 document. The fields contain a description of the error and where in the document it occurred.
- Column
- ComponentIndex
- ElementIndex
- ErrorCode
- ErrorMessage
- ErrorType
- FGroupIndex
- InterchangeIndex
- Line
- Position
- SegmentIndex
- SegmentTag
- TransactionSetIndex
Fields
column
Int32 (read-only)
Default Value: 0
The column number where the error occurred.
componentIndex
Int32 (read-only)
Default Value: 1
This property holds the position of the component element where the error occurred.
elementIndex
Int32 (read-only)
Default Value: 1
This property holds the position of the element where the error occurred.
errorCode
String (read-only)
Default Value: "0"
errorMessage
String (read-only)
Default Value: ""
errorType
Int32 (read-only)
Default Value: 0
Indicates the level of the document where the error was encountered. Possible values include:
| 1 | Interchange |
| 2 | Functional group |
| 3 | Transaction set |
| 4 | Segment |
| 5 | Element |
fGroupIndex
Int32 (read-only)
Default Value: 1
This property holds the position of the functional group where the error occurred.
interchangeIndex
Int32 (read-only)
Default Value: 1
This property holds the position of the interchange where the error occurred.
line
Int32 (read-only)
Default Value: 0
The line number where the error occurred.
position
Int64 (read-only)
Default Value: 0
This property holds the byte position in the EDI stream where the error occurred.
segmentIndex
Int32 (read-only)
Default Value: 1
This property is the index of the segment where the error occurred.
segmentTag
String (read-only)
Default Value: ""
This property specifies the tag name of the segment where the error occurred.
transactionSetIndex
Int32 (read-only)
Default Value: 1
This property holds the position of the message where the error occurred.
Config Settings (X12Validator Module)
The class accepts one or more of the following configuration settings. Configuration settings are similar in functionality to properties, but they are rarely used. In order to avoid "polluting" the property namespace of the class, access to these internal properties is provided through the Config method.X12Validator Config Settings
| InputFormat | Meaning |
| 0 (default) | X12 |
| 1 | XML |
Trappable Errors (X12Validator Module)
X12Validator Errors
| 202 | Invalid argument. |
| 304 | Cannot write to file. |
| 1003 | Could not find the selected schema in the chosen file. |
| 1099 | Encountered an unexpected segment tag. |
| 1100 | Attempted to perform an action while the component was busy, or close an incomplete interchange. |
| 1044 | Tried to load an invalid schema file. |
| 1201 | The index is out of range. |
| 1202 | The selected ACK type is invalid. |
| 1203 | Encountered an error while validating the UNA segment. |