Skip to content

Commit

Permalink
Example for issue 49
Browse files Browse the repository at this point in the history
  • Loading branch information
Luís Duarte committed Jan 20, 2024
1 parent 73f9f82 commit 3f5edef
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 0 deletions.
37 changes: 37 additions & 0 deletions src/test/java/org/xmlet/xsdparser/IssuesTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -707,6 +707,43 @@ public void testIssue44(){
Assert.assertNull(stRestrictionComplexType);
}

@Test
public void testIssue49(){
XsdParser parser = new XsdParser(getFilePath("issue_49.xsd"));

List<XsdSchema> schemas = parser.getResultXsdSchemas().collect(Collectors.toList());

Optional<XsdSchema> schemaOptional = schemas.stream().findFirst();

Assert.assertTrue(schemaOptional.isPresent());

XsdSchema schema = schemaOptional.get();

Assert.assertNotNull(schema);

List<XsdComplexType> xsdComplexTypes = schema.getChildrenComplexTypes().collect(Collectors.toList());

Optional<XsdComplexType> nameTypeOptional = xsdComplexTypes.stream().filter(xsdComplexType -> xsdComplexType.getName().equals("NameType")).findFirst();

Assert.assertTrue(nameTypeOptional.isPresent());

XsdComplexType nameTypeComplexType = nameTypeOptional.get();

Assert.assertNotNull(nameTypeComplexType);

XsdSimpleContent nameTypeSimpleContent = nameTypeComplexType.getSimpleContent();

Assert.assertNotNull(nameTypeSimpleContent);

XsdExtension xsdTokenExtension = nameTypeSimpleContent.getXsdExtension();

Assert.assertNotNull(xsdTokenExtension);

List<XsdAttribute> xsdExtensionAttributesList = xsdTokenExtension.getXsdAttributes().collect(Collectors.toList());

Assert.assertEquals(1, xsdExtensionAttributesList.size());
}

@Test
public void testPersons(){
XsdParser parser = new XsdParser(getFilePath("persons/Person.xsd"));
Expand Down
16 changes: 16 additions & 0 deletions src/test/resources/issue_49.xsd
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://mytestns.org/" xmlns:xml="http://www.w3.org/XML/1998/namespace">
<xsd:import schemaLocation="issue_49_xmlns.xsd" namespace="http://www.w3.org/XML/1998/namespace">

</xsd:import>

<xsd:complexType name="NameType">
<xsd:annotation>
<xsd:documentation>Type for name. Used for names in units, quantities, and prefixes.</xsd:documentation>
</xsd:annotation>
<xsd:simpleContent>
<xsd:extension base="xsd:token">
<xsd:attribute ref="xml:lang"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:schema>
4 changes: 4 additions & 0 deletions src/test/resources/issue_49_xmlns.xsd
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace" xmlns:xs="http://www.w3.org/2001/XMLSchema" xml:lang="en">
<xs:attribute name="lang" type="xs:language">
</xs:attribute>
</xs:schema>

0 comments on commit 3f5edef

Please sign in to comment.