Skip to content

Commit 75b5a17

Browse files
committed
Allow DTD inclusions in reusable
Allow DTD inclusions in reusable expanded messages
1 parent 02c92e5 commit 75b5a17

File tree

4 files changed

+24
-9
lines changed

4 files changed

+24
-9
lines changed

Colectica.DDISchemaCheck.Checks/DetectSchemaType.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,10 @@ public static DdiFileFormat GetSchemaFileFormat(string filename)
3838
{
3939
try
4040
{
41-
using (XmlReader xmlReader = XmlReader.Create(filename))
41+
XmlReaderSettings settings = new XmlReaderSettings();
42+
settings.DtdProcessing = DtdProcessing.Parse;
43+
44+
using (XmlReader xmlReader = XmlReader.Create(filename, settings))
4245
{
4346
if (xmlReader.MoveToContent() == XmlNodeType.Element)
4447
{

Colectica.DDISchemaCheck.Checks/EnsureReferencability.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ public static string GetTestResult(XmlSchemaSet schema)
8585

8686
if (noChoice.Count > 0)
8787
{
88-
b.Append(@"<div class=""alert alert-danger"">Versionables and Maintainables not in a xs:Choice.</div>");
88+
b.Append(@"<div class=""alert alert-danger"">Versionables and Maintainables not in a referenceable xs:Choice format.</div>");
8989
b.AppendLine(@"<table class=""table"">
9090
<thead>
9191
<tr>
@@ -108,12 +108,12 @@ public static string GetTestResult(XmlSchemaSet schema)
108108
}
109109
else
110110
{
111-
b.Append("<div class=\"alert alert-success\">All Versionables and Maintainables are in a xs:Choice.</div>");
111+
b.Append("<div class=\"alert alert-success\">All Versionables and Maintainables are in a referenceable xs:Choice format.</div>");
112112
}
113113

114114
if (wrongNumberChoice.Count > 0)
115115
{
116-
b.Append(@"<div class=""alert alert-danger"">Wrong number of elements in Versionables and Maintainables xs:Choice.</div>");
116+
b.Append(@"<div class=""alert alert-danger"">Wrong number of elements in Versionables and Maintainables referenceable xs:Choice format.</div>");
117117
b.AppendLine(@"<table class=""table"">
118118
<thead>
119119
<tr>
@@ -136,12 +136,12 @@ public static string GetTestResult(XmlSchemaSet schema)
136136
}
137137
else
138138
{
139-
b.Append("<div class=\"alert alert-success\">Correct number of elements in all Versionables and Maintainables xs:Choice.</div>");
139+
b.Append("<div class=\"alert alert-success\">Correct number of elements in all Versionables and Maintainables referenceable xs:Choice format.</div>");
140140
}
141141

142142
if (wrongFormatChoice.Count > 0)
143143
{
144-
b.Append(@"<div class=""alert alert-danger"">Missing xxxReference to Versionables and Maintainables in xs:Choice.</div>");
144+
b.Append(@"<div class=""alert alert-danger"">Missing xxxReference to Versionables and Maintainables in referenceable xs:Choice format.</div>");
145145
b.AppendLine(@"<table class=""table"">
146146
<thead>
147147
<tr>
@@ -164,7 +164,7 @@ public static string GetTestResult(XmlSchemaSet schema)
164164
}
165165
else
166166
{
167-
b.Append("<div class=\"alert alert-success\">Correct number of elements in all Versionables and Maintainables xs:Choice.</div>");
167+
b.Append("<div class=\"alert alert-success\">Correct number of elements in all Versionables and Maintainables referenceable xs:Choice format.</div>");
168168
}
169169

170170
return b.ToString();

Colectica.DDISchemaCheck.Checks/FragmentContainsItem.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ public static string GetTestResult(XmlSchemaSet schemas)
129129
}
130130
else
131131
{
132-
b.Append("<div class=\"alert alert-success\">No duplicate Element names detected for referenceable types.</div>");
132+
b.Append("<div class=\"alert alert-success\">All Versionables and Maintainables found with FragmentInstance inclusion.</div>");
133133
}
134134

135135
return b.ToString();

Colectica.DDISchemaCheck.Checks/ValidateSchema.cs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.Collections.Generic;
3+
using System.IO;
34
using System.Linq;
45
using System.Text;
56
using System.Web;
@@ -92,7 +93,18 @@ public XmlSchemaSet GetSchema(string filename)
9293
{
9394
XmlSchemaSet xmlSchemaSet = new XmlSchemaSet();
9495
xmlSchemaSet.ValidationEventHandler += new ValidationEventHandler(ValidationCallback);
95-
using (XmlTextReader reader = new XmlTextReader(filename))
96+
XmlReaderSettings settings = new XmlReaderSettings();
97+
settings.DtdProcessing = DtdProcessing.Parse;
98+
99+
// since there is a DTD entity in reusable, This is the only way I can get it to resolve
100+
string reusable = Path.GetDirectoryName(filename) + Path.DirectorySeparatorChar +"reusable.xsd";
101+
using (XmlReader reader = XmlReader.Create(reusable, settings))
102+
{
103+
XmlSchema xmlSchema = XmlSchema.Read(reader, new ValidationEventHandler(ValidationCallback));
104+
xmlSchemaSet.Add(xmlSchema);
105+
}
106+
107+
using (XmlReader reader = XmlReader.Create(filename, settings))
96108
{
97109
XmlSchema xmlSchema = XmlSchema.Read(reader, new ValidationEventHandler(ValidationCallback));
98110
xmlSchemaSet.Add(xmlSchema);

0 commit comments

Comments
 (0)