relaxng / jing-trang

Schema validation and conversion based on RELAX NG
http://www.thaiopensource.com/relaxng/
Other
228 stars 69 forks source link

Exception while converting HTML5 RelaxNG schema to DTD #150

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
1. Clone https://bitbucket.org/validator/syntax/src
2. Try: java -jar trang/trang.jar syntax/relaxng/html5.rnc output/html.dtd

Output:
# A lot of obvious errors like 
"/www/ckeditor-dtd-parser/dtd/tests/syntax/relaxng/data.rnc:42:9: error: sorry, 
combining definitions with combine="choice" is not supported"
# And then:
/www/ckeditor-dtd-parser/dtd/tests/syntax/relaxng/common.rnc:85:46: error: 
sorry, cannot handle this kind of "zeroOrMore"
/www/ckeditor-dtd-parser/dtd/tests/syntax/relaxng/common.rnc:85:24: error: 
sorry, cannot handle this kind of "mixed"
/www/ckeditor-dtd-parser/dtd/tests/syntax/relaxng/common.rnc:90:42: error: 
sorry, cannot handle this kind of "zeroOrMore"
/www/ckeditor-dtd-parser/dtd/tests/syntax/relaxng/common.rnc:90:24: error: 
sorry, cannot handle this kind of "mixed"
Exception in thread "main" java.lang.NullPointerException
    at com.thaiopensource.relaxng.output.dtd.Analysis$Analyzer.visitValue(Analysis.java:106)
    at com.thaiopensource.relaxng.output.dtd.Analysis$Analyzer.visitValue(Analysis.java:78)
    at com.thaiopensource.relaxng.edit.ValuePattern.accept(ValuePattern.java:51)
    at com.thaiopensource.relaxng.output.dtd.Analysis$Analyzer.analyzeContentType(Analysis.java:336)
    at com.thaiopensource.relaxng.output.dtd.Analysis$Analyzer.visitChoice(Analysis.java:181)
    at com.thaiopensource.relaxng.output.dtd.Analysis$Analyzer.visitChoice(Analysis.java:78)
    at com.thaiopensource.relaxng.edit.ChoicePattern.accept(ChoicePattern.java:5)
    at com.thaiopensource.relaxng.output.dtd.Analysis$Analyzer.analyzeContentType(Analysis.java:336)
    at com.thaiopensource.relaxng.output.dtd.Analysis$Analyzer.visitAttribute(Analysis.java:141)
    at com.thaiopensource.relaxng.output.dtd.Analysis$Analyzer.visitAttribute(Analysis.java:78)
    at com.thaiopensource.relaxng.edit.AttributePattern.accept(AttributePattern.java:9)
    at com.thaiopensource.relaxng.output.dtd.Analysis$Analyzer.analyzeContentType(Analysis.java:336)
    at com.thaiopensource.relaxng.output.dtd.Analysis$Analyzer.visitRef(Analysis.java:232)
    at com.thaiopensource.relaxng.output.dtd.Analysis$Analyzer.visitRef(Analysis.java:78)
    at com.thaiopensource.relaxng.edit.RefPattern.accept(RefPattern.java:9)
    at com.thaiopensource.relaxng.output.dtd.Analysis$Analyzer.analyzeContentType(Analysis.java:336)
    at com.thaiopensource.relaxng.output.dtd.Analysis$Analyzer.analyzeContentTypeNullAncestorPattern(Analysis.java:343)
    at com.thaiopensource.relaxng.output.dtd.Analysis$Analyzer.visitOptional(Analysis.java:272)
    at com.thaiopensource.relaxng.output.dtd.Analysis$Analyzer.visitOptional(Analysis.java:78)
    at com.thaiopensource.relaxng.edit.OptionalPattern.accept(OptionalPattern.java:9)
    at com.thaiopensource.relaxng.output.dtd.Analysis$Analyzer.analyzeContentType(Analysis.java:336)
    at com.thaiopensource.relaxng.output.dtd.Analysis$Analyzer.visitInterleave(Analysis.java:206)
    at com.thaiopensource.relaxng.output.dtd.Analysis$Analyzer.visitInterleave(Analysis.java:78)
    at com.thaiopensource.relaxng.edit.InterleavePattern.accept(InterleavePattern.java:5)
    at com.thaiopensource.relaxng.output.dtd.Analysis$Analyzer.analyzeContentType(Analysis.java:336)
    at com.thaiopensource.relaxng.output.dtd.Analysis$Analyzer.visitRef(Analysis.java:232)
    at com.thaiopensource.relaxng.output.dtd.Analysis$Analyzer.visitRef(Analysis.java:78)
    at com.thaiopensource.relaxng.edit.RefPattern.accept(RefPattern.java:9)
    at com.thaiopensource.relaxng.output.dtd.Analysis$Analyzer.analyzeContentType(Analysis.java:336)
    at com.thaiopensource.relaxng.output.dtd.Analysis$Analyzer.visitInterleave(Analysis.java:208)
    at com.thaiopensource.relaxng.output.dtd.Analysis$Analyzer.visitInterleave(Analysis.java:78)
    at com.thaiopensource.relaxng.edit.InterleavePattern.accept(InterleavePattern.java:5)
    at com.thaiopensource.relaxng.output.dtd.Analysis$Analyzer.analyzeContentType(Analysis.java:336)
    at com.thaiopensource.relaxng.output.dtd.Analysis$Analyzer.visitDefine(Analysis.java:290)
    at com.thaiopensource.relaxng.output.dtd.Analysis$Analyzer.visitDefine(Analysis.java:78)
    at com.thaiopensource.relaxng.edit.DefineComponent.accept(DefineComponent.java:39)
    at com.thaiopensource.relaxng.output.dtd.Analysis$Analyzer.visitContainer(Analysis.java:278)
    at com.thaiopensource.relaxng.output.dtd.Analysis$Analyzer.visitInclude(Analysis.java:300)
    at com.thaiopensource.relaxng.output.dtd.Analysis$Analyzer.visitInclude(Analysis.java:78)
    at com.thaiopensource.relaxng.edit.IncludeComponent.accept(IncludeComponent.java:60)
    at com.thaiopensource.relaxng.output.dtd.Analysis$Analyzer.visitContainer(Analysis.java:278)
    at com.thaiopensource.relaxng.output.dtd.Analysis$Analyzer.visitGrammar(Analysis.java:258)
    at com.thaiopensource.relaxng.output.dtd.Analysis$Analyzer.visitGrammar(Analysis.java:78)
    at com.thaiopensource.relaxng.edit.GrammarPattern.accept(GrammarPattern.java:14)
    at com.thaiopensource.relaxng.output.dtd.Analysis$Analyzer.analyzeContentType(Analysis.java:336)
    at com.thaiopensource.relaxng.output.dtd.Analysis.<init>(Analysis.java:534)
    at com.thaiopensource.relaxng.output.dtd.DtdOutputFormat.output(DtdOutputFormat.java:22)
    at com.thaiopensource.relaxng.translate.Driver.run(Driver.java:144)
    at com.thaiopensource.relaxng.translate.Driver.main(Driver.java:44)

Checked on both VMs:

# java -version
java version "1.6.0_30"
Java(TM) SE Runtime Environment (build 1.6.0_30-b12)
Java HotSpot(TM) Server VM (build 20.5-b03, mixed mode)

# java -version
java version "1.6.0_20"
OpenJDK Runtime Environment (IcedTea6 1.9.10) (6b20-1.9.10-0ubuntu1~10.10.2)
OpenJDK Server VM (build 19.0-b09, mixed mode)

Original issue reported on code.google.com by pkoszulinski on 3 Feb 2012 at 9:57