XmlDomDataContext dataContext = new XmlDomDataContext(file, false);
assertEquals("xml_input_eobjects.xml", dataContext.getDefaultSchema().getName());
assertEquals(2, dataContext.getSchemaNames().length);
Schema schema = dataContext.getSchemaByName("xml_input_eobjects.xml");
assertEquals("Schema[name=xml_input_eobjects.xml]", schema.toString());
Table[] tables = schema.getTables();
assertEquals(5, schema.getTableCount());
assertEquals("[Table[name=eobjects.dk,type=TABLE,remarks=null], "
+ "Table[name=contributors_person,type=TABLE,remarks=null], "
+ "Table[name=contributors_person_name,type=TABLE,remarks=null], "
+ "Table[name=contributors_person_address,type=TABLE,remarks=null], "
+ "Table[name=projects_project,type=TABLE,remarks=null]]", Arrays.toString(tables));
Table table = schema.getTableByName("eobjects.dk");
assertEquals(2, table.getColumnCount());
assertEquals(
"[Column[name=id,columnNumber=0,type=INTEGER,nullable=false,nativeType=Auto-generated primary key,columnSize=null], "
+ "Column[name=website,columnNumber=2,type=STRING,nullable=true,nativeType=XML Attribute,columnSize=null]]",
Arrays.toString(table.getColumns()));
table = schema.getTableByName("contributors_person");
assertEquals(1, table.getColumnCount());
assertEquals(
"[Column[name=id,columnNumber=0,type=INTEGER,nullable=false,nativeType=Auto-generated primary key,columnSize=null]]",
Arrays.toString(table.getColumns()));
table = schema.getTableByName("contributors_person_name");
assertEquals(3, table.getColumnCount());
assertEquals(
"[Column[name=id,columnNumber=0,type=INTEGER,nullable=false,nativeType=Auto-generated primary key,columnSize=null], "
+ "Column[name=contributors_person_id,columnNumber=1,type=INTEGER,nullable=false,nativeType=Auto-generated foreign key,columnSize=null], "
+ "Column[name=name,columnNumber=2,type=STRING,nullable=true,nativeType=XML Text,columnSize=null]]",
Arrays.toString(table.getColumns()));
assertEquals("[Relationship[primaryTable=contributors_person,primaryColumns=[id],"
+ "foreignTable=contributors_person_name,foreignColumns=[contributors_person_id]]]",
Arrays.toString(table.getRelationships()));
table = schema.getTableByName("contributors_person_address");
assertEquals(3, table.getColumnCount());
assertEquals(
"[Column[name=id,columnNumber=0,type=INTEGER,nullable=false,nativeType=Auto-generated primary key,columnSize=null], "
+ "Column[name=contributors_person_id,columnNumber=1,type=INTEGER,nullable=false,nativeType=Auto-generated foreign key,columnSize=null], "
+ "Column[name=address,columnNumber=2,type=STRING,nullable=true,nativeType=XML Text,columnSize=null]]",
Arrays.toString(table.getColumns()));
assertEquals("[Relationship[primaryTable=contributors_person,primaryColumns=[id],"
+ "foreignTable=contributors_person_address,foreignColumns=[contributors_person_id]]]",
Arrays.toString(table.getRelationships()));
table = schema.getTableByName("projects_project");
assertEquals(3, table.getColumnCount());
assertEquals(
"[Column[name=id,columnNumber=0,type=INTEGER,nullable=false,nativeType=Auto-generated primary key,columnSize=null], "
+ "Column[name=project,columnNumber=1,type=STRING,nullable=true,nativeType=XML Text,columnSize=null], "
+ "Column[name=name,columnNumber=2,type=STRING,nullable=true,nativeType=XML Attribute,columnSize=null]]",
Arrays.toString(table.getColumns()));
dataContext.autoFlattenTables();
table = schema.getTableByName("contributors_person");
assertEquals(2, table.getColumnCount());
assertEquals(
"[Column[name=id,columnNumber=0,type=INTEGER,nullable=false,nativeType=Auto-generated primary key,columnSize=null], "
+ "Column[name=name,columnNumber=1,type=STRING,nullable=true,nativeType=XML Text,columnSize=null]]",
Arrays.toString(table.getColumns()));