mirror of
https://github.com/dgis/xsddiagram.git
synced 2024-08-17 06:20:23 +03:00
Add the namespace in the command line option -r (Thanks Kevin)
This commit is contained in:
parent
f1908a450f
commit
812fbb759f
29
MainForm.cs
29
MainForm.cs
@ -186,14 +186,27 @@ namespace XSDDiagram
|
||||
LoadSchema(Options.InputFile);
|
||||
foreach (var rootElement in Options.RootElements)
|
||||
{
|
||||
foreach (var element in schema.Elements)
|
||||
{
|
||||
if (element.Name == rootElement)
|
||||
{
|
||||
diagram.Add(element.Tag, element.NameSpace);
|
||||
}
|
||||
}
|
||||
}
|
||||
string elementName = rootElement;
|
||||
string elementNamespace = null;
|
||||
if (!string.IsNullOrEmpty(elementName))
|
||||
{
|
||||
var pos = rootElement.IndexOf("@");
|
||||
if (pos != -1)
|
||||
{
|
||||
elementName = rootElement.Substring(0, pos);
|
||||
elementNamespace = rootElement.Substring(pos + 1);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var element in schema.Elements)
|
||||
{
|
||||
if ((elementNamespace != null && elementNamespace == element.NameSpace && element.Name == elementName) ||
|
||||
(elementNamespace == null && element.Name == elementName))
|
||||
{
|
||||
diagram.Add(element.Tag, element.NameSpace);
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < Options.ExpandLevel; i++)
|
||||
{
|
||||
diagram.ExpandOneLevel();
|
||||
|
22
Program.cs
22
Program.cs
@ -35,7 +35,7 @@ namespace XSDDiagram
|
||||
//static extern bool AllocConsole();
|
||||
|
||||
static string usage = @"XSD Diagram, version {0}
|
||||
Usage: {1} [-o output.svg] [-os EXTENSION] [-r RootElement]* [-e N] [-d] [-z N] [-f PATH,NAME,TYPE,NAMESPACE,COMMENT] [-y] [-u USERNAME] [-p PASSWORD] [file.xsd or URL]
|
||||
Usage: {1} [-o output.svg] [-os EXTENSION] [-r RootElement[@namespace]]* [-e N] [-d] [-z N] [-f PATH,NAME,TYPE,NAMESPACE,COMMENT] [-y] [-u USERNAME] [-p PASSWORD] [file.xsd or URL]
|
||||
|
||||
-o FILE
|
||||
specifies the output image. '.png','.jpg', '.svg', '.txt', '.csv' ('.emf' on Windows) are allowed.
|
||||
@ -47,6 +47,7 @@ Usage: {1} [-o output.svg] [-os EXTENSION] [-r RootElement]* [-e N] [-d] [-z N]
|
||||
-r ELEMENT
|
||||
specifies the root element of the tree.
|
||||
You can put several -r options = several root elements in the tree.
|
||||
The element can have a namespace: MyElement@http://mynamespace/path
|
||||
-e N
|
||||
specifies the expand level (from 0 to what you want).
|
||||
Be carefull, the result image can be huge.
|
||||
@ -68,7 +69,7 @@ Usage: {1} [-o output.svg] [-os EXTENSION] [-r RootElement]* [-e N] [-d] [-z N]
|
||||
|
||||
|
||||
Example 1:
|
||||
> XSDDiagramConsole.exe -o file.png -r TotoRoot -r TotoComplexType -e 3 -d -z 200 ./folder1/toto.xsd
|
||||
> XSDDiagramConsole.exe -o file.png -r TotoRoot -r TotoComplexType@http://mynamespace -e 3 -d -z 200 ./folder1/toto.xsd
|
||||
will generate a PNG image from a diagram with a root elements
|
||||
'TotoRoot' and 'TotoComplexType', and expanding the tree
|
||||
from the root until the 3rd level, with the documentation.
|
||||
@ -155,9 +156,22 @@ Example 5:
|
||||
|
||||
foreach (var rootElement in Options.RootElements)
|
||||
{
|
||||
foreach (var element in schema.Elements)
|
||||
string elementName = rootElement;
|
||||
string elementNamespace = null;
|
||||
if(!string.IsNullOrEmpty(elementName))
|
||||
{
|
||||
var pos = rootElement.IndexOf("@");
|
||||
if(pos != -1)
|
||||
{
|
||||
elementName = rootElement.Substring(0, pos);
|
||||
elementNamespace = rootElement.Substring(pos + 1);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var element in schema.Elements)
|
||||
{
|
||||
if (element.Name == rootElement)
|
||||
if ((elementNamespace != null && elementNamespace == element.NameSpace && element.Name == elementName) ||
|
||||
(elementNamespace == null && element.Name == elementName))
|
||||
{
|
||||
Log("Adding '{0}' element to the diagram...\n", rootElement);
|
||||
diagram.Add(element.Tag, element.NameSpace);
|
||||
|
@ -35,11 +35,11 @@ QUICK START:
|
||||
|
||||
COMMAND LINE USAGE:
|
||||
|
||||
> XSDDiagram.exe [-o output.svg] [-os EXTENSION] [-r RootElement]* [-e N] [-d] [-z N] [-y] [-u USERNAME] [-p PASSWORD] [file.xsd or URL]
|
||||
> XSDDiagram.exe [-o output.svg] [-os EXTENSION] [-r RootElement[@namespace]]* [-e N] [-d] [-z N] [-y] [-u USERNAME] [-p PASSWORD] [file.xsd or URL]
|
||||
|
||||
or on Windows use 'XSDDiagramConsole.exe' instead of 'XSDDiagram.exe' if you need the console:
|
||||
|
||||
> XSDDiagramConsole.exe [-o output.svg] [-os EXTENSION] [-r RootElement]* [-e N] [-d] [-z N] [-f PATH,NAME,TYPE,NAMESPACE,COMMENT] [-y] [-u USERNAME] [-p PASSWORD] [file.xsd or URL]
|
||||
> XSDDiagramConsole.exe [-o output.svg] [-os EXTENSION] [-r RootElement[@namespace]]* [-e N] [-d] [-z N] [-f PATH,NAME,TYPE,NAMESPACE,COMMENT] [-y] [-u USERNAME] [-p PASSWORD] [file.xsd or URL]
|
||||
|
||||
Options:
|
||||
|
||||
@ -74,7 +74,7 @@ Options:
|
||||
|
||||
|
||||
Example 1:
|
||||
> XSDDiagramConsole.exe -o file.png -r TotoRoot -r TotoComplexType -e 3 -d -z 200 ./folder1/toto.xsd
|
||||
> XSDDiagramConsole.exe -o file.png -r TotoRoot -r TotoComplexType@http://mynamespace -e 3 -d -z 200 ./folder1/toto.xsd
|
||||
will generate a PNG image from a diagram with a root elements
|
||||
'TotoRoot' and 'TotoComplexType', and expanding the tree
|
||||
from the root until the 3rd level, with the documentation.
|
||||
@ -133,9 +133,10 @@ TODO LIST:
|
||||
|
||||
CHANGES:
|
||||
|
||||
version 1.2alpha (2016-09-??)
|
||||
version 1.2alpha (2016-11-??)
|
||||
- Add infer XSD from XML menu.
|
||||
- Fix a null reference exception in the documentation (Thanks Mario M.).
|
||||
- Add the namespace in the command line option -r (Thanks Kevin)
|
||||
|
||||
version 1.1 (2016-07-08)
|
||||
- Fix SVG page size.
|
||||
|
BIN
XSDDiagram.exe
BIN
XSDDiagram.exe
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user