Skip to content

Commit

Permalink
Fix tests with invalid QNames.
Browse files Browse the repository at this point in the history
  • Loading branch information
FilipJirsak committed Jul 1, 2018
1 parent 8f6a7f6 commit 92d8795
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 23 deletions.
29 changes: 17 additions & 12 deletions src/main/java/org/dom4j/datatype/SchemaParser.java
Original file line number Diff line number Diff line change
Expand Up @@ -180,15 +180,19 @@ private void onDatatypeElement(Element xsdElement,
DocumentFactory parentFactory) {
String name = xsdElement.attributeValue("name");
String type = xsdElement.attributeValue("type");
QName qname = getQName(name);

DatatypeElementFactory factory = getDatatypeElementFactory(qname);
QName qname = null;
DatatypeElementFactory factory = null;
if (name != null) {
qname = getQName(name);
factory = getDatatypeElementFactory(qname);
}

if (type != null) {
// register type with this element name
XSDatatype dataType = getTypeByName(type);

if (dataType != null) {
if (dataType != null && factory != null) {
factory.setChildElementXSDatatype(qname, dataType);
} else {
QName typeQName = getQName(type);
Expand All @@ -205,24 +209,25 @@ private void onDatatypeElement(Element xsdElement,
if (xsdSimpleType != null) {
XSDatatype dataType = loadXSDatatypeFromSimpleType(xsdSimpleType);

if (dataType != null) {
if (dataType != null && factory != null) {
factory.setChildElementXSDatatype(qname, dataType);
}
}

Element schemaComplexType = xsdElement.element(XSD_COMPLEXTYPE);

if (schemaComplexType != null) {
if (schemaComplexType != null && factory != null) {
onSchemaComplexType(schemaComplexType, factory);
}

Iterator<Element> iter = xsdElement.elementIterator(XSD_ATTRIBUTE);

if (iter.hasNext()) {
do {
onDatatypeAttribute(xsdElement, factory, iter
.next());
} while (iter.hasNext());
if (factory != null) {
Iterator<Element> iter = xsdElement.elementIterator(XSD_ATTRIBUTE);
if (iter.hasNext()) {
do {
onDatatypeAttribute(xsdElement, factory, iter
.next());
} while (iter.hasNext());
}
}
}

Expand Down
20 changes: 10 additions & 10 deletions src/test/java/org/dom4j/IteratorTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public void setUp() throws Exception {
Element root = iterDocument.addElement("root");

for (int i = 0; i < NUMELE; i++) {
root.addElement("iterator test").addAttribute("instance",
root.addElement("iterator-test").addAttribute("instance",
Integer.toString(i));
}
}
Expand All @@ -42,16 +42,16 @@ public void testElementCount() throws Exception {
Element root = iterDocument.getRootElement();
assertTrue("Has root element", root != null);

List elements = root.elements("iterator test");
List elements = root.elements("iterator-test");
int elementSize = elements.size();
assertTrue("Root has " + elementSize + " children", (elements != null)
&& (elementSize == NUMELE));
}

public void testPlainIteration() throws Exception {
Element root = iterDocument.getRootElement();
List elements = root.elements("iterator test");
Iterator iter = root.elementIterator("iterator test");
List elements = root.elements("iterator-test");
Iterator iter = root.elementIterator("iterator-test");
int elementSize = elements.size();

int count = 0;
Expand All @@ -69,8 +69,8 @@ public void testPlainIteration() throws Exception {

public void testSkipAlternates() throws Exception {
Element root = iterDocument.getRootElement();
List elements = root.elements("iterator test");
Iterator iter = root.elementIterator("iterator test");
List elements = root.elements("iterator-test");
Iterator iter = root.elementIterator("iterator-test");
int elementSize = elements.size();
int count = 0;

Expand All @@ -89,8 +89,8 @@ public void testSkipAlternates() throws Exception {

public void testNoHasNext() throws Exception {
Element root = iterDocument.getRootElement();
List elements = root.elements("iterator test");
Iterator iter = root.elementIterator("iterator test");
List elements = root.elements("iterator-test");
Iterator iter = root.elementIterator("iterator-test");
int elementSize = elements.size();
int count = 0;
Element e = null;
Expand Down Expand Up @@ -121,8 +121,8 @@ public void testNoHasNext() throws Exception {

public void testExtraHasNexts() throws Exception {
Element root = iterDocument.getRootElement();
List elements = root.elements("iterator test");
Iterator iter = root.elementIterator("iterator test");
List elements = root.elements("iterator-test");
Iterator iter = root.elementIterator("iterator-test");
int elementSize = elements.size();
int count = 0;

Expand Down
2 changes: 1 addition & 1 deletion src/test/java/org/dom4j/dom/DOMTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ public void testReplaceChild() throws Exception {
assertEquals(newFirst, firstChild);

/* try to replace a node that doesn't exist */
org.w3c.dom.Element badNode = document.createElement("No Child");
org.w3c.dom.Element badNode = document.createElement("No-Child");

try {
parent.replaceChild(newFirst, badNode);
Expand Down

0 comments on commit 92d8795

Please sign in to comment.