diff --git a/quartz-core/src/main/resources/org/quartz/xml/job_scheduling_data_2_0.xsd b/quartz-core/src/main/resources/org/quartz/xml/job_scheduling_data_2_0.xsd index b8fe98831..bad0b0e86 100644 --- a/quartz-core/src/main/resources/org/quartz/xml/job_scheduling_data_2_0.xsd +++ b/quartz-core/src/main/resources/org/quartz/xml/job_scheduling_data_2_0.xsd @@ -211,29 +211,29 @@ SECONDS: ( - ((([0-9]|[0-5][0-9]),)*([0-9]|[0-5][0-9])) - | (([\*]|[0-9]|[0-5][0-9])(/|-)([0-9]|[0-5][0-9])) + ((([0-9]|[0-5][0-9])(-([0-9]|[0-5][0-9]))?,)*([0-9]|[0-5][0-9])(-([0-9]|[0-5][0-9]))?) + | (([\*]|[0-9]|[0-5][0-9])/([0-9]|[0-5][0-9])) | ([\?]) | ([\*]) ) [\s] MINUTES: ( - ((([0-9]|[0-5][0-9]),)*([0-9]|[0-5][0-9])) - | (([\*]|[0-9]|[0-5][0-9])(/|-)([0-9]|[0-5][0-9])) + ((([0-9]|[0-5][0-9])(-([0-9]|[0-5][0-9]))?,)*([0-9]|[0-5][0-9])(-([0-9]|[0-5][0-9]))?) + | (([\*]|[0-9]|[0-5][0-9])/([0-9]|[0-5][0-9])) | ([\?]) | ([\*]) ) [\s] HOURS: ( - ((([0-9]|[0-1][0-9]|[2][0-3]),)*([0-9]|[0-1][0-9]|[2][0-3])) - | (([\*]|[0-9]|[0-1][0-9]|[2][0-3])(/|-)([0-9]|[0-1][0-9]|[2][0-3])) + ((([0-9]|[0-1][0-9]|[2][0-3])(-([0-9]|[0-1][0-9]|[2][0-3]))?,)*([0-9]|[0-1][0-9]|[2][0-3])(-([0-9]|[0-1][0-9]|[2][0-3]))?) + | (([\*]|[0-9]|[0-1][0-9]|[2][0-3])/([0-9]|[0-1][0-9]|[2][0-3])) | ([\?]) | ([\*]) ) [\s] DAY OF MONTH: ( - ((([1-9]|[0][1-9]|[1-2][0-9]|[3][0-1]),)*([1-9]|[0][1-9]|[1-2][0-9]|[3][0-1])(C)?) - | (([1-9]|[0][1-9]|[1-2][0-9]|[3][0-1])(/|-)([1-9]|[0][1-9]|[1-2][0-9]|[3][0-1])(C)?) + ((([1-9]|[0][1-9]|[1-2][0-9]|[3][0-1])(-([1-9]|[0][1-9]|[1-2][0-9]|[3][0-1]))?,)*([1-9]|[0][1-9]|[1-2][0-9]|[3][0-1])(-([1-9]|[0][1-9]|[1-2][0-9]|[3][0-1]))?(C)?) + | (([1-9]|[0][1-9]|[1-2][0-9]|[3][0-1])/([1-9]|[0][1-9]|[1-2][0-9]|[3][0-1])(C)?) | (L(-[0-9])?) | (L(-[1-2][0-9])?) | (L(-[3][0-1])?) @@ -245,19 +245,19 @@ )[\s] MONTH: ( - ((([1-9]|0[1-9]|1[0-2]),)*([1-9]|0[1-9]|1[0-2])) - | (([1-9]|0[1-9]|1[0-2])(/|-)([1-9]|0[1-9]|1[0-2])) - | (((JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC),)*(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)) - | ((JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)(-|/)(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)) + ((([1-9]|0[1-9]|1[0-2])(-([1-9]|0[1-9]|1[0-2]))?,)*([1-9]|0[1-9]|1[0-2])(-([1-9]|0[1-9]|1[0-2]))?) + | (([1-9]|0[1-9]|1[0-2])/([1-9]|0[1-9]|1[0-2])) + | (((JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)(-(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC))?,)*(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)(-(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC))?) + | ((JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)/(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)) | ([\?]) | ([\*]) )[\s] DAY OF WEEK: ( - (([1-7],)*([1-7])) - | ([1-7](/|-)([1-7])) - | (((MON|TUE|WED|THU|FRI|SAT|SUN),)*(MON|TUE|WED|THU|FRI|SAT|SUN)(C)?) - | ((MON|TUE|WED|THU|FRI|SAT|SUN)(-|/)(MON|TUE|WED|THU|FRI|SAT|SUN)(C)?) + (([1-7](-([1-7]))?,)*([1-7])(-([1-7]))?) + | ([1-7]/([1-7])) + | (((MON|TUE|WED|THU|FRI|SAT|SUN)(-(MON|TUE|WED|THU|FRI|SAT|SUN))?,)*(MON|TUE|WED|THU|FRI|SAT|SUN)(-(MON|TUE|WED|THU|FRI|SAT|SUN))?(C)?) + | ((MON|TUE|WED|THU|FRI|SAT|SUN)/(MON|TUE|WED|THU|FRI|SAT|SUN)(C)?) | (([1-7]|(MON|TUE|WED|THU|FRI|SAT|SUN))(L|LW)?) | (([1-7]|MON|TUE|WED|THU|FRI|SAT|SUN)#([1-7])?) | ([\?]) @@ -268,13 +268,13 @@ [\s]? ([\*])? | ((19[7-9][0-9])|(20[0-9][0-9]))? - | (((19[7-9][0-9])|(20[0-9][0-9]))(-|/)((19[7-9][0-9])|(20[0-9][0-9])))? - | ((((19[7-9][0-9])|(20[0-9][0-9])),)*((19[7-9][0-9])|(20[0-9][0-9])))? + | (((19[7-9][0-9])|(20[0-9][0-9]))/((19[7-9][0-9])|(20[0-9][0-9])))? + | ((((19[7-9][0-9])|(20[0-9][0-9]))(-((19[7-9][0-9])|(20[0-9][0-9])))?,)*((19[7-9][0-9])|(20[0-9][0-9]))(-((19[7-9][0-9])|(20[0-9][0-9])))?)? ) - + diff --git a/quartz-core/src/test/java/org/quartz/xml/XMLSchedulingDataProcessorTest.java b/quartz-core/src/test/java/org/quartz/xml/XMLSchedulingDataProcessorTest.java index 85640aa5a..cccdf805c 100755 --- a/quartz-core/src/test/java/org/quartz/xml/XMLSchedulingDataProcessorTest.java +++ b/quartz-core/src/test/java/org/quartz/xml/XMLSchedulingDataProcessorTest.java @@ -151,7 +151,7 @@ public void testXsdSchemaValidationOnVariousTriggers() throws Exception { XMLSchedulingDataProcessor processor = new XMLSchedulingDataProcessor(clhelper); processor.processFileAndScheduleJobs("org/quartz/xml/job-scheduling-data-2.0_trigger-samples.xml", scheduler); assertEquals(1, scheduler.getJobKeys(GroupMatcher.jobGroupEquals("DEFAULT")).size()); - assertEquals(34, scheduler.getTriggerKeys(GroupMatcher.triggerGroupEquals("DEFAULT")).size()); + assertEquals(35, scheduler.getTriggerKeys(GroupMatcher.triggerGroupEquals("DEFAULT")).size()); } finally { if (scheduler != null) scheduler.shutdown(); diff --git a/quartz-core/src/test/resources/org/quartz/xml/job-scheduling-data-2.0_trigger-samples.xml b/quartz-core/src/test/resources/org/quartz/xml/job-scheduling-data-2.0_trigger-samples.xml index f4d9c503d..ba1c335cc 100755 --- a/quartz-core/src/test/resources/org/quartz/xml/job-scheduling-data-2.0_trigger-samples.xml +++ b/quartz-core/src/test/resources/org/quartz/xml/job-scheduling-data-2.0_trigger-samples.xml @@ -270,7 +270,14 @@ */15 5/50 5/15 1/3 7/6 ? - + + + QTZ-329 + job1 + 0 0/30 0-6,12,19-21,22 * * ? + + + \ No newline at end of file