홈>
Jsonix를 사용하고 있습니다. 아래에서 언급 한 jsonix 매핑 및 jsonix 스키마를 생성하는 명령을 사용했습니다.
java -jar jsonix-schema-compiler-full.jar -generateJsonSchema -d mappings books.xsd
매핑과 스키마를 올바르게 생성하고 있습니다.AJV와 생성 된 JSON 스키마를 사용하여 JSON의 유효성을 검사하고 싶습니다.
var fs = require('fs');
var Ajv = require('ajv');
var XMLSchemaJsonSchema = JSON.parse(fs.readFileSync('../node_modules/jsonix/jsonschemas/w3c/2001/XMLSchema.jsonschema').toString());
var JsonixJsonSchema = JSON.parse(fs.readFileSync('../node_modules/jsonix/jsonschemas/jsonix/Jsonix.jsonschema').toString());
var booksJsonSchema = JSON.parse(fs.readFileSync('./books.jsonschema').toString());
var ajv = new Ajv();
ajv.addSchema(XMLSchemaJsonSchema, 'http://www.jsonix.org/jsonschemas/w3c/2001/XMLSchema.jsonschema');
ajv.addSchema(JsonixJsonSchema, 'http://www.jsonix.org/jsonschemas/jsonix/Jsonix.jsonschema');
var validate = ajv.compile(booksJsonSchema);
var data ={
"book": [
{
"@id": "bk001",
"author": "Writer",
"title": "The First Book",
"genre": "Fiction",
"price": "44.95",
"pub_date":2000-10-01,
"review": "An amazing story of nothing."
},
{
"@id": "bk002",
"author": "Poet",
"title": "The Poet's First Poem",
"genre": "Poem",
"price": "24.95",
"pub_date":2000-10-02,
"review": "Least poetic poems."
}
]
};
var valid = validate(data);
if (!valid) {
console.log('Validation failed errors:');
console.log(validate.errors);
}else{
console.log("successfully done validation");
}
그러나 오류가 발생합니다
/Users/qliktag/Desktop/QAGG/qagUI2/Scripts/QLIKTAG-2602/node_modules/ajv/lib/ajv.js:183
else throw new Error(message);
^
Error: schema is invalid: data.definitions['nonPositiveInteger'].anyOf[0].exclusiveMaximum should be number
at Ajv.validateSchema (/Users/qliktag/Desktop/QAGG/qagUI2/testScripts/node_modules/ajv/lib/ajv.js:185:16)
at Ajv._addSchema (/Users/qliktag/Desktop/QAGG/qagUI2/Scripts/QLIKTAG-2602/node_modules/ajv/lib/ajv.js:316:10)
at Ajv.addSchema (/Users/qliktag/Desktop/QAGG/qagUI2/Scripts/QLIKTAG-2602/node_modules/ajv/lib/ajv.js:136:29)
at Object.<anonymous> (/Users/qliktag/Desktop/QAGG/qagUI2/Scripts/QLIKTAG-2602/mappings/ajvSample.js:248:5)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
실제로 ajv addschema 중에 오류가 발생했습니다. 문제가 있습니까?
- 답변 # 1
- 답변 # 2
와이즈 비즈의 변화 부울에서 숫자까지 JSON 스키마의 Draft-06/07에서 발생했습니다.
exclusiveMaximum
// var ajv = new Ajv({schemaId: 'id'}); // If you want to use both draft-04 and draft-06/07 schemas: var ajv = new Ajv({schemaId: 'auto'}); ajv.addMetaSchema(require('ajv/lib/refs/json-schema-draft-04.json'));
addSchema
에 대한 부울 허용exclusiveMaximum
- 답변 # 3
여기서 Jsonix의 저자
문서에서 지적했듯이 JSON 스키마 생성은 실험적인 기능입니다. 따라서 실패한다고 놀라지 않을 것입니다. 문제를 제기 할 수 있습니다.
ajv.addSchema(XMLSchemaJsonSchema, 'http://www.jsonix.org/jsonschemas/w3c/2001/XMLSchema.jsonschema'); ajv.addSchema(JsonixJsonSchema, 'http://www.jsonix.org/jsonschemas/jsonix/Jsonix.jsonschema');
관련 자료
- java - JSON 스키마에 대한 JSON 유효성 검증 실패
- Blazor에서 유효성 검사에 실패한 속성을 확인할 수 있나요?
- javascript - 구텐베르크 블록 검증 실패 (속성 누락)
- node.js - 멀터 - 양식 유효성 검사에 실패하면 파일 업로드 중지
- jsonschema - 속성을 기반으로 한 JSON 스키마 유효성 검사
- node.js - 숫자 실패에 대한 Hapi/Joi 유효성 검사
- automation - 크롬 헤드리스 브라우저에서 PDF URL 유효성 검사가 실패합니다각도기 타입 스크립트
- amazon web services - "PKCS7 서명 된 메시지의 유효성 검사에 실패했습니다"라는 메시지와 함께 CodeDeploy가 실패합니다
- node modules - 재귀 $ref가있는 JSONSchema에 대한 ajv 유효성 검증 실패
- jsonschema - JSON 스키마 유효성 검사 $ref 외부 문서
- multi tenant - Rails 5 업데이트 후 acts_as_tenant가있는 모델의 유효성 검증이 실패 함
- typescript - 각도 앱을 빌드 할 때"스키마 유효성 검사 오류"수정 방법
- ruby on rails - 유효성 검사가 실패한 후 어떻게 매개 변수를 검색 할 수 있습니까?
- jsonschema - json 스키마 - 조건부 검증
- sql - UNIQUE 제약 조건에서 Liquibase 유효성 검사가 실패합니다
- python - json 스키마 유효성 검사 실패 - 오류는 'object'유형이 아닙니다
- android - 복잡한 스키마 변경으로 룸 마이그레이션이 실패 함
- laravel : 유효성 검사 실패시 양식 ID 가져 오기
- formik - 유효성 검사 스키마 도움말 필요
- node.js - 하나 이상의 하위 문서를 보내면 몽구스 유효성 검사가 실패합니다
관련 질문
- Node.JS 경고 : 순환 종속성 내에서 모듈 내보내기의 존재하지 않는 속성 'MongoError'에 액세스합니다.
- node.js : 사용자 지정 npm 패키지 가져 오기
- node.js : 자바 스크립트에서 공통 환경 특정 속성 파일을 만드는 방법
- node.js : 처리되지 않은 예외가 발생했습니다. 작업 이름"..getProjectMetadata"가 없습니다.
- npm 경고 npm npm은 Node.js를 지원하지 않습니다.
- node.js : 대괄호 표기법으로 모듈 속성에 액세스 할 수 있지만 점 속성 표기법으로는 액세스 할 수 없습니다.
- node.js : Mac에서 /usr /local /lib /node_modules에 대한 쓰기 권한이 없습니다.
- node.js : 서버리스 배포 배포 중 "Undefined의 'name'속성을 읽을 수 없습니다."오류
- node.js : Twitter 노드 모듈을 Svelete 구성 요소로 어떻게 가져올 수 있습니까?
- node.js : Angular 버전 11-9 다운 그레이드
draft-04 스키마를 계속 사용하려면
meta: false
를 추가했습니다. 06 초안 메타 스키마 추가 방지https://github.com/epoberezkin/ajv/releases/tag/5.0.0이를 추가 한 후addSchema를 사용하여 독점 최대 값에 대한 부울을 허용하십시오