xsddiagram-0.16/0000755000175000017500000000000012100170107013422 5ustar mathieumathieuxsddiagram-0.16/XSDDiagramConsole/0000755000175000017500000000000012100053074016673 5ustar mathieumathieuxsddiagram-0.16/XSDDiagramConsole/app.config0000644000175000017500000000016611673402566020667 0ustar mathieumathieu xsddiagram-0.16/XSDDiagramConsole/Program.cs0000644000175000017500000000201511531463334020642 0ustar mathieumathieu// XSDDiagram - A XML Schema Definition file viewer // Copyright (C) 2006-2011 Regis COSNIER // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System; namespace XSDDiagramConsole { class Program { [STAThread] static void Main(string[] args) { XSDDiagram.Program.Main(); } } } xsddiagram-0.16/XSDDiagramConsole/XSDDiagramConsole2008.csproj0000644000175000017500000000671511673375712023732 0ustar mathieumathieu Debug AnyCPU 9.0.30729 2.0 {1D732DFD-D631-4BFB-8057-C34B9327A08F} Exe Properties XSDDiagramConsole XSDDiagramConsole v2.0 512 true full false bin\Debug\ DEBUG;TRACE prompt 4 pdbonly true bin\Release\ TRACE prompt 4 true bin\x86\Debug\ DEBUG;TRACE full x86 true GlobalSuppressions.cs prompt bin\x86\Release\ TRACE true pdbonly x86 true GlobalSuppressions.cs prompt {B212CAFE-B4C8-44CB-B82D-AA32B55D2719} XSDDiagram2008 xsddiagram-0.16/XSDDiagramConsole/XSDDiagramConsole2010.csproj0000644000175000017500000001226111673402740023704 0ustar mathieumathieu Debug AnyCPU 9.0.30729 2.0 {1D732DFD-D631-4BFB-8057-C34B9327A08F} Exe Properties XSDDiagramConsole XSDDiagramConsole v2.0 512 3.5 publish\ true Disk false Foreground 7 Days false false true 0 1.0.0.%2a false false true true full false bin\Debug\ DEBUG;TRACE prompt 4 pdbonly true bin\Release\ TRACE prompt 4 true bin\x86\Debug\ DEBUG;TRACE full x86 true GlobalSuppressions.cs prompt true bin\x86\Release\ TRACE true pdbonly x86 true GlobalSuppressions.cs prompt {B212CAFE-B4C8-44CB-B82D-AA32B55D2719} XSDDiagram2010 False Microsoft .NET Framework 4 %28x86 and x64%29 true False .NET Framework 3.5 SP1 Client Profile false False .NET Framework 3.5 SP1 false False Windows Installer 3.1 true xsddiagram-0.16/XSDDiagramConsole/Properties/0000755000175000017500000000000011531463334021042 5ustar mathieumathieuxsddiagram-0.16/XSDDiagramConsole/Properties/AssemblyInfo.cs0000644000175000017500000000300411531463334023761 0ustar mathieumathieuusing System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("XSD Diagram Console")] [assembly: AssemblyDescription("XSD Diagram is a free Xml Schema Definition diagram viewer")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("XSD Diagram")] [assembly: AssemblyCopyright("Copyright © 2006-2011 Regis Cosnier, All Rights Reserved.")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // Setting ComVisible to false makes the types in this assembly not visible // to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type. [assembly: ComVisible(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("df3fc24e-0dd1-4a93-9db3-16c21032cc06")] // Version information for an assembly consists of the following four values: // // Major Version // Minor Version // Build Number // Revision // // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] xsddiagram-0.16/ElementsForm.cs0000644000175000017500000000343411531463334016373 0ustar mathieumathieu// XSDDiagram - A XML Schema Definition file viewer // Copyright (C) 2006-2011 Regis COSNIER // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System; using System.Windows.Forms; namespace XSDDiagram { public partial class ElementsForm : Form { public ListBox ListBoxElements { get { return this.listBoxElements; } } public ElementsForm() { InitializeComponent(); } private void listBoxElements_SelectedIndexChanged(object sender, EventArgs e) { DialogResult = DialogResult.OK; Close(); } private void listBoxElements_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) { if (e.KeyCode == Keys.Escape) { DialogResult = DialogResult.Cancel; Close(); } } //private const int WM_LBUTTONDOWN = 0x0201; //protected override void WndProc(ref Message m) //{ // if (m.Msg == WM_LBUTTONDOWN) // { // int x = (m.LParam.ToInt32() & 0x0000ffff); // int y = (int)(((uint)m.LParam.ToInt32() & (uint)0xffff0000) >> 16); // } // base.WndProc(ref m); //} } }xsddiagram-0.16/AboutForm.cs0000644000175000017500000000244312056405154015667 0ustar mathieumathieu// XSDDiagram - A XML Schema Definition file viewer // Copyright (C) 2006-2011 Regis COSNIER // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System.Windows.Forms; namespace XSDDiagram { public partial class AboutForm : Form { public AboutForm() { InitializeComponent(); this.richTextBox.Text = Properties.Resources.ReadMe; this.richTextBox.LinkClicked += new LinkClickedEventHandler(richTextBox_LinkClicked); } void richTextBox_LinkClicked(object sender, LinkClickedEventArgs e) { System.Diagnostics.Process.Start(e.LinkText); } } }xsddiagram-0.16/Tests/0000755000175000017500000000000012100053110014516 5ustar mathieumathieuxsddiagram-0.16/Tests/issues/0000755000175000017500000000000012025677270016062 5ustar mathieumathieuxsddiagram-0.16/Tests/issues/2/0000755000175000017500000000000012056431220016206 5ustar mathieumathieuxsddiagram-0.16/Tests/issues/2/Issue 2.url0000644000175000017500000000010512025677274020161 0ustar mathieumathieu[InternetShortcut] URL=https://github.com/dgis/xsddiagram/issues/2 xsddiagram-0.16/Tests/issues/2/spring-beans-3.0.xsd0000644000175000017500000012125512025676752021643 0ustar mathieumathieu ' element. ]]> ' element. ]]> ' element for the semantic details of autowire candidate beans. ]]> ' element. ]]> ' element. ]]> element (or "ref" attribute). We recommend this in most cases as it makes documentation more explicit. Note that this default mode also allows for annotation-driven autowiring, if activated. "no" refers to externally driven autowiring only, not affecting any autowiring demands that the bean class itself expresses. 2. "byName" Autowiring by property name. If a bean of class Cat exposes a "dog" property, Spring will try to set this to the value of the bean "dog" in the current container. If there is no matching bean by name, nothing special happens. 3. "byType" Autowiring if there is exactly one bean of the property type in the container. If there is more than one, a fatal error is raised, and you cannot use byType autowiring for that bean. If there is none, nothing special happens. 4. "constructor" Analogous to "byType" for constructor arguments. If there is not exactly one bean of the constructor argument type in the bean factory, a fatal error is raised. Note that explicit dependencies, i.e. "property" and "constructor-arg" elements, always override autowiring. Note: This attribute will not be inherited by child bean definitions. Hence, it needs to be specified per concrete bean definition. ]]> " element. ]]> ..." element. ]]> ". ]]> ..." element. ]]> ". ]]> ..." element. ]]> ". ]]> xsddiagram-0.16/Tests/issues/1/0000755000175000017500000000000012056431230016206 5ustar mathieumathieuxsddiagram-0.16/Tests/issues/1/web-common_3_0.xsd0000644000175000017500000014464512025677540021464 0ustar mathieumathieu DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. Copyright 2003-2009 Sun Microsystems, Inc. All rights reserved. The contents of this file are subject to the terms of either the GNU General Public License Version 2 only ("GPL") or the Common Development and Distribution License("CDDL") (collectively, the "License"). You may not use this file except in compliance with the License. You can obtain a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific language governing permissions and limitations under the License. When distributing the software, include this License Header Notice in each file and include the License file at glassfish/bootstrap/legal/LICENSE.txt. Sun designates this particular file as subject to the "Classpath" exception as provided by Sun in the GPL Version 2 section of the License file that accompanied this code. If applicable, add the following below the License Header, with the fields enclosed by brackets [] replaced by your own identifying information: "Portions Copyrighted [year] [name of copyright owner]" Contributor(s): If you wish your version of this file to be governed by only the CDDL or only the GPL Version 2, indicate your decision by adding "[Contributor] elects to include this software in this distribution under the [CDDL or GPL Version 2] license." If you don't indicate a single choice of license, a recipient has the option to distribute your version of this file under either the CDDL, the GPL Version 2 or to extend the choice of license to its licensees as provided above. However, if you add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the option applies only if the new code is made subject to such option by the copyright holder. ... The instance documents may indicate the published version of the schema using the xsi:schemaLocation attribute for Java EE namespace with the following location: http://java.sun.com/xml/ns/javaee/web-common_3_0.xsd ]]> The following conventions apply to all Java EE deployment descriptor elements unless indicated otherwise. - In elements that specify a pathname to a file within the same JAR file, relative filenames (i.e., those not starting with "/") are considered relative to the root of the JAR file's namespace. Absolute filenames (i.e., those starting with "/") also specify names in the root of the JAR file's namespace. In general, relative names are preferred. The exception is .war files where absolute names are preferred for consistency with the Servlet API. The context-param element contains the declaration of a web application's servlet context initialization parameters. The metadata-complete attribute defines whether this deployment descriptor and other related deployment descriptors for this module (e.g., web service descriptors) are complete, or whether the class files available to this module and packaged with this application should be examined for annotations that specify deployment information. If metadata-complete is set to "true", the deployment tool must ignore any annotations that specify deployment information, which might be present in the class files of the application. If metadata-complete is not specified or is set to "false", the deployment tool must examine the class files of the application for annotations, as specified by the specifications. The auth-constraintType indicates the user roles that should be permitted access to this resource collection. The role-name used here must either correspond to the role-name of one of the security-role elements defined for this web application, or be the specially reserved role-name "*" that is a compact syntax for indicating all roles in the web application. If both "*" and rolenames appear, the container interprets this as all roles. If no roles are defined, no user is allowed access to the portion of the web application described by the containing security-constraint. The container matches role names case sensitively when determining access. The auth-methodType is used to configure the authentication mechanism for the web application. As a prerequisite to gaining access to any web resources which are protected by an authorization constraint, a user must have authenticated using the configured mechanism. Legal values are "BASIC", "DIGEST", "FORM", "CLIENT-CERT", or a vendor-specific authentication scheme. Used in: login-config The dispatcher has five legal values: FORWARD, REQUEST, INCLUDE, ASYNC, and ERROR. A value of FORWARD means the Filter will be applied under RequestDispatcher.forward() calls. A value of REQUEST means the Filter will be applied under ordinary client calls to the path or servlet. A value of INCLUDE means the Filter will be applied under RequestDispatcher.include() calls. A value of ASYNC means the Filter will be applied under calls dispatched from an AsyncContext. A value of ERROR means the Filter will be applied under the error page mechanism. The absence of any dispatcher elements in a filter-mapping indicates a default of applying filters only under ordinary client calls to the path or servlet. The error-code contains an HTTP error code, ex: 404 Used in: error-page The error-pageType contains a mapping between an error code or exception type to the path of a resource in the web application. Error-page declarations using the exception-type element in the deployment descriptor must be unique up to the class name of the exception-type. Similarly, error-page declarations using the status-code element must be unique in the deployment descriptor up to the status code. Used in: web-app The exception-type contains a fully qualified class name of a Java exception type. The location element contains the location of the resource in the web application relative to the root of the web application. The value of the location must have a leading `/'. The filterType is used to declare a filter in the web application. The filter is mapped to either a servlet or a URL pattern in the filter-mapping element, using the filter-name value to reference. Filters can access the initialization parameters declared in the deployment descriptor at runtime via the FilterConfig interface. Used in: web-app The fully qualified classname of the filter. The init-param element contains a name/value pair as an initialization param of a servlet filter Declaration of the filter mappings in this web application is done by using filter-mappingType. The container uses the filter-mapping declarations to decide which filters to apply to a request, and in what order. The container matches the request URI to a Servlet in the normal way. To determine which filters to apply it matches filter-mapping declarations either on servlet-name, or on url-pattern for each filter-mapping element, depending on which style is used. The order in which filters are invoked is the order in which filter-mapping declarations that match a request URI for a servlet appear in the list of filter-mapping elements.The filter-name value must be the value of the filter-name sub-elements of one of the filter declarations in the deployment descriptor. This type defines a string which contains at least one character. The logical name of the filter is declare by using filter-nameType. This name is used to map the filter. Each filter name is unique within the web application. Used in: filter, filter-mapping The form-login-configType specifies the login and error pages that should be used in form based login. If form based authentication is not used, these elements are ignored. Used in: login-config The form-login-page element defines the location in the web app where the page that can be used for login can be found. The path begins with a leading / and is interpreted relative to the root of the WAR. The form-error-page element defines the location in the web app where the error page that is displayed when login is not successful can be found. The path begins with a leading / and is interpreted relative to the root of the WAR. A HTTP method type as defined in HTTP 1.1 section 2.2. The login-configType is used to configure the authentication method that should be used, the realm name that should be used for this application, and the attributes that are needed by the form login mechanism. Used in: web-app The realm name element specifies the realm name to use in HTTP Basic authorization. The mime-mappingType defines a mapping between an extension and a mime type. Used in: web-app The extension element contains a string describing an extension. example: "txt" The mime-typeType is used to indicate a defined mime type. Example: "text/plain" Used in: mime-mapping The security-constraintType is used to associate security constraints with one or more web resource collections Used in: web-app The servletType is used to declare a servlet. It contains the declarative data of a servlet. If a jsp-file is specified and the load-on-startup element is present, then the JSP should be precompiled and loaded. Used in: web-app The servlet-class element contains the fully qualified class name of the servlet. The load-on-startup element indicates that this servlet should be loaded (instantiated and have its init() called) on the startup of the web application. The optional contents of these element must be an integer indicating the order in which the servlet should be loaded. If the value is a negative integer, or the element is not present, the container is free to load the servlet whenever it chooses. If the value is a positive integer or 0, the container must load and initialize the servlet as the application is deployed. The container must guarantee that servlets marked with lower integers are loaded before servlets marked with higher integers. The container may choose the order of loading of servlets with the same load-on-start-up value. The servlet-mappingType defines a mapping between a servlet and a url pattern. Used in: web-app The servlet-name element contains the canonical name of the servlet. Each servlet name is unique within the web application. The session-configType defines the session parameters for this web application. Used in: web-app The session-timeout element defines the default session timeout interval for all sessions created in this web application. The specified timeout must be expressed in a whole number of minutes. If the timeout is 0 or less, the container ensures the default behaviour of sessions is never to time out. If this element is not specified, the container must set its default timeout period. The cookie-config element defines the configuration of the session tracking cookies created by this web application. The tracking-mode element defines the tracking modes for sessions created by this web application The cookie-configType defines the configuration for the session tracking cookies of this web application. Used in: session-config The name that will be assigned to any session tracking cookies created by this web application. The default is JSESSIONID The domain name that will be assigned to any session tracking cookies created by this web application. The path that will be assigned to any session tracking cookies created by this web application. The comment that will be assigned to any session tracking cookies created by this web application. Specifies whether any session tracking cookies created by this web application will be marked as HttpOnly Specifies whether any session tracking cookies created by this web application will be marked as secure even if the request that initiated the corresponding session is using plain HTTP instead of HTTPS The lifetime (in seconds) that will be assigned to any session tracking cookies created by this web application. Default is -1 The name that will be assigned to any session tracking cookies created by this web application. The default is JSESSIONID Used in: cookie-config The domain name that will be assigned to any session tracking cookies created by this web application. Used in: cookie-config The path that will be assigned to any session tracking cookies created by this web application. Used in: cookie-config The comment that will be assigned to any session tracking cookies created by this web application. Used in: cookie-config The tracking modes for sessions created by this web application Used in: session-config The transport-guaranteeType specifies that the communication between client and server should be NONE, INTEGRAL, or CONFIDENTIAL. NONE means that the application does not require any transport guarantees. A value of INTEGRAL means that the application requires that the data sent between the client and server be sent in such a way that it can't be changed in transit. CONFIDENTIAL means that the application requires that the data be transmitted in a fashion that prevents other entities from observing the contents of the transmission. In most cases, the presence of the INTEGRAL or CONFIDENTIAL flag will indicate that the use of SSL is required. Used in: user-data-constraint The user-data-constraintType is used to indicate how data communicated between the client and container should be protected. Used in: security-constraint The elements that use this type designate a path starting with a "/" and interpreted relative to the root of a WAR file. This type contains the recognized versions of web-application supported. It is used to designate the version of the web application. The web-resource-collectionType is used to identify the resources and HTTP methods on those resources to which a security constraint applies. If no HTTP methods are specified, then the security constraint applies to all HTTP methods. If HTTP methods are specified by http-method-omission elements, the security constraint applies to all methods except those identified in the collection. http-method-omission and http-method elements are never mixed in the same collection. Used in: security-constraint The web-resource-name contains the name of this web resource collection. Each http-method names an HTTP method to which the constraint applies. Each http-method-omission names an HTTP method to which the constraint does not apply. The welcome-file-list contains an ordered list of welcome files elements. Used in: web-app The welcome-file element contains file name to use as a default welcome file, such as index.html The localeType defines valid locale defined by ISO-639-1 and ISO-3166. The encodingType defines IANA character sets. The locale-encoding-mapping-list contains one or more locale-encoding-mapping(s). The locale-encoding-mapping contains locale name and encoding name. The locale name must be either "Language-code", such as "ja", defined by ISO-639 or "Language-code_Country-code", such as "ja_JP". "Country code" is defined by ISO-3166. This element indicates that the ordering sub-element in which it was placed should take special action regarding the ordering of this application resource relative to other application configuration resources. See section 8.2.2 of the specification for details. Please see section 8.2.2 of the specification for details. Please see section 8.2.2 of the specification for details. This element contains a sequence of "name" elements, each of which refers to an application configuration resource by the "name" declared on its web.xml fragment. This element can also contain a single "others" element which specifies that this document comes before or after other documents within the application. See section 8.2.2 of the specification for details. This element specifies configuration information related to the handling of multipart/form-data requests. The directory location where uploaded files will be stored The maximum size limit of uploaded files The maximum size limit of multipart/form-data requests The size threshold after which an uploaded file will be written to disk xsddiagram-0.16/Tests/issues/1/Issue 1.url0000644000175000017500000000010512025677062020152 0ustar mathieumathieu[InternetShortcut] URL=https://github.com/dgis/xsddiagram/issues/1 xsddiagram-0.16/Tests/issues/1/web-app_3_0.xsd0000644000175000017500000002513712025677002020737 0ustar mathieumathieu DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. Copyright 2003-2009 Sun Microsystems, Inc. All rights reserved. The contents of this file are subject to the terms of either the GNU General Public License Version 2 only ("GPL") or the Common Development and Distribution License("CDDL") (collectively, the "License"). You may not use this file except in compliance with the License. You can obtain a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific language governing permissions and limitations under the License. When distributing the software, include this License Header Notice in each file and include the License file at glassfish/bootstrap/legal/LICENSE.txt. Sun designates this particular file as subject to the "Classpath" exception as provided by Sun in the GPL Version 2 section of the License file that accompanied this code. If applicable, add the following below the License Header, with the fields enclosed by brackets [] replaced by your own identifying information: "Portions Copyrighted [year] [name of copyright owner]" Contributor(s): If you wish your version of this file to be governed by only the CDDL or only the GPL Version 2, indicate your decision by adding "[Contributor] elects to include this software in this distribution under the [CDDL or GPL Version 2] license." If you don't indicate a single choice of license, a recipient has the option to distribute your version of this file under either the CDDL, the GPL Version 2 or to extend the choice of license to its licensees as provided above. However, if you add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the option applies only if the new code is made subject to such option by the copyright holder. ... The instance documents may indicate the published version of the schema using the xsi:schemaLocation attribute for Java EE namespace with the following location: http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd ]]> The following conventions apply to all Java EE deployment descriptor elements unless indicated otherwise. - In elements that specify a pathname to a file within the same JAR file, relative filenames (i.e., those not starting with "/") are considered relative to the root of the JAR file's namespace. Absolute filenames (i.e., those starting with "/") also specify names in the root of the JAR file's namespace. In general, relative names are preferred. The exception is .war files where absolute names are preferred for consistency with the Servlet API. The web-app element is the root of the deployment descriptor for a web application. Note that the sub-elements of this element can be in the arbitrary order. Because of that, the multiplicity of the elements of distributable, session-config, welcome-file-list, jsp-config, login-config, and locale-encoding-mapping-list was changed from "?" to "*" in this schema. However, the deployment descriptor instance file must not contain multiple elements of session-config, jsp-config, and login-config. When there are multiple elements of welcome-file-list or locale-encoding-mapping-list, the container must concatenate the element contents. The multiple occurence of the element distributable is redundant and the container treats that case exactly in the same way when there is only one distributable. The servlet element contains the name of a servlet. The name must be unique within the web application. The filter element contains the name of a filter. The name must be unique within the web application. The ejb-local-ref-name element contains the name of an EJB reference. The EJB reference is an entry in the web application's environment and is relative to the java:comp/env context. The name must be unique within the web application. It is recommended that name is prefixed with "ejb/". The ejb-ref-name element contains the name of an EJB reference. The EJB reference is an entry in the web application's environment and is relative to the java:comp/env context. The name must be unique within the web application. It is recommended that name is prefixed with "ejb/". The resource-env-ref-name element specifies the name of a resource environment reference; its value is the environment entry name used in the web application code. The name is a JNDI name relative to the java:comp/env context and must be unique within a web application. The message-destination-ref-name element specifies the name of a message destination reference; its value is the environment entry name used in the web application code. The name is a JNDI name relative to the java:comp/env context and must be unique within a web application. The res-ref-name element specifies the name of a resource manager connection factory reference. The name is a JNDI name relative to the java:comp/env context. The name must be unique within a web application. The env-entry-name element contains the name of a web application's environment entry. The name is a JNDI name relative to the java:comp/env context. The name must be unique within a web application. A role-name-key is specified to allow the references from the security-role-refs. The keyref indicates the references from security-role-ref to a specified role-name. xsddiagram-0.16/Tests/issues/1/xml.xsd0000644000175000017500000002120412025677724017545 0ustar mathieumathieu

About the XML namespace

This schema document describes the XML namespace, in a form suitable for import by other schema documents.

See http://www.w3.org/XML/1998/namespace.html and http://www.w3.org/TR/REC-xml for information about this namespace.

Note that local names in this namespace are intended to be defined only by the World Wide Web Consortium or its subgroups. The names currently defined in this namespace are listed below. They should not be used with conflicting semantics by any Working Group, specification, or document instance.

See further below in this document for more information about how to refer to this schema document from your own XSD schema documents and about the namespace-versioning policy governing this schema document.

lang (as an attribute name)

denotes an attribute whose value is a language code for the natural language of the content of any element; its value is inherited. This name is reserved by virtue of its definition in the XML specification.

Notes

Attempting to install the relevant ISO 2- and 3-letter codes as the enumerated possible values is probably never going to be a realistic possibility.

See BCP 47 at http://www.rfc-editor.org/rfc/bcp/bcp47.txt and the IANA language subtag registry at http://www.iana.org/assignments/language-subtag-registry for further information.

The union allows for the 'un-declaration' of xml:lang with the empty string.

space (as an attribute name)

denotes an attribute whose value is a keyword indicating what whitespace processing discipline is intended for the content of the element; its value is inherited. This name is reserved by virtue of its definition in the XML specification.

base (as an attribute name)

denotes an attribute whose value provides a URI to be used as the base for interpreting any relative URIs in the scope of the element on which it appears; its value is inherited. This name is reserved by virtue of its definition in the XML Base specification.

See http://www.w3.org/TR/xmlbase/ for information about this attribute.

id (as an attribute name)

denotes an attribute whose value should be interpreted as if declared to be of type ID. This name is reserved by virtue of its definition in the xml:id specification.

See http://www.w3.org/TR/xml-id/ for information about this attribute.

Father (in any context at all)

denotes Jon Bosak, the chair of the original XML Working Group. This name is reserved by the following decision of the W3C XML Plenary and XML Coordination groups:

In appreciation for his vision, leadership and dedication the W3C XML Plenary on this 10th day of February, 2000, reserves for Jon Bosak in perpetuity the XML name "xml:Father".

About this schema document

This schema defines attributes and an attribute group suitable for use by schemas wishing to allow xml:base, xml:lang, xml:space or xml:id attributes on elements they define.

To enable this, such a schema must import this schema for the XML namespace, e.g. as follows:

          <schema . . .>
           . . .
           <import namespace="http://www.w3.org/XML/1998/namespace"
                      schemaLocation="http://www.w3.org/2001/xml.xsd"/>
     

or

           <import namespace="http://www.w3.org/XML/1998/namespace"
                      schemaLocation="http://www.w3.org/2009/01/xml.xsd"/>
     

Subsequently, qualified reference to any of the attributes or the group defined below will have the desired effect, e.g.

          <type . . .>
           . . .
           <attributeGroup ref="xml:specialAttrs"/>
     

will define a type which will schema-validate an instance element with any of those attributes.

Versioning policy for this schema document

In keeping with the XML Schema WG's standard versioning policy, this schema document will persist at http://www.w3.org/2009/01/xml.xsd.

At the date of issue it can also be found at http://www.w3.org/2001/xml.xsd.

The schema document at that URI may however change in the future, in order to remain compatible with the latest version of XML Schema itself, or with the XML namespace itself. In other words, if the XML Schema or XML namespaces change, the version of this document at http://www.w3.org/2001/xml.xsd will change accordingly; the version at http://www.w3.org/2009/01/xml.xsd will not change.

Previous dated (and unchanging) versions of this schema document are at:

xsddiagram-0.16/Tests/issues/1/jsp_2_2.xsd0000644000175000017500000003441412025677612020206 0ustar mathieumathieu DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. Copyright 2003-2009 Sun Microsystems, Inc. All rights reserved. The contents of this file are subject to the terms of either the GNU General Public License Version 2 only ("GPL") or the Common Development and Distribution License("CDDL") (collectively, the "License"). You may not use this file except in compliance with the License. You can obtain a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific language governing permissions and limitations under the License. When distributing the software, include this License Header Notice in each file and include the License file at glassfish/bootstrap/legal/LICENSE.txt. Sun designates this particular file as subject to the "Classpath" exception as provided by Sun in the GPL Version 2 section of the License file that accompanied this code. If applicable, add the following below the License Header, with the fields enclosed by brackets [] replaced by your own identifying information: "Portions Copyrighted [year] [name of copyright owner]" Contributor(s): If you wish your version of this file to be governed by only the CDDL or only the GPL Version 2, indicate your decision by adding "[Contributor] elects to include this software in this distribution under the [CDDL or GPL Version 2] license." If you don't indicate a single choice of license, a recipient has the option to distribute your version of this file under either the CDDL, the GPL Version 2 or to extend the choice of license to its licensees as provided above. However, if you add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the option applies only if the new code is made subject to such option by the copyright holder. This is the XML Schema for the JSP 2.2 deployment descriptor types. The JSP 2.2 schema contains all the special structures and datatypes that are necessary to use JSP files from a web application. The contents of this schema is used by the web-common_3_0.xsd file to define JSP specific content. The following conventions apply to all Java EE deployment descriptor elements unless indicated otherwise. - In elements that specify a pathname to a file within the same JAR file, relative filenames (i.e., those not starting with "/") are considered relative to the root of the JAR file's namespace. Absolute filenames (i.e., those starting with "/") also specify names in the root of the JAR file's namespace. In general, relative names are preferred. The exception is .war files where absolute names are preferred for consistency with the Servlet API. The jsp-configType is used to provide global configuration information for the JSP files in a web application. It has two subelements, taglib and jsp-property-group. The jsp-file element contains the full path to a JSP file within the web application beginning with a `/'. The jsp-property-groupType is used to group a number of files so they can be given global property information. All files so described are deemed to be JSP files. The following additional properties can be described: - Control whether EL is ignored. - Control whether scripting elements are invalid. - Indicate pageEncoding information. - Indicate that a resource is a JSP document (XML). - Prelude and Coda automatic includes. - Control whether the character sequence #{ is allowed when used as a String literal. - Control whether template text containing only whitespaces must be removed from the response output. - Indicate the default contentType information. - Indicate the default buffering model for JspWriter - Control whether error should be raised for the use of undeclared namespaces in a JSP page. Can be used to easily set the isELIgnored property of a group of JSP pages. By default, the EL evaluation is enabled for Web Applications using a Servlet 2.4 or greater web.xml, and disabled otherwise. The valid values of page-encoding are those of the pageEncoding page directive. It is a translation-time error to name different encodings in the pageEncoding attribute of the page directive of a JSP page and in a JSP configuration element matching the page. It is also a translation-time error to name different encodings in the prolog or text declaration of a document in XML syntax and in a JSP configuration element matching the document. It is legal to name the same encoding through mulitple mechanisms. Can be used to easily disable scripting in a group of JSP pages. By default, scripting is enabled. If true, denotes that the group of resources that match the URL pattern are JSP documents, and thus must be interpreted as XML documents. If false, the resources are assumed to not be JSP documents, unless there is another property group that indicates otherwise. The include-prelude element is a context-relative path that must correspond to an element in the Web Application. When the element is present, the given path will be automatically included (as in an include directive) at the beginning of each JSP page in this jsp-property-group. The include-coda element is a context-relative path that must correspond to an element in the Web Application. When the element is present, the given path will be automatically included (as in an include directive) at the end of each JSP page in this jsp-property-group. The character sequence #{ is reserved for EL expressions. Consequently, a translation error occurs if the #{ character sequence is used as a String literal, unless this element is enabled (true). Disabled (false) by default. Indicates that template text containing only whitespaces must be removed from the response output. It has no effect on JSP documents (XML syntax). Disabled (false) by default. The valid values of default-content-type are those of the contentType page directive. It specifies the default response contentType if the page directive does not include a contentType attribute. The valid values of buffer are those of the buffer page directive. It specifies if buffering should be used for the output to response, and if so, the size of the buffer to use. The default behavior when a tag with unknown namespace is used in a JSP page (regular syntax) is to silently ignore it. If set to true, then an error must be raised during the translation time when an undeclared tag is used in a JSP page. Disabled (false) by default. The taglibType defines the syntax for declaring in the deployment descriptor that a tag library is available to the application. This can be done to override implicit map entries from TLD files and from the container. A taglib-uri element describes a URI identifying a tag library used in the web application. The body of the taglib-uri element may be either an absolute URI specification, or a relative URI. There should be no entries in web.xml with the same taglib-uri value. the taglib-location element contains the location (as a resource relative to the root of the web application) where to find the Tag Library Description file for the tag library. xsddiagram-0.16/Tests/issues/1/javaee_web_services_client_1_3.xsd0000644000175000017500000006414612025677760024754 0ustar mathieumathieu DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. Copyright 2003-2009 Sun Microsystems, Inc. All rights reserved. The contents of this file are subject to the terms of either the GNU General Public License Version 2 only ("GPL") or the Common Development and Distribution License("CDDL") (collectively, the "License"). You may not use this file except in compliance with the License. You can obtain a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific language governing permissions and limitations under the License. When distributing the software, include this License Header Notice in each file and include the License file at glassfish/bootstrap/legal/LICENSE.txt. Sun designates this particular file as subject to the "Classpath" exception as provided by Sun in the GPL Version 2 section of the License file that accompanied this code. If applicable, add the following below the License Header, with the fields enclosed by brackets [] replaced by your own identifying information: "Portions Copyrighted [year] [name of copyright owner]" Contributor(s): If you wish your version of this file to be governed by only the CDDL or only the GPL Version 2, indicate your decision by adding "[Contributor] elects to include this software in this distribution under the [CDDL or GPL Version 2] license." If you don't indicate a single choice of license, a recipient has the option to distribute your version of this file under either the CDDL, the GPL Version 2 or to extend the choice of license to its licensees as provided above. However, if you add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the option applies only if the new code is made subject to such option by the copyright holder. (C) Copyright International Business Machines Corporation 2002 The service-ref element declares a reference to a Web service. It contains optional description, display name and icons, a declaration of the required Service interface, an optional WSDL document location, an optional set of JAX-RPC mappings, an optional QName for the service element, an optional set of Service Endpoint Interfaces to be resolved by the container to a WSDL port, and an optional set of handlers. The service-ref-name element declares logical name that the components in the module use to look up the Web service. It is recommended that all service reference names start with "service/". The service-interface element declares the fully qualified class name of the JAX-RPC Service interface the client depends on. In most cases the value will be javax.xml.rpc.Service. A JAX-RPC generated Service Interface class may also be specified. The service-ref-type element declares the type of the service-ref element that is injected or returned when a JNDI lookup is done. This must be either a fully qualified name of Service class or the fully qualified name of service endpoint interface class. This is only used with JAX-WS runtime where the corresponding @WebServiceRef annotation can be used to denote both a Service or a Port. If this is not specified, then the type of service-ref element that is injected or returned when a JNDI lookup is done is always a Service interface/class. The wsdl-file element contains the URI location of a WSDL file. The location is relative to the root of the module. The jaxrpc-mapping-file element contains the name of a file that describes the JAX-RPC mapping between the Java interaces used by the application and the WSDL description in the wsdl-file. The file name is a relative path within the module file. This is not required when JAX-WS based runtime is used. The service-qname element declares the specific WSDL service element that is being refered to. It is not specified if no wsdl-file is declared. The port-component-ref element declares a client dependency on the container for resolving a Service Endpoint Interface to a WSDL port. It optionally associates the Service Endpoint Interface with a particular port-component. This is only used by the container for a Service.getPort(Class) method call. Declares the handler for a port-component. Handlers can access the init-param name/value pairs using the HandlerInfo interface. If port-name is not specified, the handler is assumed to be associated with all ports of the service. To be used with JAX-RPC based runtime only. To be used with JAX-WS based runtime only. The port-component-ref element declares a client dependency on the container for resolving a Service Endpoint Interface to a WSDL port. It optionally associates the Service Endpoint Interface with a particular port-component. This is only used by the container for a Service.getPort(Class) method call. The service-endpoint-interface element defines a fully qualified Java class that represents the Service Endpoint Interface of a WSDL port. Used to enable or disable SOAP MTOM/XOP mechanism on the client side for a port-component. Not to be specified for JAX-RPC runtime When MTOM is enabled, binary data above this size in bytes should be XOP encoded or sent as attachment. Default value is 0. Not to be specified for JAX-RPC runtime This specifies the WS-Addressing requirements for a JAX-WS web service. It corresponds to javax.xml.ws.soap.Addressing annotation or its feature javax.xml.ws.soap.AddressingFeature. See the addressingType for more information. Not to be specified for JAX-RPC runtime Corresponds to the javax.xml.ws.RespectBinding annotation or its corresponding javax.xml.ws.RespectBindingFeature web service feature. This is used to control whether a JAX-WS implementation must respect/honor the contents of the wsdl:binding in the WSDL that is associated with the service. Not to be specified for JAX-RPC runtime The port-component-link element links a port-component-ref to a specific port-component required to be made available by a service reference. The value of a port-component-link must be the port-component-name of a port-component in the same module or another module in the same application unit. The syntax for specification follows the syntax defined for ejb-link in the EJB 2.0 specification. The handler-chains element defines the handlerchains associated with this service or service endpoint. The handler-chain element defines the handlerchain. Handlerchain can be defined such that the handlers in the handlerchain operate,all ports of a service, on a specific port or on a list of protocol-bindings. The choice of elements service-name-pattern, port-name-pattern and protocol-bindings are used to specify whether the handlers in handler-chain are for a service, port or protocol binding. If none of these choices are specified with the handler-chain element then the handlers specified in the handler-chain will be applied on everything. Defines the type used for specifying a list of protocol-bindingType(s). For e.g. ##SOAP11_HTTP ##SOAP12_HTTP ##XML_HTTP Defines the type used for specifying the URI for the protocol binding used by the port-component. For portability one could use one of the following tokens that alias the standard binding types: ##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM ##XML_HTTP Other specifications could define tokens that start with ## to alias new standard binding URIs that are introduced. Defines the type that is used for specifying tokens that start with ## which are used to alias existing standard protocol bindings and support aliases for new standard binding URIs that are introduced in future specifications. The following tokens alias the standard protocol binding URIs: ##SOAP11_HTTP = "http://schemas.xmlsoap.org/wsdl/soap/http" ##SOAP11_HTTP_MTOM = "http://schemas.xmlsoap.org/wsdl/soap/http?mtom=true" ##SOAP12_HTTP = "http://www.w3.org/2003/05/soap/bindings/HTTP/" ##SOAP12_HTTP_MTOM = "http://www.w3.org/2003/05/soap/bindings/HTTP/?mtom=true" ##XML_HTTP = "http://www.w3.org/2004/08/wsdl/http" This is used to specify the QName pattern in the attribute service-name-pattern and port-name-pattern in the handler-chain element For example, the various forms acceptable here for service-name-pattern attribute in handler-chain element are : Exact Name: service-name-pattern="ns1:EchoService" In this case, handlers specified in this handler-chain element will apply to all ports with this exact service name. The namespace prefix must have been declared in a namespace declaration attribute in either the start-tag of the element where the prefix is used or in an an ancestor element (i.e. an element in whose content the prefixed markup occurs) Pattern : service-name-pattern="ns1:EchoService*" In this case, handlers specified in this handler-chain element will apply to all ports whose Service names are like EchoService1, EchoServiceFoo etc. The namespace prefix must have been declared in a namespace declaration attribute in either the start-tag of the element where the prefix is used or in an an ancestor element (i.e. an element in whose content the prefixed markup occurs) Wild Card : service-name-pattern="*" In this case, handlers specified in this handler-chain element will apply to ports of all service names. The same can be applied to port-name attribute in handler-chain element. This specifies the WS-Addressing requirements for a JAX-WS web service. It corresponds to javax.xml.ws.soap.Addressing annotation or its feature javax.xml.ws.soap.AddressingFeature. If the "enabled" element is "true", WS-Addressing is enabled. It means that the endpoint supports WS-Addressing but does not require its use. The default value for "enabled" is "true". If the WS-Addressing is enabled and the "required" element is "true", it means that the endpoint requires WS-Addressing. The default value for "required" is "false". If WS-Addressing is enabled, the "responses" element determines if an endpoint requires the use of only anonymous responses, or only non-anonymous responses, or all. The value of the "responses" element must be one of the following: ANONYMOUS NON_ANONYMOUS ALL The default value for the "responses" is ALL. If WS-Addressing is enabled, this type determines if an endpoint requires the use of only anonymous responses, or only non-anonymous responses, or all. Corresponds to the javax.xml.ws.RespectBinding annotation or its corresponding javax.xml.ws.RespectBindingFeature web service feature. This is used to control whether a JAX-WS implementation must respect/honor the contents of the wsdl:binding in the WSDL that is associated with the service. If the "enabled" element is "true", wsdl:binding in the associated WSDL, if any, must be respected/honored. Declares the handler for a port-component, service-ref. Handlers can access the init-param name/value pairs using the HandlerInfo interface. Used in: port-component, service-ref Defines the name of the handler. The name must be unique within the module. Defines a fully qualified class name for the handler implementation. Not to be specified for JAX-WS runtime Defines the QName of a SOAP header that will be processed by the handler. Not to be specified for JAX-WS runtime The soap-role element contains a SOAP actor definition that the Handler will play as a role. The port-name element defines the WSDL port-name that a handler should be associated with. If port-name is not specified, the handler is assumed to be associated with all ports of the service. Not to be specified for JAX-WS runtime Defines the name of the handler. The name must be unique within the module. xsddiagram-0.16/Tests/issues/1/javaee_6.xsd0000644000175000017500000023574012025677600020432 0ustar mathieumathieu DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. Copyright 2003-2009 Sun Microsystems, Inc. All rights reserved. The contents of this file are subject to the terms of either the GNU General Public License Version 2 only ("GPL") or the Common Development and Distribution License("CDDL") (collectively, the "License"). You may not use this file except in compliance with the License. You can obtain a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific language governing permissions and limitations under the License. When distributing the software, include this License Header Notice in each file and include the License file at glassfish/bootstrap/legal/LICENSE.txt. Sun designates this particular file as subject to the "Classpath" exception as provided by Sun in the GPL Version 2 section of the License file that accompanied this code. If applicable, add the following below the License Header, with the fields enclosed by brackets [] replaced by your own identifying information: "Portions Copyrighted [year] [name of copyright owner]" Contributor(s): If you wish your version of this file to be governed by only the CDDL or only the GPL Version 2, indicate your decision by adding "[Contributor] elects to include this software in this distribution under the [CDDL or GPL Version 2] license." If you don't indicate a single choice of license, a recipient has the option to distribute your version of this file under either the CDDL, the GPL Version 2 or to extend the choice of license to its licensees as provided above. However, if you add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the option applies only if the new code is made subject to such option by the copyright holder. The following definitions that appear in the common shareable schema(s) of Java EE deployment descriptors should be interpreted with respect to the context they are included: Deployment Component may indicate one of the following: java ee application; application client; web application; enterprise bean; resource adapter; Deployment File may indicate one of the following: ear file; war file; jar file; rar file; This group keeps the usage of the contained description related elements consistent across Java EE deployment descriptors. All elements may occur multiple times with different languages, to support localization of the content. This group keeps the usage of the contained JNDI environment reference elements consistent across Java EE deployment descriptors. This group collects elements that are common to most JNDI resource elements. The JNDI name to be looked up to resolve a resource reference. This group collects elements that are common to all the JNDI resource elements. It does not include the lookup-name element, that is only applicable to some resource elements. A product specific name that this resource should be mapped to. The name of this resource, as defined by the resource's name element or defaulted, is a name that is local to the application component using the resource. (It's a name in the JNDI java:comp/env namespace.) Many application servers provide a way to map these local names to names of resources known to the application server. This mapped name is often a global JNDI name, but may be a name of any form. Application servers are not required to support any particular form or type of mapped name, nor the ability to use mapped names. The mapped name is product-dependent and often installation-dependent. No use of a mapped name is portable. Configuration of a DataSource. Description of this DataSource. The name element specifies the JNDI name of the data source being defined. DataSource, XADataSource or ConnectionPoolDataSource implementation class. Database server name. Port number where a server is listening for requests. Name of a database on a server. url property is specified along with other standard DataSource properties such as serverName, databaseName and portNumber, the more specific properties will take precedence and url will be ignored. ]]> User name to use for connection authentication. Password to use for connection authentication. JDBC DataSource property. This may be a vendor-specific property or a less commonly used DataSource property. Sets the maximum time in seconds that this data source will wait while attempting to connect to a database. Set to false if connections should not participate in transactions. Isolation level for connections. Number of connections that should be created when a connection pool is initialized. Maximum number of connections that should be concurrently allocated for a connection pool. Minimum number of connections that should be concurrently allocated for a connection pool. The number of seconds that a physical connection should remain unused in the pool before the connection is closed for a connection pool. The total number of statements that a connection pool should keep open. The description type is used by a description element to provide text describing the parent element. The elements that use this type should include any information that the Deployment Component's Deployment File file producer wants to provide to the consumer of the Deployment Component's Deployment File (i.e., to the Deployer). Typically, the tools used by such a Deployment File consumer will display the description when processing the parent element that contains the description. The lang attribute defines the language that the description is provided in. The default value is "en" (English). This type defines a dewey decimal that is used to describe versions of documents. Employee Self Service The value of the xml:lang attribute is "en" (English) by default. ]]> EmployeeRecord ../products/product.jar#ProductEJB ]]> The ejb-local-refType is used by ejb-local-ref elements for the declaration of a reference to an enterprise bean's local home or to the local business interface of a 3.0 bean. The declaration consists of: - an optional description - the EJB reference name used in the code of the Deployment Component that's referencing the enterprise bean. - the optional expected type of the referenced enterprise bean - the optional expected local interface of the referenced enterprise bean or the local business interface of the referenced enterprise bean. - the optional expected local home interface of the referenced enterprise bean. Not applicable if this ejb-local-ref refers to the local business interface of a 3.0 bean. - optional ejb-link information, used to specify the referenced enterprise bean - optional elements to define injection of the named enterprise bean into a component field or property. ejb/Payroll ]]> The ejb-refType is used by ejb-ref elements for the declaration of a reference to an enterprise bean's home or to the remote business interface of a 3.0 bean. The declaration consists of: - an optional description - the EJB reference name used in the code of the Deployment Component that's referencing the enterprise bean. - the optional expected type of the referenced enterprise bean - the optional remote interface of the referenced enterprise bean or the remote business interface of the referenced enterprise bean - the optional expected home interface of the referenced enterprise bean. Not applicable if this ejb-ref refers to the remote business interface of a 3.0 bean. - optional ejb-link information, used to specify the referenced enterprise bean - optional elements to define injection of the named enterprise bean into a component field or property The ejb-ref-typeType contains the expected type of the referenced enterprise bean. The ejb-ref-type designates a value that must be one of the following: Entity Session This type is used to designate an empty element when used. The env-entryType is used to declare an application's environment entry. The declaration consists of an optional description, the name of the environment entry, a type (optional if the value is injected, otherwise required), and an optional value. It also includes optional elements to define injection of the named resource into fields or JavaBeans properties. If a value is not specified and injection is requested, no injection will occur and no entry of the specified name will be created. This allows an initial value to be specified in the source code without being incorrectly changed when no override has been specified. If a value is not specified and no injection is requested, a value must be supplied during deployment. This type is used by env-entry elements. minAmount ]]> java.lang.Integer ]]> 100.00 ]]> java.lang.Boolean java.lang.Class com.example.Color ]]> The elements that use this type designate the name of a Java class or interface. The name is in the form of a "binary name", as defined in the JLS. This is the form of name used in Class.forName(). Tools that need the canonical name (the name used in source code) will need to convert this binary name to the canonical name. This type defines four different values which can designate boolean values. This includes values yes and no which are not designated by xsd:boolean The icon type contains small-icon and large-icon elements that specify the file names for small and large GIF, JPEG, or PNG icon images used to represent the parent element in a GUI tool. The xml:lang attribute defines the language that the icon file names are provided in. Its value is "en" (English) by default. employee-service-icon16x16.jpg ]]> employee-service-icon32x32.jpg ]]> An injection target specifies a class and a name within that class into which a resource should be injected. The injection target class specifies the fully qualified class name that is the target of the injection. The Java EE specifications describe which classes can be an injection target. The injection target name specifies the target within the specified class. The target is first looked for as a JavaBeans property name. If not found, the target is looked for as a field name. The specified resource will be injected into the target during initialization of the class by either calling the set method for the target property or by setting a value into the named field. The following transaction isolation levels are allowed (see documentation for the java.sql.Connection interface): TRANSACTION_READ_UNCOMMITTED TRANSACTION_READ_COMMITTED TRANSACTION_REPEATABLE_READ TRANSACTION_SERIALIZABLE The java-identifierType defines a Java identifier. The users of this type should further verify that the content does not contain Java reserved keywords. This is a generic type that designates a Java primitive type or a fully qualified name of a Java interface/type, or an array of such types. : Example: jdbc:mysql://localhost:3307/testdb ]]> The jndi-nameType type designates a JNDI name in the Deployment Component's environment and is relative to the java:comp/env context. A JNDI name must be unique within the Deployment Component. com.aardvark.payroll.PayrollHome ]]> The lifecycle-callback type specifies a method on a class to be called when a lifecycle event occurs. Note that each class may have only one lifecycle callback method for any given event and that the method may not be overloaded. If the lifefycle-callback-class element is missing then the class defining the callback is assumed to be the component class in scope at the place in the descriptor in which the callback definition appears. The listenerType indicates the deployment properties for a web application listener bean. The listener-class element declares a class in the application must be registered as a web application listener bean. The value is the fully qualified classname of the listener class. The localType defines the fully-qualified name of an enterprise bean's local interface. The local-homeType defines the fully-qualified name of an enterprise bean's local home interface. This type is a general type that can be used to declare parameter/value lists. The param-name element contains the name of a parameter. The param-value element contains the value of a parameter. The elements that use this type designate either a relative path or an absolute path starting with a "/". In elements that specify a pathname to a file within the same Deployment File, relative filenames (i.e., those not starting with "/") are considered relative to the root of the Deployment File's namespace. Absolute filenames (i.e., those starting with "/") also specify names in the root of the Deployment File's namespace. In general, relative names are preferred. The exception is .war files where absolute names are preferred for consistency with the Servlet API. myPersistenceContext myPersistenceContext PersistenceUnit1 Extended ]]> The persistence-context-ref-name element specifies the name of a persistence context reference; its value is the environment entry name used in Deployment Component code. The name is a JNDI name relative to the java:comp/env context. The Application Assembler(or BeanProvider) may use the following syntax to avoid the need to rename persistence units to have unique names within a Java EE application. The Application Assembler specifies the pathname of the root of the persistence.xml file for the referenced persistence unit and appends the name of the persistence unit separated from the pathname by #. The pathname is relative to the referencing application component jar file. In this manner, multiple persistence units with the same persistence unit name may be uniquely identified when the Application Assembler cannot change persistence unit names. Used to specify properties for the container or persistence provider. Vendor-specific properties may be included in the set of properties. Properties that are not recognized by a vendor must be ignored. Entries that make use of the namespace javax.persistence and its subnamespaces must not be used for vendor-specific properties. The namespace javax.persistence is reserved for use by the specification. The persistence-context-typeType specifies the transactional nature of a persistence context reference. The value of the persistence-context-type element must be one of the following: Transaction Extended Specifies a name/value pair. myPersistenceUnit myPersistenceUnit PersistenceUnit1 ]]> The persistence-unit-ref-name element specifies the name of a persistence unit reference; its value is the environment entry name used in Deployment Component code. The name is a JNDI name relative to the java:comp/env context. The Application Assembler(or BeanProvider) may use the following syntax to avoid the need to rename persistence units to have unique names within a Java EE application. The Application Assembler specifies the pathname of the root of the persistence.xml file for the referenced persistence unit and appends the name of the persistence unit separated from the pathname by #. The pathname is relative to the referencing application component jar file. In this manner, multiple persistence units with the same persistence unit name may be uniquely identified when the Application Assembler cannot change persistence unit names. com.wombat.empl.EmployeeService ]]> jms/StockQueue javax.jms.Queue ]]> The resource-env-ref-name element specifies the name of a resource environment reference; its value is the environment entry name used in the Deployment Component code. The name is a JNDI name relative to the java:comp/env context and must be unique within a Deployment Component. The resource-env-ref-type element specifies the type of a resource environment reference. It is the fully qualified name of a Java language class or interface. jdbc/EmployeeAppDB javax.sql.DataSource Container Shareable ]]> The res-ref-name element specifies the name of a resource manager connection factory reference. The name is a JNDI name relative to the java:comp/env context. The name must be unique within a Deployment File. The res-type element specifies the type of the data source. The type is specified by the fully qualified Java language class or interface expected to be implemented by the data source. The res-authType specifies whether the Deployment Component code signs on programmatically to the resource manager, or whether the Container will sign on to the resource manager on behalf of the Deployment Component. In the latter case, the Container uses information that is supplied by the Deployer. The value must be one of the two following: Application Container The res-sharing-scope type specifies whether connections obtained through the given resource manager connection factory reference can be shared. The value, if specified, must be one of the two following: Shareable Unshareable The default value is Shareable. The run-asType specifies the run-as identity to be used for the execution of a component. It contains an optional description, and the name of a security role. The role-nameType designates the name of a security role. The name must conform to the lexical rules for a token. This role includes all employees who are authorized to access the employee service application. employee ]]> The security-role-refType contains the declaration of a security role reference in a component's or a Deployment Component's code. The declaration consists of an optional description, the security role name used in the code, and an optional link to a security role. If the security role is not specified, the Deployer must choose an appropriate security role. The value of the role-name element must be the String used as the parameter to the EJBContext.isCallerInRole(String roleName) method or the HttpServletRequest.isUserInRole(String role) method. The role-link element is a reference to a defined security role. The role-link element must contain the name of one of the security roles defined in the security-role elements. This type adds an "id" attribute to xsd:QName. This type adds an "id" attribute to xsd:boolean. This type adds an "id" attribute to xsd:NMTOKEN. This type adds an "id" attribute to xsd:anyURI. This type adds an "id" attribute to xsd:integer. This type adds an "id" attribute to xsd:positiveInteger. This type adds an "id" attribute to xsd:nonNegativeInteger. This type adds an "id" attribute to xsd:string. This is a special string datatype that is defined by Java EE as a base type for defining collapsed strings. When schemas require trailing/leading space elimination as well as collapsing the existing whitespace, this base type may be used. This simple type designates a boolean with only two permissible values - true - false The url-patternType contains the url pattern of the mapping. It must follow the rules specified in Section 11.2 of the Servlet API Specification. This pattern is assumed to be in URL-decoded form and must not contain CR(#xD) or LF(#xA). If it contains those characters, the container must inform the developer with a descriptive error message. The container must preserve all characters including whitespaces. CorporateStocks ]]> The message-destination-name element specifies a name for a message destination. This name must be unique among the names of message destinations within the Deployment File. A product specific name that this message destination should be mapped to. Each message-destination-ref element that references this message destination will define a name in the namespace of the referencing component or in one of the other predefined namespaces. Many application servers provide a way to map these local names to names of resources known to the application server. This mapped name is often a global JNDI name, but may be a name of any form. Each of the local names should be mapped to this same global name. Application servers are not required to support any particular form or type of mapped name, nor the ability to use mapped names. The mapped name is product-dependent and often installation-dependent. No use of a mapped name is portable. The JNDI name to be looked up to resolve the message destination. jms/StockQueue javax.jms.Queue Consumes CorporateStocks ]]> The message-destination-ref-name element specifies the name of a message destination reference; its value is the environment entry name used in Deployment Component code. The message-destination-usageType specifies the use of the message destination indicated by the reference. The value indicates whether messages are consumed from the message destination, produced for the destination, or both. The Assembler makes use of this information in linking producers of a destination with its consumers. The value of the message-destination-usage element must be one of the following: Consumes Produces ConsumesProduces javax.jms.Queue ]]> The message-destination-linkType is used to link a message destination reference or message-driven bean to a message destination. The Assembler sets the value to reflect the flow of messages between producers and consumers in the application. The value must be the message-destination-name of a message destination in the same Deployment File or in another Deployment File in the same Java EE application unit. Alternatively, the value may be composed of a path name specifying a Deployment File containing the referenced message destination with the message-destination-name of the destination appended and separated from the path name by "#". The path name is relative to the Deployment File containing Deployment Component that is referencing the message destination. This allows multiple message destinations with the same name to be uniquely identified. xsddiagram-0.16/Tests/COLLADASchema_141.xsd0000644000175000017500000145111511460476130020036 0ustar mathieumathieu COLLADA Schema Version 1.4.1 (June 23, 2006) Copyright (C) 2005, 2006 The Khronos Group Inc., Sony Computer Entertainment Inc. All Rights Reserved. Khronos is a trademark of The Khronos Group Inc. COLLADA is a trademark of Sony Computer Entertainment Inc. used by permission by Khronos. Note that this software document is distributed on an "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. enable-xmlns The COLLADA element declares the root of the document that comprises some of the content in the COLLADA schema. The COLLADA element must contain an asset element. The COLLADA element may contain any number of library_animations elements. The COLLADA element may contain any number of library_animation_clips elements. The COLLADA element may contain any number of library_cameras elements. The COLLADA element may contain any number of library_controllerss elements. The COLLADA element may contain any number of library_geometriess elements. The COLLADA element may contain any number of library_effects elements. The COLLADA element may contain any number of library_force_fields elements. The COLLADA element may contain any number of library_images elements. The COLLADA element may contain any number of library_lights elements. The COLLADA element may contain any number of library_materials elements. The COLLADA element may contain any number of library_nodes elements. The COLLADA element may contain any number of library_materials elements. The COLLADA element may contain any number of library_physics_models elements. The COLLADA element may contain any number of library_physics_scenes elements. The COLLADA element may contain any number of library_visual_scenes elements. The scene embodies the entire set of information that can be visualized from the contents of a COLLADA resource. The scene element declares the base of the scene hierarchy or scene graph. The scene contains elements that comprise much of the visual and transformational information content as created by the authoring tools. The instance_physics_scene element declares the instantiation of a COLLADA physics_scene resource. The instance_physics_scene element may appear any number of times. The instance_visual_scene element declares the instantiation of a COLLADA visual_scene resource. The instance_visual_scene element may only appear once. The extra element may appear any number of times. The extra element may appear any number of times. The version attribute is the COLLADA schema revision with which the instance document conforms. Required Attribute. The xml:base attribute allows you to define the base URI for this COLLADA document. See http://www.w3.org/TR/xmlbase/ for more information. An enumuerated type specifying the acceptable morph methods. An enumerated type specifying the acceptable node types. This type is used for URI reference which can only reference a resource declared within it's same document. An enumerated type specifying the acceptable up-axis values. An enumerated type specifying the acceptable document versions. The InputGlobal type is used to represent inputs that can reference external resources. The semantic attribute is the user-defined meaning of the input connection. Required attribute. The source attribute indicates the location of the data source. Required attribute. The InputLocal type is used to represent inputs that can only reference resources declared in the same document. The semantic attribute is the user-defined meaning of the input connection. Required attribute. The source attribute indicates the location of the data source. Required attribute. The InputLocalOffset type is used to represent indexed inputs that can only reference resources declared in the same document. The offset attribute represents the offset into the list of indices. If two input elements share the same offset, they will be indexed the same. This works as a simple form of compression for the list of indices as well as defining the order the inputs should be used in. Required attribute. The semantic attribute is the user-defined meaning of the input connection. Required attribute. The source attribute indicates the location of the data source. Required attribute. The set attribute indicates which inputs should be grouped together as a single set. This is helpful when multiple inputs share the same semantics. The InstanceWithExtra type is used for all generic instance elements. A generic instance element is one which does not have any specific child elements declared. The extra element may occur any number of times. The url attribute refers to resource to instantiate. This may refer to a local resource using a relative URL fragment identifier that begins with the “#” character. The url attribute may refer to an external resource using an absolute or relative URL. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The TargetableFloat type is used to represent elements which contain a single float value which can be targeted for animation. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. The TargetableFloat3 type is used to represent elements which contain a float3 value which can be targeted for animation. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. The IDREF_array element declares the storage for a homogenous array of ID reference values. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The count attribute indicates the number of values in the array. Required attribute. The Name_array element declares the storage for a homogenous array of Name string values. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The count attribute indicates the number of values in the array. Required attribute. The bool_array element declares the storage for a homogenous array of boolean values. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The count attribute indicates the number of values in the array. Required attribute. The float_array element declares the storage for a homogenous array of floating point values. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The count attribute indicates the number of values in the array. Required attribute. The digits attribute indicates the number of significant decimal digits of the float values that can be contained in the array. The default value is 6. Optional attribute. The magnitude attribute indicates the largest exponent of the float values that can be contained in the array. The default value is 38. Optional attribute. The int_array element declares the storage for a homogenous array of integer values. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The count attribute indicates the number of values in the array. Required attribute. The minInclusive attribute indicates the smallest integer value that can be contained in the array. The default value is –2147483648. Optional attribute. The maxInclusive attribute indicates the largest integer value that can be contained in the array. The default value is 2147483647. Optional attribute. The accessor element declares an access pattern to one of the array elements: float_array, int_array, Name_array, bool_array, and IDREF_array. The accessor element describes access to arrays that are organized in either an interleaved or non-interleaved manner, depending on the offset and stride attributes. The accessor element may have any number of param elements. The count attribute indicates the number of times the array is accessed. Required attribute. The offset attribute indicates the index of the first value to be read from the array. The default value is 0. Optional attribute. The source attribute indicates the location of the array to access using a URL expression. Required attribute. The stride attribute indicates number of values to be considered a unit during each access to the array. The default value is 1, indicating that a single value is accessed. Optional attribute. The param element declares parametric information regarding its parent element. The name attribute is the text string name of this element. Optional attribute. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. The semantic attribute is the user-defined meaning of the parameter. Optional attribute. The type attribute indicates the type of the value data. This text string must be understood by the application. Required attribute. The source element declares a data repository that provides values according to the semantics of an input element that refers to it. The source element may contain an asset element. The source element may contain an IDREF_array. The source element may contain a Name_array. The source element may contain a bool_array. The source element may contain a float_array. The source element may contain an int_array. The technique common specifies the common method for accessing this source element's data. The source's technique_common must have one and only one accessor. This element may contain any number of non-common profile techniques. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Required attribute. The name attribute is the text string name of this element. Optional attribute. Geometry describes the visual shape and appearance of an object in the scene. The geometry element categorizes the declaration of geometric information. Geometry is a branch of mathematics that deals with the measurement, properties, and relationships of points, lines, angles, surfaces, and solids. The geometry element may contain an asset element. The geometry element may contain only one mesh or convex_mesh. The geometry element may contain only one mesh or convex_mesh. The extra element may appear any number of times. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The mesh element contains vertex and primitive information sufficient to describe basic geometric meshes. The mesh element must contain one or more source elements. The mesh element must contain one vertices element. The mesh element may contain any number of lines elements. The mesh element may contain any number of linestrips elements. The mesh element may contain any number of polygons elements. The mesh element may contain any number of polylist elements. The mesh element may contain any number of triangles elements. The mesh element may contain any number of trifans elements. The mesh element may contain any number of tristrips elements. The extra element may appear any number of times. The spline element contains control vertex information sufficient to describe basic splines. The mesh element must contain one or more source elements. The control vertices element must occur exactly one time. It is used to describe the CVs of the spline. The input element must occur at least one time. These inputs are local inputs. The extra element may appear any number of times. The extra element may appear any number of times. The p element represents primitive data for the primitive types (lines, linestrips, polygons, polylist, triangles, trifans, tristrips). The p element contains indices that reference into the parent's source elements referenced by the input elements. The lines element provides the information needed to bind vertex attributes together and then organize those vertices into individual lines. Each line described by the mesh has two vertices. The first line is formed from first and second vertices. The second line is formed from the third and fourth vertices and so on. The input element may occur any number of times. This input is a local input with the offset and set attributes. The p element may occur once. The extra element may appear any number of times. The name attribute is the text string name of this element. Optional attribute. The count attribute indicates the number of line primitives. Required attribute. The material attribute declares a symbol for a material. This symbol is bound to a material at the time of instantiation. If the material attribute is not specified then the lighting and shading results are application defined. Optional attribute. The linestrips element provides the information needed to bind vertex attributes together and then organize those vertices into connected line-strips. Each line-strip described by the mesh has an arbitrary number of vertices. Each line segment within the line-strip is formed from the current vertex and the preceding vertex. The input element may occur any number of times. This input is a local input with the offset and set attributes. The linestrips element may have any number of p elements. The extra element may appear any number of times. The name attribute is the text string name of this element. Optional attribute. The count attribute indicates the number of linestrip primitives. Required attribute. The material attribute declares a symbol for a material. This symbol is bound to a material at the time of instantiation. If the material attribute is not specified then the lighting and shading results are application defined. Optional attribute. The polygons element provides the information needed to bind vertex attributes together and then organize those vertices into individual polygons. The polygons described can contain arbitrary numbers of vertices. These polygons may be self intersecting and may also contain holes. The input element may occur any number of times. This input is a local input with the offset and set attributes. The p element may occur any number of times. The ph element descripes a polygon with holes. Theere may only be one p element. The h element represents a hole in the polygon specified. There must be at least one h element. The extra element may appear any number of times. The name attribute is the text string name of this element. Optional attribute. The count attribute indicates the number of polygon primitives. Required attribute. The material attribute declares a symbol for a material. This symbol is bound to a material at the time of instantiation. If the material attribute is not specified then the lighting and shading results are application defined. Optional attribute. The polylist element provides the information needed to bind vertex attributes together and then organize those vertices into individual polygons. The polygons described in polylist can contain arbitrary numbers of vertices. Unlike the polygons element, the polylist element cannot contain polygons with holes. The input element may occur any number of times. This input is a local input with the offset and set attributes. The vcount element contains a list of integers describing the number of sides for each polygon described by the polylist element. The vcount element may occur once. The p element may occur once. The extra element may appear any number of times. The name attribute is the text string name of this element. Optional attribute. The count attribute indicates the number of polygon primitives. Required attribute. The material attribute declares a symbol for a material. This symbol is bound to a material at the time of instantiation. If the material attribute is not specified then the lighting and shading results are application defined. Optional attribute. The triangles element provides the information needed to bind vertex attributes together and then organize those vertices into individual triangles. Each triangle described by the mesh has three vertices. The first triangle is formed from the first, second, and third vertices. The second triangle is formed from the fourth, fifth, and sixth vertices, and so on. The input element may occur any number of times. This input is a local input with the offset and set attributes. The triangles element may have any number of p elements. The extra element may appear any number of times. The name attribute is the text string name of this element. Optional attribute. The count attribute indicates the number of triangle primitives. Required attribute. The material attribute declares a symbol for a material. This symbol is bound to a material at the time of instantiation. Optional attribute. If the material attribute is not specified then the lighting and shading results are application defined. The trifans element provides the information needed to bind vertex attributes together and then organize those vertices into connected triangles. Each triangle described by the mesh has three vertices. The first triangle is formed from first, second, and third vertices. Each subsequent triangle is formed from the current vertex, reusing the first and the previous vertices. The input element may occur any number of times. This input is a local input with the offset and set attributes. The trifans element may have any number of p elements. The extra element may appear any number of times. The name attribute is the text string name of this element. Optional attribute. The count attribute indicates the number of triangle fan primitives. Required attribute. The material attribute declares a symbol for a material. This symbol is bound to a material at the time of instantiation. If the material attribute is not specified then the lighting and shading results are application defined. Optional attribute. The tristrips element provides the information needed to bind vertex attributes together and then organize those vertices into connected triangles. Each triangle described by the mesh has three vertices. The first triangle is formed from first, second, and third vertices. Each subsequent triangle is formed from the current vertex, reusing the previous two vertices. The input element may occur any number of times. This input is a local input with the offset and set attributes. The tristrips element may have any number of p elements. The extra element may appear any number of times. The name attribute is the text string name of this element. Optional attribute. The count attribute indicates the number of triangle strip primitives. Required attribute. The material attribute declares a symbol for a material. This symbol is bound to a material at the time of instantiation. If the material attribute is not specified then the lighting and shading results are application defined. Optional attribute. The vertices element declares the attributes and identity of mesh-vertices. The vertices element describes mesh-vertices in a mesh geometry. The mesh-vertices represent the position (identity) of the vertices comprising the mesh and other vertex attributes that are invariant to tessellation. The input element must occur at least one time. These inputs are local inputs. The extra element may appear any number of times. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Required attribute. The name attribute is the text string name of this element. Optional attribute. The lookat element contains a position and orientation transformation suitable for aiming a camera. The lookat element contains three mathematical vectors within it that describe: 1. The position of the object; 2. The position of the interest point; 3. The direction that points up. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. Matrix transformations embody mathematical changes to points within a coordinate systems or the coordinate system itself. The matrix element contains a 4-by-4 matrix of floating-point values. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. The rotate element contains an angle and a mathematical vector that represents the axis of rotation. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. The scale element contains a mathematical vector that represents the relative proportions of the X, Y and Z axes of a coordinated system. The skew element contains an angle and two mathematical vectors that represent the axis of rotation and the axis of translation. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. The translate element contains a mathematical vector that represents the distance along the X, Y and Z-axes. The image element declares the storage for the graphical representation of an object. The image element best describes raster image data, but can conceivably handle other forms of imagery. The image elements allows for specifying an external image file with the init_from element or embed image data with the data element. The image element may contain an asset element. The data child element contains a sequence of hexadecimal encoded binary octets representing the embedded image data. The init_from element allows you to specify an external image file to use for the image element. The extra element may appear any number of times. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The format attribute is a text string value that indicates the image format. Optional attribute. The height attribute is an integer value that indicates the height of the image in pixel units. Optional attribute. The width attribute is an integer value that indicates the width of the image in pixel units. Optional attribute. The depth attribute is an integer value that indicates the depth of the image in pixel units. A 2-D image has a depth of 1, which is also the default value. Optional attribute. The light element declares a light source that illuminates the scene. Light sources have many different properties and radiate light in many different patterns and frequencies. The light element may contain an asset element. The technique_common element specifies the light information for the common profile which all COLLADA implementations need to support. The ambient element declares the parameters required to describe an ambient light source. An ambient light is one that lights everything evenly, regardless of location or orientation. The color element contains three floating point numbers specifying the color of the light. The color element must occur exactly once. The directional element declares the parameters required to describe a directional light source. A directional light is one that lights everything from the same direction, regardless of location. The light’s default direction vector in local coordinates is [0,0,-1], pointing down the -Z axis. The actual direction of the light is defined by the transform of the node where the light is instantiated. The color element contains three floating point numbers specifying the color of the light. The color element must occur exactly once. The point element declares the parameters required to describe a point light source. A point light source radiates light in all directions from a known location in space. The intensity of a point light source is attenuated as the distance to the light source increases. The position of the light is defined by the transform of the node in which it is instantiated. The color element contains three floating point numbers specifying the color of the light. The color element must occur exactly once. The constant_attenuation is used to calculate the total attenuation of this light given a distance. The equation used is A = constant_attenuation + Dist*linear_attenuation + Dist^2*quadratic_attenuation. The linear_attenuation is used to calculate the total attenuation of this light given a distance. The equation used is A = constant_attenuation + Dist*linear_attenuation + Dist^2*quadratic_attenuation. The quadratic_attenuation is used to calculate the total attenuation of this light given a distance. The equation used is A = constant_attenuation + Dist*linear_attenuation + Dist^2*quadratic_attenuation. The spot element declares the parameters required to describe a spot light source. A spot light source radiates light in one direction from a known location in space. The light radiates from the spot light source in a cone shape. The intensity of the light is attenuated as the radiation angle increases away from the direction of the light source. The intensity of a spot light source is also attenuated as the distance to the light source increases. The position of the light is defined by the transform of the node in which it is instantiated. The light’s default direction vector in local coordinates is [0,0,-1], pointing down the -Z axis. The actual direction of the light is defined by the transform of the node where the light is instantiated. The color element contains three floating point numbers specifying the color of the light. The color element must occur exactly once. The constant_attenuation is used to calculate the total attenuation of this light given a distance. The equation used is A = constant_attenuation + Dist*linear_attenuation + Dist^2*quadratic_attenuation. The linear_attenuation is used to calculate the total attenuation of this light given a distance. The equation used is A = constant_attenuation + Dist*linear_attenuation + Dist^2*quadratic_attenuation. The quadratic_attenuation is used to calculate the total attenuation of this light given a distance. The equation used is A = constant_attenuation + Dist*linear_attenuation + Dist^2*quadratic_attenuation. The falloff_angle is used to specify the amount of attenuation based on the direction of the light. The falloff_exponent is used to specify the amount of attenuation based on the direction of the light. This element may contain any number of non-common profile techniques. The extra element may appear any number of times. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. Materials describe the visual appearance of a geometric object. The material element may contain an asset element. The material must instance an effect. The extra element may appear any number of times. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The camera element declares a view into the scene hierarchy or scene graph. The camera contains elements that describe the camera’s optics and imager. The camera element may contain an asset element. Optics represents the apparatus on a camera that projects the image onto the image sensor. The technique_common element specifies the optics information for the common profile which all COLLADA implementations need to support. The orthographic element describes the field of view of an orthographic camera. The xmag element contains a floating point number describing the horizontal magnification of the view. The ymag element contains a floating point number describing the vertical magnification of the view. It can also have a sid. The aspect_ratio element contains a floating point number describing the aspect ratio of the field of view. If the aspect_ratio element is not present the aspect ratio is to be calculated from the xmag or ymag elements and the current viewport. The znear element contains a floating point number that describes the distance to the near clipping plane. The znear element must occur exactly once. The zfar element contains a floating point number that describes the distance to the far clipping plane. The zfar element must occur exactly once. The perspective element describes the optics of a perspective camera. The xfov element contains a floating point number describing the horizontal field of view in degrees. The yfov element contains a floating point number describing the verticle field of view in degrees. The aspect_ratio element contains a floating point number describing the aspect ratio of the field of view. If the aspect_ratio element is not present the aspect ratio is to be calculated from the xfov or yfov elements and the current viewport. The znear element contains a floating point number that describes the distance to the near clipping plane. The znear element must occur exactly once. The zfar element contains a floating point number that describes the distance to the far clipping plane. The zfar element must occur exactly once. This element may contain any number of non-common profile techniques. The extra element may appear any number of times. Imagers represent the image sensor of a camera (for example film or CCD). This element may contain any number of non-common profile techniques. There is no common technique for imager. The extra element may appear any number of times. The extra element may appear any number of times. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The animation element categorizes the declaration of animation information. The animation hierarchy contains elements that describe the animation’s key-frame data and sampler functions, ordered in such a way to group together animations that should be executed together. The animation element may contain an asset element. The animation element may contain any number of source elements. The animation element may contain any number of sampler elements. The animation element may contain any number of channel elements. The animation may be hierarchical and may contain any number of other animation elements. The extra element may appear any number of times. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The animation_clip element defines a section of the animation curves to be used together as an animation clip. The animation_clip element may contain an asset element. The animation_clip must instance at least one animation element. The extra element may appear any number of times. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The start attribute is the time in seconds of the beginning of the clip. This time is the same as that used in the key-frame data and is used to determine which set of key-frames will be included in the clip. The start time does not specify when the clip will be played. If the time falls between two keyframes of a referenced animation, an interpolated value should be used. The default value is 0.0. Optional attribute. The end attribute is the time in seconds of the end of the clip. This is used in the same way as the start time. If end is not specified, the value is taken to be the end time of the longest animation. Optional attribute. The channel element declares an output channel of an animation. The source attribute indicates the location of the sampler using a URL expression. The sampler must be declared within the same document. Required attribute. The target attribute indicates the location of the element bound to the output of the sampler. This text string is a path-name following a simple syntax described in Address Syntax. Required attribute. The sampler element declares an N-dimensional function used for animation. Animation function curves are represented by 1-D sampler elements in COLLADA. The sampler defines sampling points and how to interpolate between them. The input element must occur at least one time. These inputs are local inputs. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The controller element categorizes the declaration of generic control information. A controller is a device or mechanism that manages and directs the operations of another object. The controller element may contain an asset element. The controller element may contain either a skin element or a morph element. The controller element may contain either a skin element or a morph element. The extra element may appear any number of times. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The skin element contains vertex and primitive information sufficient to describe blend-weight skinning. This provides extra information about the position and orientation of the base mesh before binding. If bind_shape_matrix is not specified then an identity matrix may be used as the bind_shape_matrix. The bind_shape_matrix element may occur zero or one times. The skin element must contain at least three source elements. The joints element associates joint, or skeleton, nodes with attribute data. In COLLADA, this is specified by the inverse bind matrix of each joint (influence) in the skeleton. The input element must occur at least twice. These inputs are local inputs. The extra element may appear any number of times. The vertex_weights element associates a set of joint-weight pairs with each vertex in the base mesh. The input element must occur at least twice. The vcount element contains a list of integers describing the number of influences for each vertex. The vcount element may occur once. The v element describes which bones and attributes are associated with each vertex. An index of –1 into the array of joints refers to the bind shape. Weights should be normalized before use. The v element must occur zero or one times. The extra element may appear any number of times. The count attribute describes the number of vertices in the base mesh. Required element. The extra element may appear any number of times. The source attribute contains a URI reference to the base mesh, (a static mesh or a morphed mesh). This also provides the bind-shape of the skinned mesh. Required attribute. The morph element describes the data required to blend between sets of static meshes. Each possible mesh that can be blended (a morph target) must be specified. The morph element must contain at least two source elements. The targets element declares the morph targets, their weights and any user defined attributes associated with them. The input element must occur at least twice. These inputs are local inputs. The extra element may appear any number of times. The extra element may appear any number of times. The method attribute specifies the which blending technique to use. The accepted values are NORMALIZED, and RELATIVE. The default value if not specified is NORMALIZED. Optional attribute. The source attribute indicates the base mesh. Required attribute. The asset element defines asset management information regarding its parent element. The contributor element defines authoring information for asset management The author element contains a string with the author's name. There may be only one author element. The authoring_tool element contains a string with the authoring tool's name. There may be only one authoring_tool element. The comments element contains a string with comments from this contributor. There may be only one comments element. The copyright element contains a string with copyright information. There may be only one copyright element. The source_data element contains a URI reference to the source data used for this asset. There may be only one source_data element. The created element contains the date and time that the parent element was created and is represented in an ISO 8601 format. The created element may appear zero or one time. The keywords element contains a list of words used as search criteria for the parent element. The keywords element may appear zero or more times. The modified element contains the date and time that the parent element was last modified and represented in an ISO 8601 format. The modified element may appear zero or one time. The revision element contains the revision information for the parent element. The revision element may appear zero or one time. The subject element contains a description of the topical subject of the parent element. The subject element may appear zero or one time. The title element contains the title information for the parent element. The title element may appear zero or one time. The unit element contains descriptive information about unit of measure. It has attributes for the name of the unit and the measurement with respect to the meter. The unit element may appear zero or one time. The meter attribute specifies the measurement with respect to the meter. The default value for the meter attribute is “1.0”. The name attribute specifies the name of the unit. The default value for the name attribute is “meter”. The up_axis element contains descriptive information about coordinate system of the geometric data. All coordinates are right-handed by definition. This element specifies which axis is considered up. The default is the Y-axis. The up_axis element may appear zero or one time. The extra element declares additional information regarding its parent element. The extra element may contain an asset element. This element must contain at least one non-common profile technique. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The type attribute indicates the type of the value data. This text string must be understood by the application. Optional attribute. enable-xmlns The technique element declares the information used to process some portion of the content. Each technique conforms to an associated profile. Techniques generally act as a “switch”. If more than one is present for a particular portion of content, on import, one or the other is picked, but usually not both. Selection should be based on which profile the importing application can support. Techniques contain application data and programs, making them assets that can be managed as a unit. The profile attribute indicates the type of profile. This is a vendor defined character string that indicates the platform or capability target for the technique. Required attribute. Nodes embody the hierarchical relationship of elements in the scene. The node element may contain an asset element. The node element may contain any number of lookat elements. The node element may contain any number of matrix elements. The node element may contain any number of rotate elements. The node element may contain any number of scale elements. The node element may contain any number of skew elements. The node element may contain any number of translate elements. The node element may instance any number of camera objects. The node element may instance any number of controller objects. The node element may instance any number of geometry objects. The node element may instance any number of light objects. The node element may instance any number of node elements or hierarchies objects. The node element may be hierarchical and be the parent of any number of other node elements. The extra element may appear any number of times. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. The type attribute indicates the type of the node element. The default value is “NODE”. Optional attribute. The layer attribute indicates the names of the layers to which this node belongs. For example, a value of “foreground glowing” indicates that this node belongs to both the ‘foreground’ layer and the ‘glowing’ layer. The default value is empty, indicating that the node doesn’t belong to any layer. Optional attribute. The visual_scene element declares the base of the visual_scene hierarchy or scene graph. The scene contains elements that comprise much of the visual and transformational information content as created by the authoring tools. The visual_scene element may contain an asset element. The visual_scene element must have at least one node element. The evaluate_scene element declares information specifying a specific way to evaluate this visual_scene. There may be any number of evaluate_scene elements. The render element describes one effect pass to evaluate the scene. There must be at least one render element. The layer element specifies which layer to render in this compositing step while evaluating the scene. You may specify any number of layers. The instance_effect element specifies which effect to render in this compositing step while evaluating the scene. The camera_node attribute refers to a node that contains a camera describing the viewpoint to render this compositing step from. The name attribute is the text string name of this element. Optional attribute. The extra element may appear any number of times. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. Bind a specific material to a piece of geometry, binding varying and uniform parameters at the same time. The bind_material element may contain any number of param elements. The technique_common element specifies the bind_material information for the common profile which all COLLADA implementations need to support. The instance_material element specifies the information needed to bind a geometry to a material. This element must appear at least once. This element may contain any number of non-common profile techniques. The extra element may appear any number of times. The instance_camera element declares the instantiation of a COLLADA camera resource. The instance_controller element declares the instantiation of a COLLADA controller resource. The skeleton element is used to indicate where a skin controller is to start to search for the joint nodes it needs. This element is meaningless for morph controllers. Bind a specific material to a piece of geometry, binding varying and uniform parameters at the same time. The extra element may appear any number of times. The url attribute refers to resource. This may refer to a local resource using a relative URL fragment identifier that begins with the “#” character. The url attribute may refer to an external resource using an absolute or relative URL. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The instance_effect element declares the instantiation of a COLLADA effect resource. Add a hint for a platform of which technique to use in this effect. A platform defines a string that specifies which platform this is hint is aimed for. A profile defines a string that specifies which API profile this is hint is aimed for. A reference to the technique to use for the specified platform. Assigns a new value to a previously defined parameter The extra element may appear any number of times. The url attribute refers to resource. This may refer to a local resource using a relative URL fragment identifier that begins with the “#” character. The url attribute may refer to an external resource using an absolute or relative URL. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The instance_force_field element declares the instantiation of a COLLADA force_field resource. The instance_geometry element declares the instantiation of a COLLADA geometry resource. Bind a specific material to a piece of geometry, binding varying and uniform parameters at the same time. The extra element may appear any number of times. The url attribute refers to resource. This may refer to a local resource using a relative URL fragment identifier that begins with the “#” character. The url attribute may refer to an external resource using an absolute or relative URL. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The instance_light element declares the instantiation of a COLLADA light resource. The instance_material element declares the instantiation of a COLLADA material resource. The bind element binds values to effect parameters upon instantiation. The semantic attribute specifies which effect parameter to bind. The target attribute specifies the location of the value to bind to the specified semantic. This text string is a path-name following a simple syntax described in the “Addressing Syntax” section. The bind_vertex_input element binds vertex inputs to effect parameters upon instantiation. The semantic attribute specifies which effect parameter to bind. The input_semantic attribute specifies which input semantic to bind. The input_set attribute specifies which input set to bind. The extra element may appear any number of times. The symbol attribute specifies which symbol defined from within the geometry this material binds to. The target attribute specifies the URL of the location of the object to instantiate. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The instance_node element declares the instantiation of a COLLADA node resource. The instance_physics_material element declares the instantiation of a COLLADA physics_material resource. This element allows instancing physics model within another physics model, or in a physics scene. The instance_physics_model element may instance any number of force_field elements. The instance_physics_model element may instance any number of rigid_body elements. The instance_physics_model element may instance any number of rigid_constraint elements. The extra element may appear any number of times. The url attribute refers to resource. This may refer to a local resource using a relative URL fragment identifier that begins with the “#” character. The url attribute may refer to an external resource using an absolute or relative URL. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The parent attribute points to the id of a node in the visual scene. This allows a physics model to be instantiated under a specific transform node, which will dictate the initial position and orientation, and could be animated to influence kinematic rigid bodies. This element allows instancing a rigid_body within an instance_physics_model. The technique_common element specifies the instance_rigid_body information for the common profile which all COLLADA implementations need to support. Specifies the initial angular velocity of the rigid_body instance in degrees per second around each axis, in the form of an X-Y-Z Euler rotation. Specifies the initial linear velocity of the rigid_body instance. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. The extra element may appear any number of times. This element may contain any number of non-common profile techniques. The extra element may appear any number of times. The body attribute indicates which rigid_body to instantiate. Required attribute. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The target attribute indicates which node is influenced by this rigid_body instance. Required attribute This element allows instancing a rigid_constraint within an instance_physics_model. The extra element may appear any number of times. The constraint attribute indicates which rigid_constraing to instantiate. Required attribute. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The library_animations element declares a module of animation elements. The library_animations element may contain an asset element. There must be at least one animation element. The extra element may appear any number of times. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The library_animation_clips element declares a module of animation_clip elements. The library_animation_clips element may contain an asset element. There must be at least one animation_clip element. The extra element may appear any number of times. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The library_cameras element declares a module of camera elements. The library_cameras element may contain an asset element. There must be at least one camera element. The extra element may appear any number of times. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The library_controllers element declares a module of controller elements. The library_controllers element may contain an asset element. There must be at least one controller element. The extra element may appear any number of times. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The library_geometries element declares a module of geometry elements. The library_geometries element may contain an asset element. There must be at least one geometry element. The extra element may appear any number of times. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The library_effects element declares a module of effect elements. The library_effects element may contain an asset element. There must be at least one effect element. The extra element may appear any number of times. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The library_force_fields element declares a module of force_field elements. The library_force_fields element may contain an asset element. There must be at least one force_field element. The extra element may appear any number of times. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The library_images element declares a module of image elements. The library_images element may contain an asset element. There must be at least one image element. The extra element may appear any number of times. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The library_lights element declares a module of light elements. The library_lights element may contain an asset element. There must be at least one light element. The extra element may appear any number of times. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The library_materials element declares a module of material elements. The library_materials element may contain an asset element. There must be at least one material element. The extra element may appear any number of times. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The library_nodes element declares a module of node elements. The library_nodes element may contain an asset element. There must be at least one node element. The extra element may appear any number of times. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The library_physics_materials element declares a module of physics_material elements. The library_physics_materials element may contain an asset element. There must be at least one physics_material element. The extra element may appear any number of times. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The library_physics_models element declares a module of physics_model elements. The library_physics_models element may contain an asset element. There must be at least one physics_model element. The extra element may appear any number of times. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The library_physics_scenes element declares a module of physics_scene elements. The library_physics_scenes element may contain an asset element. There must be at least one physics_scene element. The extra element may appear any number of times. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The library_visual_scenes element declares a module of visual_scene elements. The library_visual_scenes element may contain an asset element. There must be at least one visual_scene element. The extra element may appear any number of times. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. When a transparent opaque attribute is set to A_ONE, it means the transparency information will be taken from the alpha channel of the color, texture, or parameter supplying the value. The value of 1.0 is opaque in this mode. When a transparent opaque attribute is set to RGB_ZERO, it means the transparency information will be taken from the red, green, and blue channels of the color, texture, or parameter supplying the value. Each channel is modulated independently. The value of 0.0 is opaque in this mode. When a surface's type attribute is set to UNTYPED, its type is initially unknown and established later by the context in which it is used, such as by a texture sampler that references it. A surface of any other type may be changed into an UNTYPED surface at run-time, as if it were created by <newparam>, using <setparam>. If there is a type mismatch between a <setparam> operation and what the run-time decides the type should be, the result is profile- and platform-specific behavior. The per-texel layout of the format. The length of the string indicate how many channels there are and the letter respresents the name of the channel. There are typically 0 to 4 channels. RGB color map RGB color + Alpha map often used for color + transparency or other things packed into channel A like specular power Luminance map often used for light mapping Luminance+Alpha map often used for light mapping Depth map often used for displacement, parellax, relief, or shadow mapping Typically used for normal maps or 3component displacement maps. Typically used for normal maps where W is the depth for relief or parrallax mapping Each channel of the texel has a precision. Typically these are all linked together. An exact format lay lower the precision of an individual channel but applying a higher precision by linking the channels together may still convey the same information. For integers this typically represents 8 bits. For floats typically 16 bits. For integers this typically represents 8 to 24 bits. For floats typically 16 to 32 bits. For integers this typically represents 16 to 32 bits. For floats typically 24 to 32 bits. Each channel represents a range of values. Some example ranges are signed or unsigned integers, or between between a clamped range such as 0.0f to 1.0f, or high dynamic range via floating point Format is representing a decimal value that remains within the -1 to 1 range. Implimentation could be integer-fixedpoint or floats. Format is representing a decimal value that remains within the 0 to 1 range. Implimentation could be integer-fixedpoint or floats. Format is representing signed integer numbers. (ex. 8bits = -128 to 127) Format is representing unsigned integer numbers. (ex. 8bits = 0 to 255) Format should support full floating point ranges. High precision is expected to be 32bit. Mid precision may be 16 to 32 bit. Low precision is expected to be 16 bit. Additional hints about data relationships and other things to help the application pick the best format. colors are stored with respect to the sRGB 2.2 gamma curve rather than linear the texel's XYZ/RGB should be normalized such as in a normal map. the texel's XYZW/RGBA should be normalized such as in a normal map. The surface may use run-time compression. Considering the best compression based on desired, channel, range, precision, and options If the exact format cannot be resolve via other methods then the format_hint will describe the important features of the format so that the application may select a compatable or close format The per-texel layout of the format. The length of the string indicate how many channels there are and the letter respresents the name of the channel. There are typically 0 to 4 channels. Each channel represents a range of values. Some example ranges are signed or unsigned integers, or between between a clamped range such as 0.0f to 1.0f, or high dynamic range via floating point Each channel of the texel has a precision. Typically these are all linked together. An exact format lay lower the precision of an individual channel but applying a higher precision by linking the channels together may still convey the same information. Additional hints about data relationships and other things to help the application pick the best format. For 1D, 2D, RECT surface types This choice exists for consistancy with other init types (volume and cube). When other initialization methods are needed. Init the entire surface with one compound image such as DDS Init the entire surface with one compound image such as DDS Init mip level 0 of the surface with one compound image such as DDS. Use of this element expects that the surface has element mip_levels=0 or mipmap_generate. Init the entire surface with one compound image such as DDS Init all primary mip level 0 subsurfaces with one compound image such as DDS. Use of this element expects that the surface has element mip_levels=0 or mipmap_generate. This sequence exists to allow the order elements to be optional but require that if they exist there must be 6 of them. If the image dues not natively describe the face ordering then this series of order elements will describe which face the index belongs too Init each face mipchain with one compound image such as DDS This element is an IDREF which specifies the image to use to initialize a specific mip of a 1D or 2D surface, 3D slice, or Cube face. The common set of initalization options for surfaces. Choose which is appropriate for your surface based on type and other characteristics. described by the annotation docs on the child elements. This surface is intended to be initialized later externally by a "setparam" element. If it is used before being initialized there is profile and platform specific behavior. Most elements on the surface element containing this will be ignored including mip_levels, mipmap_generate, size, viewport_ratio, and format. Init as a target for depth, stencil, or color. It does not need image data. Surface should not have mipmap_generate when using this. Init a CUBE from a compound image such as DDS Init a 3D from a compound image such as DDS Init a 1D,2D,RECT,DEPTH from a compound image such as DDS Initialize the surface one sub-surface at a time by specifying combinations of mip, face, and slice which make sense for a particular surface type. Each sub-surface is initialized by a common 2D image, not a complex compound image such as DDS. If not all subsurfaces are initialized, it is invalid and will result in profile and platform specific behavior unless mipmap_generate is responsible for initializing the remainder of the sub-surfaces The fx_surface_common type is used to declare a resource that can be used both as the source for texture samples and as the target of a rendering pass. The common set of initalization options for surfaces. Choose which is appropriate for your surface based on the type attribute and other characteristics described by the annotation docs on the choiced child elements of this type. Contains a string representing the profile and platform specific texel format that the author would like this surface to use. If this element is not specified then the application will use a common format R8G8B8A8 with linear color gradient, not sRGB. If the exact format cannot be resolved via the "format" element then the format_hint will describe the important features of the format so that the application may select a compatable or close format The surface should be sized to these exact dimensions The surface should be sized to a dimension based on this ratio of the viewport's dimensions in pixels the surface should contain the following number of MIP levels. If this element is not present it is assumed that all miplevels exist until a dimension becomes 1 texel. To create a surface that has only one level of mip maps (mip=0) set this to 1. If the value is 0 the result is the same as if mip_levels was unspecified, all possible mip_levels will exist. By default it is assumed that mipmaps are supplied by the author so, if not all subsurfaces are initialized, it is invalid and will result in profile and platform specific behavior unless mipmap_generate is responsible for initializing the remainder of the sub-surfaces Specifying the type of a surface is mandatory though the type may be "UNTYPED". When a surface is typed as UNTYPED, it is said to be temporarily untyped and instead will be typed later by the context it is used in such as which samplers reference it in that are used in a particular technique or pass. If there is a type mismatch between what is set into it later and what the runtime decides the type should be the result in profile and platform specific behavior. A one-dimensional texture sampler. A two-dimensional texture sampler. A three-dimensional texture sampler. A texture sampler for cube maps. A two-dimensional texture sampler. A texture sampler for depth maps. A group that specifies the allowable types for an annotation. A group that specifies the allowable types for effect scoped parameters. The include element is used to import source code or precompiled binary shaders into the FX Runtime by referencing an external resource. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. The url attribute refers to resource. This may refer to a local resource using a relative URL fragment identifier that begins with the “#” character. The url attribute may refer to an external resource using an absolute or relative URL. This element creates a new, named param object in the FX Runtime, assigns it a type, an initial value, and additional attributes at declaration time. The annotate element allows you to specify an annotation for this new param. The semantic element allows you to specify a semantic for this new param. The modifier element allows you to specify a modifier for this new param. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. The fx_code_profile type allows you to specify an inline block of source code. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. The fx_profile_abstract element is only used as a substitution group hook for COLLADA FX profiles. A self contained description of a shader effect. The effect element may contain an asset element. The annotate element allows you to specify an annotation on this effect. The image element allows you to create image resources which can be shared by multipe profiles. The newparam element allows you to create new effect parameters which can be shared by multipe profiles. This is the substituion group hook which allows you to swap in other COLLADA FX profiles. The extra element may appear any number of times. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. A one-dimensional texture sampler for the GLSL profile. A two-dimensional texture sampler for the GLSL profile. A three-dimensional texture sampler for the GLSL profile. A cube map texture sampler for the GLSL profile. A two-dimensional texture sampler for the GLSL profile. A depth texture sampler for the GLSL profile. value=0x0 value=0x1 value=0x0300 value=0x0301 value=0x0306 value=0x0307 value=0x0302 value=0x0303 value=0x0304 value=0x0305 value=0x8001 value=0x8002 value=0x8003 value=0x8004 value=0x0308 value=0x0404 value=0x0405 value=0x0408 value=0x8006 value=0x800A value=0x800B value=0x8007 value=0x8008 value=0x0200 value=0x0201 value=0x0203 value=0x0202 value=0x0204 value=0x0205 value=0x0206 value=0x0207 value=0x1E00 value=0x0 value=0x1E01 value=0x1E02 value=0x1E03 value=0x150A value=0x8507 value=0x8508 value=0x1600 value=0x1200 value=0x1201 value=0x1202 value=0x1602 value=0x2601 value=0x0800 value=0x0801 value=0x8451 value=0x8452 value=0x0900 value=0x0901 value=0x81F9 value=0x81FA value=0x1500 value=0x1501 value=0x1502 value=0x1503 value=0x1504 value=0x1505 value=0x1506 value=0x1507 value=0x1508 value=0x1509 value=0x150A value=0x150B value=0x150C value=0x150E value=0x150F value=0x1B00 value=0x1B01 value=0x1B02 value=0x1D00 value=0x1D01 A group that defines all of the renderstates used for the CG and GLSL profiles. The glsl_newarray_type is used to creates a parameter of a one-dimensional array type. You may recursively nest glsl_newarray elements to create multidimensional arrays. The length attribute specifies the length of the array. The glsl_newarray_type is used to creates a parameter of a one-dimensional array type. You may recursively nest glsl_newarray elements to create multidimensional arrays. The length attribute specifies the length of the array. A surface type for the GLSL profile. This surface inherits from the fx_surface_common type and adds the ability to programmatically generate textures. A procedural surface generator. The annotate element allows you to specify an annotation for this surface generator. The code element allows you to embed GLSL code to use for this surface generator. The include element allows you to import GLSL code to use for this surface generator. The entry symbol for the shader function. The setparam element allows you to assign a new value to a previously defined parameter. A group that specifies the allowable types for GLSL profile parameters. Opens a block of GLSL platform-specific data types and technique declarations. Holds a description of the textures, samplers, shaders, parameters, and passes necessary for rendering this effect using one method. A static declaration of all the render states, shaders, and settings for one rendering pipeline. Declare and prepare a shader for execution in the rendering pipeline of a pass. A string declaring which profile or platform the compiler is targeting this shader for. A string containing command-line operations for the shader compiler. The entry symbol for the shader function. Binds values to uniform inputs of a shader. The identifier for a uniform input parameter to the shader (a formal function parameter or in-scope global) that will be bound to an external resource. In which pipeline stage this programmable shader is designed to execute, for example, VERTEX, FRAGMENT, etc. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. Opens a block of COMMON platform-specific data types and technique declarations. Holds a description of the textures, samplers, shaders, parameters, and passes necessary for rendering this effect using one method. The technique element may contain an asset element. The extra element may appear any number of times. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. The extra element may appear any number of times. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. Creates a symbolic connection between two previously defined parameters. Creates a parameter of a one-dimensional array type. Nested array elements allow you to create multidemensional arrays. The usertype element allows you to create arrays of usertypes. The length attribute specifies the length of the array. Creates a parameter of a one-dimensional array type. Nested array elements allow you to create multidemensional arrays. The usertype element allows you to create arrays of usertypes. The length attribute specifies the length of the array. Creates an instance of a structured class. Some usertypes do not have data. They may be used only to implement interface functions. Use a combination of these to initialize the usertype in an order-dependent manner. Use a series of these to set the members by name. The ref attribute will be relative to the usertype you are in right now. Reference a code or include element which defines the usertype Declares a resource that can be used both as the source for texture samples and as the target of a rendering pass. A procedural surface generator for the cg profile. The annotate element allows you to specify an annotation for this generator. The code element allows you to embed cg sourcecode for the surface generator. The include element imports cg source code or precompiled binary shaders into the FX Runtime by referencing an external resource. The entry symbol for the shader function. Assigns a new value to a previously defined parameter. A group that specifies the allowable types for CG profile parameters. Create a new, named param object in the CG Runtime, assign it a type, an initial value, and additional attributes at declaration time. The annotate element allows you to specify an annotation for this new param. The semantic element allows you to specify a semantic for this new param. The modifier element allows you to specify a modifier for this new param. Assigns a new value to a previously defined parameter. Opens a block of CG platform-specific data types and technique declarations. Holds a description of the textures, samplers, shaders, parameters, and passes necessary for rendering this effect using one method. The technique element may contain an asset element. A static declaration of all the render states, shaders, and settings for one rendering pipeline. Declare and prepare a shader for execution in the rendering pipeline of a pass. A string containing command-line operations for the shader compiler. The entry symbol for the shader function. Binds values to uniform inputs of a shader. References a predefined parameter in shader binding declarations. The identifier for a uniform input parameter to the shader (a formal function parameter or in-scope global) that will be bound to an external resource. In which pipeline stage this programmable shader is designed to execute, for example, VERTEX, FRAGMENT, etc. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The type of platform. This is a vendor-defined character string that indicates the platform or capability target for the technique. Optional value=0x1E01 value=0x2100 value=0x2101 value=0x0BE2 value=0x0104 value=0x1E01 value=0x2100 value=0x0104 value=0x8574 value=0x8575 value=0x84E7 value=0x86AE value=0x86AF value=0x1E01 value=0x2100 value=0x0104 value=0x8574 value=0x8575 value=0x84E7 value=0x1702 value=0x8576 value=0x8577 value=0x8578 value=0x0300 value=0x0301 value=0x0302 value=0x0303 value=0x0302 value=0x0303 Defines the RGB portion of a texture_pipeline command. This is a combiner-mode texturing operation. Defines a set of texturing commands that will be converted into multitexturing operations using glTexEnv in regular and combiner mode. Defines a texture_pipeline command. This is a combiner-mode texturing operation. Defines a texture_pipeline command. It is a simple noncombiner mode of texturing operations. The extra element may appear any number of times. OpenGL ES extensions may be used here. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. supported by GLES 1.1 only Two-dimensional texture sampler state for profile_GLES. This is a bundle of sampler-specific states that will be referenced by one or more texture_units. The extra element may appear any number of times. OpenGL ES extensions may be used here. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. value=0x1E00 value=0x0 value=0x1E01 value=0x1E02 value=0x1E03 value=0x150A A group that contains the renderstates available for the GLES profile. A group that defines the available variable types for GLES parameters. Create a new, named param object in the GLES Runtime, assign it a type, an initial value, and additional attributes at declaration time. The annotate element allows you to specify an annotation for this new param. The semantic element allows you to specify a semantic for this new param. The modifier element allows you to specify a modifier for this new param. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Opens a block of GLES platform-specific data types and technique declarations. Holds a description of the textures, samplers, shaders, parameters, and passes necessary for rendering this effect using one method. A static declaration of all the render states, shaders, and settings for one rendering pipeline. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The type of platform. This is a vendor-defined character string that indicates the platform or capability target for the technique. Optional An axis-aligned, centered box primitive. 3 float values that represent the extents of the box The extra element may appear any number of times. An infinite plane primitive. 4 float values that represent the coefficients for the plane’s equation: Ax + By + Cz + D = 0 The extra element may appear any number of times. A centered sphere primitive. A float value that represents the radius of the sphere The extra element may appear any number of times. A cylinder primitive that is centered on, and aligned with. the local Y axis. A float value that represents the length of the cylinder along the Y axis. float2 values that represent the radii of the cylinder. The extra element may appear any number of times. A tapered cylinder primitive that is centered on and aligned with the local Y axis. A float value that represents the length of the cylinder along the Y axis. Two float values that represent the radii of the tapered cylinder at the positive (height/2) Y value. Both ends of the tapered cylinder may be elliptical. Two float values that represent the radii of the tapered cylinder at the negative (height/2) Y value.Both ends of the tapered cylinder may be elliptical. The extra element may appear any number of times. A capsule primitive that is centered on and aligned with the local Y axis. A float value that represents the length of the line segment connecting the centers of the capping hemispheres. Two float values that represent the radii of the capsule (it may be elliptical) The extra element may appear any number of times. A tapered capsule primitive that is centered on, and aligned with, the local Y axis. A float value that represents the length of the line segment connecting the centers of the capping hemispheres. Two float values that represent the radii of the tapered capsule at the positive (height/2) Y value.Both ends of the tapered capsule may be elliptical. Two float values that represent the radii of the tapered capsule at the negative (height/2) Y value.Both ends of the tapered capsule may be elliptical. The extra element may appear any number of times. The definition of the convex_mesh element is identical to the mesh element with the exception that instead of a complete description (source, vertices, polygons etc.), it may simply point to another geometry to derive its shape. The latter case means that the convex hull of that geometry should be computed and is indicated by the optional “convex_hull_of” attribute. The extra element may appear any number of times. The convex_hull_of attribute is a URI string of geometry to compute the convex hull of. Optional attribute. A general container for force-fields. At the moment, it only has techniques and extra elements. The force_field element may contain an asset element. This element must contain at least one non-common profile technique. The extra element may appear any number of times. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. This element defines the physical properties of an object. It contains a technique/profile with parameters. The COMMON profile defines the built-in names, such as static_friction. The physics_material element may contain an asset element. The technique_common element specifies the physics_material information for the common profile which all COLLADA implementations need to support. Dynamic friction coefficient The proportion of the kinetic energy preserved in the impact (typically ranges from 0.0 to 1.0) Static friction coefficient This element may contain any number of non-common profile techniques. The extra element may appear any number of times. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. The physics_scene element may contain an asset element. There may be any number of instance_force_field elements. There may be any number of instance_physics_model elements. The technique_common element specifies the physics_scene information for the common profile which all COLLADA implementations need to support. The gravity vector to use for the physics_scene. The time_step for the physics_scene. This element may contain any number of non-common profile techniques. The extra element may appear any number of times. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. This element allows for describing simulated bodies that do not deform. These bodies may or may not be connected by constraints (hinge, ball-joint etc.). Rigid-bodies, constraints etc. are encapsulated in physics_model elements to allow for instantiating complex models. The technique_common element specifies the rigid_body information for the common profile which all COLLADA implementations need to support. If false, the rigid_body is not moveable The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. The total mass of the rigid-body Defines the center and orientation of mass of the rigid-body relative to the local origin of the “root” shape.This makes the off-diagonal elements of the inertia tensor (products of inertia) all 0 and allows us to just store the diagonal elements (moments of inertia). float3 – The diagonal elements of the inertia tensor (moments of inertia), which is represented in the local frame of the center of mass. See above. References a physics_material for the rigid_body. Defines a physics_material for the rigid_body. This element allows for describing components of a rigid_body. If true, the mass is distributed along the surface of the shape The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. The mass of the shape. The density of the shape. References a physics_material for the shape. Defines a physics_material for the shape. Instances a geometry to use to define this shape. Defines a plane to use for this shape. Defines a box to use for this shape. Defines a sphere to use for this shape. Defines a cyliner to use for this shape. Defines a tapered_cylinder to use for this shape. Defines a capsule to use for this shape. Defines a tapered_capsule to use for this shape. Allows a tranformation for the shape. Allows a tranformation for the shape. The extra element may appear any number of times. This element may contain any number of non-common profile techniques. The extra element may appear any number of times. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. The name attribute is the text string name of this element. Optional attribute. This element allows for connecting components, such as rigid_body into complex physics models with moveable parts. Defines the attachment (to a rigid_body or a node) to be used as the reference-frame. Allows you to "position" the attachment point. Allows you to "position" the attachment point. The extra element may appear any number of times. The “rigid_body” attribute is a relative reference to a rigid-body within the same physics_model. Defines an attachment to a rigid-body or a node. Allows you to "position" the attachment point. Allows you to "position" the attachment point. The extra element may appear any number of times. The “rigid_body” attribute is a relative reference to a rigid-body within the same physics_model. The technique_common element specifies the rigid_constraint information for the common profile which all COLLADA implementations need to support. If false, the constraint doesn’t exert any force or influence on the rigid bodies. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. Indicates whether the attached rigid bodies may inter-penetrate. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. The limits element provides a flexible way to specify the constraint limits (degrees of freedom and ranges). The swing_cone_and_twist element describes the angular limits along each rotation axis in degrees. The the X and Y limits describe a “swing cone” and the Z limits describe the “twist angle” range The minimum values for the limit. The maximum values for the limit. The linear element describes linear (translational) limits along each axis. The minimum values for the limit. The maximum values for the limit. Spring, based on distance (“LINEAR”) or angle (“ANGULAR”). The angular spring properties. The stiffness (also called spring coefficient) has units of force/angle in degrees. The spring damping coefficient. The spring's target or resting distance. The linear spring properties. The stiffness (also called spring coefficient) has units of force/distance. The spring damping coefficient. The spring's target or resting distance. This element may contain any number of non-common profile techniques. The extra element may appear any number of times. The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute. The name attribute is the text string name of this element. Optional attribute. This element allows for building complex combinations of rigid-bodies and constraints that may be instantiated multiple times. The physics_model element may contain an asset element. The physics_model may define any number of rigid_body elements. The physics_model may define any number of rigid_constraint elements. The physics_model may instance any number of other physics_model elements. The extra element may appear any number of times. The id attribute is a text string containing the unique identifier of this element. This value must be unique within the instance document. Optional attribute. The name attribute is the text string name of this element. Optional attribute. constant-strings constant-strings xsddiagram-0.16/app.config0000644000175000017500000000016611673402556015420 0ustar mathieumathieu xsddiagram-0.16/ErrorReportForm.cs0000644000175000017500000000257212056405120017076 0ustar mathieumathieu// XSDDiagram - A XML Schema Definition file viewer // Copyright (C) 2006-2011 Regis COSNIER // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System; using System.Collections.Generic; using System.Windows.Forms; namespace XSDDiagram { public partial class ErrorReportForm : Form { private IList errors = new List(); public IList Errors { get { return this.errors; } set { this.errors = value; } } public ErrorReportForm() { InitializeComponent(); } private void ErrorReportForm_Load(object sender, EventArgs e) { foreach (string s in this.errors) this.textBoxReport.Text += s + "\r\n"; } } }xsddiagram-0.16/AboutForm.Designer.cs0000644000175000017500000001011312056405154017417 0ustar mathieumathieunamespace XSDDiagram { partial class AboutForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutForm)); this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.richTextBox = new System.Windows.Forms.RichTextBox(); this.buttonOk = new System.Windows.Forms.Button(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.SuspendLayout(); // // pictureBox1 // this.pictureBox1.Image = global::XSDDiagram.Properties.Resources.XSDDiagram; this.pictureBox1.Location = new System.Drawing.Point(12, 12); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(32, 32); this.pictureBox1.TabIndex = 0; this.pictureBox1.TabStop = false; // // richTextBox // this.richTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.richTextBox.BackColor = System.Drawing.SystemColors.ControlLight; this.richTextBox.Location = new System.Drawing.Point(50, 12); this.richTextBox.Name = "richTextBox"; this.richTextBox.ReadOnly = true; this.richTextBox.Size = new System.Drawing.Size(464, 218); this.richTextBox.TabIndex = 1; this.richTextBox.TabStop = false; this.richTextBox.Text = ""; // // buttonOk // this.buttonOk.Anchor = System.Windows.Forms.AnchorStyles.Bottom; this.buttonOk.DialogResult = System.Windows.Forms.DialogResult.OK; this.buttonOk.Location = new System.Drawing.Point(226, 236); this.buttonOk.Name = "buttonOk"; this.buttonOk.Size = new System.Drawing.Size(75, 23); this.buttonOk.TabIndex = 0; this.buttonOk.Text = "OK"; this.buttonOk.UseVisualStyleBackColor = true; // // AboutForm // this.AcceptButton = this.buttonOk; this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.CancelButton = this.buttonOk; this.ClientSize = new System.Drawing.Size(526, 271); this.Controls.Add(this.buttonOk); this.Controls.Add(this.richTextBox); this.Controls.Add(this.pictureBox1); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MinimizeBox = false; this.Name = "AboutForm"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "About..."; ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.RichTextBox richTextBox; private System.Windows.Forms.Button buttonOk; } }xsddiagram-0.16/XSD/0000755000175000017500000000000011670477622014107 5ustar mathieumathieuxsddiagram-0.16/XSD/XMLSchema.xsx0000644000175000017500000000032311531463334016421 0ustar mathieumathieu xsddiagram-0.16/XSD/GenerateClasses.xml0000644000175000017500000000100711531463334017666 0ustar mathieumathieu xsddiagram-0.16/XSD/xml.xsd0000644000175000017500000001330511531463334015420 0ustar mathieumathieu See http://www.w3.org/XML/1998/namespace.html and http://www.w3.org/TR/REC-xml for information about this namespace. This schema document describes the XML namespace, in a form suitable for import by other schema documents. Note that local names in this namespace are intended to be defined only by the World Wide Web Consortium or its subgroups. The following names are currently defined in this namespace and should not be used with conflicting semantics by any Working Group, specification, or document instance: base (as an attribute name): denotes an attribute whose value provides a URI to be used as the base for interpreting any relative URIs in the scope of the element on which it appears; its value is inherited. This name is reserved by virtue of its definition in the XML Base specification. id (as an attribute name): denotes an attribute whose value should be interpreted as if declared to be of type ID. The xml:id specification is not yet a W3C Recommendation, but this attribute is included here to facilitate experimentation with the mechanisms it proposes. Note that it is _not_ included in the specialAttrs attribute group. lang (as an attribute name): denotes an attribute whose value is a language code for the natural language of the content of any element; its value is inherited. This name is reserved by virtue of its definition in the XML specification. space (as an attribute name): denotes an attribute whose value is a keyword indicating what whitespace processing discipline is intended for the content of the element; its value is inherited. This name is reserved by virtue of its definition in the XML specification. Father (in any context at all): denotes Jon Bosak, the chair of the original XML Working Group. This name is reserved by the following decision of the W3C XML Plenary and XML Coordination groups: In appreciation for his vision, leadership and dedication the W3C XML Plenary on this 10th day of February, 2000 reserves for Jon Bosak in perpetuity the XML name xml:Father This schema defines attributes and an attribute group suitable for use by schemas wishing to allow xml:base, xml:lang, xml:space or xml:id attributes on elements they define. To enable this, such a schema must import this schema for the XML namespace, e.g. as follows: <schema . . .> . . . <import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/> Subsequently, qualified reference to any of the attributes or the group defined below will have the desired effect, e.g. <type . . .> . . . <attributeGroup ref="xml:specialAttrs"/> will define a type which will schema-validate an instance element with any of those attributes In keeping with the XML Schema WG's standard versioning policy, this schema document will persist at http://www.w3.org/2005/08/xml.xsd. At the date of issue it can also be found at http://www.w3.org/2001/xml.xsd. The schema document at that URI may however change in the future, in order to remain compatible with the latest version of XML Schema itself, or with the XML namespace itself. In other words, if the XML Schema or XML namespaces change, the version of this document at http://www.w3.org/2001/xml.xsd will change accordingly; the version at http://www.w3.org/2005/08/xml.xsd will not change. Attempting to install the relevant ISO 2- and 3-letter codes as the enumerated possible values is probably never going to be a realistic possibility. See RFC 3066 at http://www.ietf.org/rfc/rfc3066.txt and the IANA registry at http://www.iana.org/assignments/lang-tag-apps.htm for further information. The union allows for the 'un-declaration' of xml:lang with the empty string. See http://www.w3.org/TR/xmlbase/ for information about this attribute. See http://www.w3.org/TR/xml-id/ for information about this attribute. xsddiagram-0.16/XSD/XMLSchema.xsd0000644000175000017500000025317511531463334016414 0ustar mathieumathieu ]> Part 1 version: Id: structures.xsd,v 1.2 2004/01/15 11:34:25 ht Exp Part 2 version: Id: datatypes.xsd,v 1.3 2004/01/23 18:11:13 ht Exp The schema corresponding to this document is normative, with respect to the syntactic constraints it expresses in the XML Schema language. The documentation (within <documentation> elements) below, is not normative, but rather highlights important aspects of the W3C Recommendation of which this is a part The simpleType element and all of its members are defined towards the end of this schema document Get access to the xml: attribute groups for xml:lang as declared on 'schema' and 'documentation' below This type is extended by almost all schema types to allow attributes from other namespaces to be added to user schemas. This type is extended by all types which allow annotation other than <schema> itself This group is for the elements which occur freely at the top level of schemas. All of their types are based on the "annotated" type by extension. This group is for the elements which can self-redefine (see <redefine> below). A utility type, not for public use A utility type, not for public use A utility type, not for public use #all or (possibly empty) subset of {extension, restriction} A utility type, not for public use A utility type, not for public use #all or (possibly empty) subset of {extension, restriction, list, union} for maxOccurs for all particles for element, group and attributeGroup, which both define and reference 'complexType' uses this This branch is short for <complexContent> <restriction base="xs:anyType"> ... </restriction> </complexContent> Will be restricted to required or forbidden Not allowed if simpleContent child is chosen. May be overriden by setting on complexContent child. This choice is added simply to make this a valid restriction per the REC Overrides any setting on complexType parent. This choice is added simply to make this a valid restriction per the REC No typeDefParticle group reference A utility type, not for public use #all or (possibly empty) subset of {substitution, extension, restriction} The element element can be used either at the top level to define an element-type binding globally, or within a content model to either reference a globally-defined element or type or declare an element-type binding locally. The ref form is not allowed at the top level. group type for explicit groups, named top-level groups and group references group type for the three kinds of group This choice with min/max is here to avoid a pblm with the Elt:All/Choice/Seq Particle derivation constraint restricted max/min Only elements allowed inside simple type for the value of the 'namespace' attr of 'any' and 'anyAttribute' Value is ##any - - any non-conflicting WFXML/attribute at all ##other - - any non-conflicting WFXML/attribute from namespace other than targetNS ##local - - any unqualified non-conflicting WFXML/attribute one or - - any non-conflicting WFXML/attribute from more URI the listed namespaces references (space separated) ##targetNamespace or ##local may appear in the above list, to refer to the targetNamespace of the enclosing schema or an absent targetNamespace respectively A utility type, not for public use A subset of XPath expressions for use in selectors A utility type, not for public use The following pattern is intended to allow XPath expressions per the following EBNF: Selector ::= Path ( '|' Path )* Path ::= ('.//')? Step ( '/' Step )* Step ::= '.' | NameTest NameTest ::= QName | '*' | NCName ':' '*' child:: is also allowed A subset of XPath expressions for use in fields A utility type, not for public use The following pattern is intended to allow XPath expressions per the same EBNF as for selector, with the following change: Path ::= ('.//')? ( Step '/' )* ( Step | '@' NameTest ) The three kinds of identity constraints, all with type of or derived from 'keybase'. A utility type, not for public use A public identifier, per ISO 8879 notations for use within XML Schema schemas Not the real urType, but as close an approximation as we can get in the XML representation First the built-in primitive datatypes. These definitions are for information only, the real built-in definitions are magic. For each built-in datatype in this schema (both primitive and derived) can be uniquely addressed via a URI constructed as follows: 1) the base URI is the URI of the XML Schema namespace 2) the fragment identifier is the name of the datatype For example, to address the int datatype, the URI is: http://www.w3.org/2001/XMLSchema#int Additionally, each facet definition element can be uniquely addressed via a URI constructed as follows: 1) the base URI is the URI of the XML Schema namespace 2) the fragment identifier is the name of the facet For example, to address the maxInclusive facet, the URI is: http://www.w3.org/2001/XMLSchema#maxInclusive Additionally, each facet usage in a built-in datatype definition can be uniquely addressed via a URI constructed as follows: 1) the base URI is the URI of the XML Schema namespace 2) the fragment identifier is the name of the datatype, followed by a period (".") followed by the name of the facet For example, to address the usage of the maxInclusive facet in the definition of int, the URI is: http://www.w3.org/2001/XMLSchema#int.maxInclusive NOTATION cannot be used directly in a schema; rather a type must be derived from it by specifying at least one enumeration facet whose value is the name of a NOTATION declared in the schema. Now the derived primitive types pattern specifies the content of section 2.12 of XML 1.0e2 and RFC 3066 (Revised version of RFC 1766). pattern matches production 7 from the XML spec pattern matches production 5 from the XML spec pattern matches production 4 from the Namespaces in XML spec A utility type, not for public use #all or (possibly empty) subset of {restriction, union, list} A utility type, not for public use Can be restricted to required or forbidden Required at the top level Forbidden when nested We should use a substitution group for facets, but that's ruled out because it would allow users to add their own, which we're not ready for yet. base attribute and simpleType child are mutually exclusive, but one or other is required itemType attribute and simpleType child are mutually exclusive, but one or other is required memberTypes attribute must be non-empty or there must be at least one simpleType child xsddiagram-0.16/XSD/XMLSchema.dtd0000644000175000017500000003731311531463334016363 0ustar mathieumathieu %xs-datatypes; xsddiagram-0.16/XSD/XML Schema.URL0000644000175000017500000000007211531463334016302 0ustar mathieumathieu[InternetShortcut] URL=http://www.w3.org/2001/XMLSchema xsddiagram-0.16/XSD/datatypes.dtd0000644000175000017500000001432511531463334016576 0ustar mathieumathieu xsddiagram-0.16/OpenURLForm.resx0000644000175000017500000003040512077772656016475 0ustar mathieumathieu text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AO8AAAD/AAAA/wAAAP8AAAD/AAAA7wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA/5T/AP+U/wD/lP8A/5T/AP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA/wAAAP8AAAD/lP8A/5T/AP+U/wD/lP8A/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAD/AAAAAAAAAP+U/wD/lP8A/5T/AP+U/wD/AAAA/wAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAzwAAAP8AAAD/AAAA/wAAAP8AAADPAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAADvAAAA/wAAAP8AAAD/AAAA/wAAAO8AAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAP//DAD//wwA//8MAP//DAD/AAAA/wAAAAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA7wAA AAAAAAAAAAAAAAAAAAAAAAAAAAAA//8MAP//DAD//wwA//8MAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//Pz///z8///8/P///Pz///z8 //8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wwA//8MAP//DAD//wwA/wAAAP8AAAAAAAAA/wAA AAAAAADvAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA7wAAAAAAAAD/AAAA/wAAAP/8/P///Pz///z8 ///8/P///Pz//wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM8AAAD/AAAA/wAAAP8AAAD/AAAAzwAA AAAAAAD/AAAAAAAAAP+5t7z/ube8/7m3vP+5t7z/ube8/7m3vP8AAAD/AAAAAAAAAP8AAAAAAAAAzwAA AP8AAAD/AAAA/wAAAP8AAAD/AAAAzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAP8AAAD/AAAA/7m3vP+5t7z/ube8/7m3vP+5t7z/ube8/wAAAP8AAAD/AAAA/wAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/ube8/7m3vP+5t7z/ube8/7m3vP+5t7z/AAAA/wAA AAAAAAD/AAAAAAAAAO8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAO8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAADPAAAAAAAAAP8AAAD/AAAA//+OBf//jgX//44F//+OBf//jgX/AAAA/wAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//44F//+OBf//jgX//44F//+OBf8AAAD/AAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACLAAAA/wAAAP8AAACLAAAAAAAAAAAAAAAAAAAAQAAA AP8AAAD/AAAA/wAAAEAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIsAAAAAAAAAAAAAAAAAAACLAAAA/wAA AP8AAAD/AAAAiwAAAP8AAAD/AAAAQAAAAAAA0P+LAND//wDQ//8Agp/eAAAA/wAAAP8AAABAAND/QADQ //8A0P//AND//wA0QP8A0P//AND//wDQ//8A0P//AND//wDQ/4sAAAC3AAAA/wAAALcA0P+LAND//wDQ //8A0P//ALvmmgDQ//8A0P//ADRA/wAAAP8AAABAAAAAAAAAAAAA0P+3AND//wDQ//8ANED/AAAA/wAA AP8A0P+3AND//wDQ//8AUGP/ACIqwADQ//8AAAAAAAAAAAAAAAAA0P+3AND//wC03dMAAAD/AFBj/wDQ //8A0P//ABog/wAAAIsA0P+LAND//wDQ//8ANED/AAAA/wAAAEAAAAAAAAAAAADQ/yAA0P//AND//wDQ //8AAAD/AFBj/wDQ//8A0P//AJW3/wAAAP8AAAAgAAAAAAAAAAAAAAAAAAAAAACAnaAA0P//AND//wA0 QP8A0P//AND//wBxi/8AAAD/AAAAiwDQ/0AA0P//AND//wA0QP8AAAD/AAAAQAAAAAAAAAAAAAAAAADQ /2MA0P//AND//wBhd9MA0P//AND//wDQ//8AGiD/AAAAiwAAAAAAAAAAAAAAAACAnaAA0P//AND//wDQ //8A0P//AFBj/wDQ//8A0P//AHGL/wAAAP8AAACLAND/QADQ//8A0P//ADRA/wAAAP8AAABAAAAAAAAA AAAAAAAAAAAAAADQ/7cA0P//AND//wDQ//8A0P//AHGL/wAAAP8AAAAAAAAAAADQ/2MA0P//AND//wDQ //8A0P//AND//wCr0t4A0P8gAND//wDQ//8AcYv/AAAA/wAAAIsA0P9AAND//wDQ//8ANED/AAAA/wAA AEAAAAAAAAAAAAAAAAAAAAAAAND/QADQ//8A0P//AND//wDQ//8AAAD/AAAAiwAAAAAA0P8gAND//wDQ //8A0P//AND//wCPr8oAAAAAAAAAAADQ/yAA0P//AND//wCCn94AAAD/AAAAtwDQ/0AA0P//AND//wA0 QP8AAAD/AAAAQAAAAAAAAAAAAAAAAAAAAAAA0P9AAND//wDQ//8A0P//AHGL/wAAAP8AAAD/AAAAQADQ /yAA0P//AND//wCPr8oAAAD/AAAA/wAAAAAAAAAAAAAAAACVt/8A0P//AL3oyQAAAP8AAAD/AHaRcADQ //8A0P//ADRA/wAAAP8AAABAAAAAAAAAAAAAAAAAAAAAAADQ/7cA0P//AND//wDQ//8A0P//ADRA/wAA AP8AAAD/AAAAAADQ/4sA0P//AND//wAAAGMAAAD/AAAA/wDQ//8AAAD/ADRA/wDQ//8A0P//AHaRcAAA AP8ANED/AND//wDQ//8ANED/AAAA/wAAAEAAAAAAAAAAAAAAAAAA0P9jAND//wDQ//8Albf/AND//wDQ //8A0P//AAAA/wAAAP8AAACLAAAAAADQ/2MA0P//AND//wDQ//8A0P//AND//wAAAAAAAAAAAND/QADQ //8A0P//AND//wDQ//8A0P//AND//wA0QP8AAAD/AAAAQAAAAAAAAAAAAND/IADQ//8A0P//AND//wAa IP8Ab4m4AND//wDQ//8Agp/eAAAA/wAAAP8AAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAND/QADQ//8A0P//ADRA/wAAAP8AAABAAAAAAAAAAAAA0P+LAND//wDQ //8AcYv/AAAA/wAAAAAA0P+3AND//wDQ//8ANED/AAAA/wAAAP8AAAAgAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0P9AAND//wDQ//8ANED/AAAA/wAAAEAAAAAAAND/YwDQ //8A0P//AND//wAAAAAAAAAAAAAAAADQ/yAA0P//AND//wDQ//8A0P8gAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ/0AA0P//AND//wA0QP8AAAD/AAAAQAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAND/QADQ//8A0P//AND/QAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA////////////4f///8D///8A////QP///2H//8N///+Bf/wfgH/4D4Fg YA/DQCwf/wAP///ALB//4GAP///4D//////nxB8TkwBsQ8EXoMPAH4DD5D4Aw/A4MMPwcPLD8DJyQ/AZ AQPgHBwDwk//w8MH/8OPH//D////z/////8= xsddiagram-0.16/OpenURLForm.Designer.cs0000644000175000017500000001353312077772656017663 0ustar mathieumathieunamespace XSDDiagram { partial class OpenURLForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(OpenURLForm)); this.buttonOK = new System.Windows.Forms.Button(); this.buttonCancel = new System.Windows.Forms.Button(); this.textBoxURL = new System.Windows.Forms.TextBox(); this.labelURL = new System.Windows.Forms.Label(); this.textBoxLabel = new System.Windows.Forms.TextBox(); this.SuspendLayout(); // // buttonOK // this.buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.buttonOK.DialogResult = System.Windows.Forms.DialogResult.OK; this.buttonOK.Location = new System.Drawing.Point(213, 87); this.buttonOK.Name = "buttonOK"; this.buttonOK.Size = new System.Drawing.Size(75, 23); this.buttonOK.TabIndex = 4; this.buttonOK.Text = "&OK"; this.buttonOK.UseVisualStyleBackColor = true; // // buttonCancel // this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; this.buttonCancel.Location = new System.Drawing.Point(294, 87); this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.Size = new System.Drawing.Size(75, 23); this.buttonCancel.TabIndex = 5; this.buttonCancel.Text = "&Cancel"; this.buttonCancel.UseVisualStyleBackColor = true; // // textBoxURL // this.textBoxURL.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.textBoxURL.Location = new System.Drawing.Point(47, 45); this.textBoxURL.Name = "textBoxURL"; this.textBoxURL.Size = new System.Drawing.Size(524, 20); this.textBoxURL.TabIndex = 1; // // labelURL // this.labelURL.AutoSize = true; this.labelURL.Location = new System.Drawing.Point(12, 48); this.labelURL.Name = "labelURL"; this.labelURL.Size = new System.Drawing.Size(29, 13); this.labelURL.TabIndex = 0; this.labelURL.Text = "&URL"; // // textBoxLabel // this.textBoxLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.textBoxLabel.BorderStyle = System.Windows.Forms.BorderStyle.None; this.textBoxLabel.Location = new System.Drawing.Point(15, 13); this.textBoxLabel.Multiline = true; this.textBoxLabel.Name = "textBoxLabel"; this.textBoxLabel.ReadOnly = true; this.textBoxLabel.Size = new System.Drawing.Size(556, 17); this.textBoxLabel.TabIndex = 6; this.textBoxLabel.TabStop = false; this.textBoxLabel.Text = "Enter an URL targeting a XSD file"; // // OpenURLForm // this.AcceptButton = this.buttonOK; this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.CancelButton = this.buttonCancel; this.ClientSize = new System.Drawing.Size(583, 122); this.Controls.Add(this.textBoxLabel); this.Controls.Add(this.labelURL); this.Controls.Add(this.textBoxURL); this.Controls.Add(this.buttonCancel); this.Controls.Add(this.buttonOK); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "OpenURLForm"; this.ShowInTaskbar = false; this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "Open URL"; this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.Button buttonOK; private System.Windows.Forms.Button buttonCancel; private System.Windows.Forms.TextBox textBoxURL; private System.Windows.Forms.Label labelURL; private System.Windows.Forms.TextBox textBoxLabel; } }xsddiagram-0.16/DiagramControl.Designer.cs0000644000175000017500000000207711531463334020441 0ustar mathieumathieunamespace XSDDiagram { partial class DiagramControl { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Component Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.SuspendLayout(); // // DiagramControl // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Name = "DiagramControl"; this.ResumeLayout(false); } #endregion } } xsddiagram-0.16/Program.cs0000644000175000017500000002076012077773454015420 0ustar mathieumathieu// XSDDiagram - A XML Schema Definition file viewer // Copyright (C) 2006-2011 Regis COSNIER // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System; using System.Drawing; using System.IO; using System.Windows.Forms; using XSDDiagram.Rendering; namespace XSDDiagram { public static class Program { //[DllImport("kernel32")] //static extern IntPtr GetConsoleWindow(); //[DllImport("kernel32")] //static extern bool AllocConsole(); static string usage = @"XSD Diagram, version {0} Usage: {1} [-o output.svg] [-os EXTENSION] [-r RootElement]* [-e N] [-z N] [-y] [-u USERNAME] [-p PASSWORD] [file.xsd or URL] -o FILE specifies the output image. '.png','.jpg', '.svg' ('.emf' on Windows) are allowed. If not present, the GUI is shown. -os EXTENSION specifies the output image is streamed through the standard output. EXTENSION can be: png, jpg, svg. If not present, the GUI is shown. -r ELEMENT specifies the root element of the tree. You can put several -r options = several root elements in the tree. -e N specifies the expand level (from 0 to what you want). Be carefull, the result image can be huge. -z N specifies the zoom percentage from 10% to 1000% (only for .png image). Work only with the '-o', '-os png' or '-os jpg' option. -y force huge image generation without user prompt. -u USERNAME specifies a username to authenticate when a xsd dependency (import or include) is a secured url. -p PASSWORD specifies a password to authenticate when a xsd dependency (import or include) is a secured url. Example 1: > XSDDiagramConsole.exe -o file.png -r TotoRoot -e 3 -z 200 ./folder1/toto.xsd will generate a PNG image from a diagram with a root element 'TotoRoot' and expanding the tree from the root until the 3rd level. Example 2: > XSDDiagram.exe ./folder1/toto.xsd will load the xsd file in the GUI window. Example 3: > XSDDiagram.exe -r TotoRoot -e 2 ./folder1/toto.xsd will load the xsd file in the GUI window with a root element 'TotoRoot' and expanding the tree from the root until the 2nd level. Example 4: > XSDDiagramConsole.exe -os svg -r TotoRoot -e 3 ./folder1/toto.xsd will write a SVG image in the standard output from a diagram with a root element 'TotoRoot' and expanding the tree from the root until the 3rd level. "; /// /// The main entry point for the application. /// [STAThread] public static void Main() { bool streamToOutput = !string.IsNullOrEmpty(Options.OutputFile) || Options.OutputOnStdOut; if (Options.RequestHelp || streamToOutput) { //if(!Options.IsRunningOnMono) //{ // if (GetConsoleWindow() == IntPtr.Zero) // ; // AllocConsole(); //} if (Options.RequestHelp || string.IsNullOrEmpty(Options.InputFile) || !streamToOutput || Options.RootElements.Count == 0 || Options.ExpandLevel < 0 || Options.Zoom < 10.0 || Options.Zoom > 1000.0) { string version = typeof(Program).Assembly.GetName().Version.ToString(); Log(usage, version, Path.GetFileName(Environment.GetCommandLineArgs()[0])); return; } Log("Loading the file: {0}\n", Options.InputFile); Schema schema = new Schema(); schema.RequestCredential += delegate(string url, string realm, int attemptCount, out string username, out string password) { username = password = ""; if(!string.IsNullOrEmpty(Options.Username)) { if (attemptCount > 1) return false; username = Options.Username; password = Options.Password; return true; } return false; }; schema.LoadSchema(Options.InputFile); if (schema.LoadError.Count > 0) { Log("There are errors while loading:\n"); foreach (var error in schema.LoadError) { Log(error); } } Diagram diagram = new Diagram(); diagram.ElementsByName = schema.ElementsByName; diagram.Scale = Options.Zoom / 100.0f; foreach (var rootElement in Options.RootElements) { foreach (var element in schema.Elements) { if (element.Name == rootElement) { Log("Adding '{0}' element to the diagram...\n", rootElement); diagram.Add(element.Tag, element.NameSpace); } } } Form form = new Form(); Graphics graphics = form.CreateGraphics(); graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; for (int i = 0; i < Options.ExpandLevel; i++) { Log("Expanding to level {0}...\n", i + 1); diagram.ExpandOneLevel(); } diagram.Layout(graphics); Log("Saving image...\n"); try { bool result = false; DiagramExporter exporter = new DiagramExporter(diagram); if (Options.OutputOnStdOut) { Stream stream = Console.OpenStandardOutput(); result = exporter.Export(stream, "." + Options.OutputOnStdOutExtension.ToLower(), graphics, new DiagramAlertHandler(ByPassSaveAlert)); stream.Flush(); } else { result = exporter.Export(Options.OutputFile, graphics, new DiagramAlertHandler(SaveAlert)); } if (result) Log("The diagram is now saved in the file: {0}\n", Options.OutputFile); else Log("ERROR: The diagram has not been saved!\n"); } catch (Exception ex) { Log("ERROR: The diagram has not been saved. {0}\n", ex.Message); } graphics.Dispose(); form.Dispose(); } else { if (Options.RequestHelp) { string version = typeof(Program).Assembly.GetName().Version.ToString(); MessageBox.Show(string.Format(usage, version, Environment.GetCommandLineArgs()[0])); } Application.ThreadException += HandleThreadException; Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new MainForm()); } } static void Log(string format, params object[] arg) { if (Options.OutputOnStdOut) return; Console.Write(format, arg); } static bool ByPassSaveAlert(string title, string message) { return true; } static bool SaveAlert(string title, string message) { Log(string.Format("{0}. {1} [Yn] >", title, message)); if(Options.ForceHugeImageGeneration) { Log("\nYes\n"); return true; } ConsoleKeyInfo consoleKeyInfo = Console.ReadKey(false); Log("\n"); if (consoleKeyInfo.Key == ConsoleKey.Y || consoleKeyInfo.Key == ConsoleKey.Enter) { Log("Ok, relax... It can take time!\n"); return true; } else return false; } static void HandleThreadException(object sender, System.Threading.ThreadExceptionEventArgs e) { System.Diagnostics.Trace.WriteLine(e.ToString()); } } }xsddiagram-0.16/FileShellExtension.cs0000644000175000017500000000453711673410122017536 0ustar mathieumathieu// XSDDiagram - A XML Schema Definition file viewer // Copyright (C) 2006-2011 Regis COSNIER // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System; using System.Diagnostics; using System.Windows.Forms; using Microsoft.Win32; namespace XSDDiagram { static class FileShellExtension { public static void Register(string fileType, string shellKeyName, string menuText, string menuCommand) { // create path to registry location string regPath = string.Format(@"{0}\shell\{1}", fileType, shellKeyName); try { // add context menu to the registry using (RegistryKey key = Registry.ClassesRoot.CreateSubKey(regPath)) { key.SetValue(null, menuText); } // add command that is invoked to the registry using (RegistryKey key = Registry.ClassesRoot.CreateSubKey( string.Format(@"{0}\command", regPath))) { key.SetValue(null, menuCommand); } } catch (Exception ex) { MessageBox.Show("Error while registring: " + ex.Message + "\r\nYou may have to run this application as administrator!"); } } public static void Unregister(string fileType, string shellKeyName) { Debug.Assert(!string.IsNullOrEmpty(fileType) && !string.IsNullOrEmpty(shellKeyName)); // path to the registry location string regPath = string.Format(@"{0}\shell\{1}", fileType, shellKeyName); try { // remove context menu from the registry Registry.ClassesRoot.DeleteSubKeyTree(regPath); } catch (Exception ex) { MessageBox.Show("Error while unregistring: " + ex.Message); } } } } xsddiagram-0.16/ElementsForm.Designer.cs0000644000175000017500000000437011531463334020132 0ustar mathieumathieunamespace XSDDiagram { partial class ElementsForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.listBoxElements = new System.Windows.Forms.ListBox(); this.SuspendLayout(); // // listBoxElements // this.listBoxElements.Dock = System.Windows.Forms.DockStyle.Fill; this.listBoxElements.FormattingEnabled = true; this.listBoxElements.Location = new System.Drawing.Point(0, 0); this.listBoxElements.Name = "listBoxElements"; this.listBoxElements.Size = new System.Drawing.Size(115, 121); this.listBoxElements.Sorted = true; this.listBoxElements.TabIndex = 0; this.listBoxElements.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.listBoxElements_PreviewKeyDown); this.listBoxElements.SelectedIndexChanged += new System.EventHandler(this.listBoxElements_SelectedIndexChanged); // // ElementsForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(115, 121); this.ControlBox = false; this.Controls.Add(this.listBoxElements); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "ElementsForm"; this.ShowIcon = false; this.ShowInTaskbar = false; this.StartPosition = System.Windows.Forms.FormStartPosition.Manual; this.Text = "ElementsForm"; this.ResumeLayout(false); } #endregion private System.Windows.Forms.ListBox listBoxElements; } }xsddiagram-0.16/LoginPromptForm.cs0000644000175000017500000000163112056405026017063 0ustar mathieumathieuusing System; using System.Windows.Forms; namespace XSDDiagram { public partial class LoginPromptForm : Form { public LoginPromptForm(string label) { InitializeComponent(); this.textBoxLabel.Text = label; } public string Username { get; set; } public string Password { get; set; } protected override void OnLoad(EventArgs e) { base.OnLoad(e); this.textBoxUsername.Text = Username; this.textBoxPassword.Text = Password; } protected override void OnClosed(EventArgs e) { if (this.DialogResult == System.Windows.Forms.DialogResult.OK) { Username = this.textBoxUsername.Text; Password = this.textBoxPassword.Text; } base.OnClosed(e); } } } xsddiagram-0.16/Icons/0000755000175000017500000000000011670473664014526 5ustar mathieumathieuxsddiagram-0.16/Icons/XSDDiagram.ico0000644000175000017500000001027611531463334017140 0ustar mathieumathieu  ( @ @@@@@4@4@@4@Pc"*Pc 4@@ Pc 4@q@4@@caw Pcq@4@@qc q@4@@@ @4@@@q@ vp4@@4@c4@vp4@4@@cc@4@@  o@@4@@q4@ @4@@c @4@@@@@a``@,,`lC>80p2rCOÏxsddiagram-0.16/Icons/XSDDiagram.png0000644000175000017500000000130311531463334017141 0ustar mathieumathieuPNG  IHDR szzsRGBgAMA a cHRMz&u0`:pQ<tEXtSoftwarePaint.NET v2.72rZ]IDATXGVJA' >@W ²غ@@51=D*`e OPaintDotNet.Data, Version=2.72.2432.31553, Culture=neutral, PublicKeyToken=null ISystem, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089PaintDotNet.Documentlayerswidthheight userMetaData savedWithtagdisposedPaintDotNet.LayerList2System.Collections.Specialized.NameValueCollectionSystem.Version    PaintDotNet.LayerListparentArrayList+_itemsArrayList+_sizeArrayList+_versionPaintDotNet.Document  2System.Collections.Specialized.NameValueCollectionReadOnly HashProviderComparerCountKeysValuesVersion2System.Collections.CaseInsensitiveHashCodeProvider*System.Collections.CaseInsensitiveComparer  System.Version_Major_Minor_Build _RevisionH B{   2System.Collections.CaseInsensitiveHashCodeProviderm_textSystem.Globalization.TextInfo  *System.Collections.CaseInsensitiveComparer m_compareInfo System.Globalization.CompareInfo   $exif.tag0 $exif.tag2 $exif.tag4 $exif.tag6      EPdnLib, Version=2.72.2432.31553, Culture=neutral, PublicKeyToken=null PaintDotNet.BitmapLayerdisposed propertiessurface Layer+width Layer+heightLayer+propertiesLayer+disposed-PaintDotNet.BitmapLayer+BitmapLayerPropertiesPaintDotNet.Surface!PaintDotNet.Layer+LayerProperties      System.Globalization.TextInfom_listSeparator m_isReadOnlycustomCultureName m_nDataItemm_useUserOverride m_win32LangID   System.Globalization.CompareInfo win32LCIDculturem_name System.Collections.ArrayList_items_size_version ! " # $-PaintDotNet.BitmapLayer+BitmapLayerPropertiesblendOp&PaintDotNet.UserBlendOps+NormalBlendOp %PaintDotNet.Surfacescan0widthheightstridedisposedPaintDotNet.MemoryBlock & !PaintDotNet.Layer+LayerPropertiesname userMetaDatavisible isBackgroundopacity2System.Collections.Specialized.NameValueCollection'Layer 2 ( ) * + Background ,!-D"./#/7$07%&PaintDotNet.UserBlendOps+NormalBlendOp&PaintDotNet.MemoryBlocklength64 bitmapWidth bitmapHeight hasParentdeferred  ( 3 4)%*& , 7 83478 `I%&/m{JJt`$ؐ@iG#)*eVe]f@흼{{;N'?\fdlJɞ!?~|?"5m wm?7??C=yߓwS;w.;>n>`+=~7}ϟ^߆ֿE;?oCy6^9{u_q5¹}7YS~;yp# ? Ì-o_']<ɛcS+1<gm?F8/=w7м7qp;ޟY Zno?Woow8fhK8gzw߽mߝ+C6=2Otwz}oc=>˃{}k#Oo1<5Qy5D'ǟ;{?G?g'3;uˏ};wMmzb;czY1߿Qq&?o`ݶ;M}V{G1x;6x.9G[xsddiagram-0.16/XSDDiagrams/0000755000175000017500000000000012100053102015523 5ustar mathieumathieuxsddiagram-0.16/XSDDiagrams/Diagrams/0000755000175000017500000000000011670473664017310 5ustar mathieumathieuxsddiagram-0.16/XSDDiagrams/Diagrams/XmlSchemas.cd0000644000175000017500000004422111670473664021667 0ustar mathieumathieu AAAAECCAAgBACAAAEAAAEAAQAAAghCAQBAAAAgQAggA= XSD\XMLSchema.cs AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= XSD\XMLSchema.cs AAAAAAAAAAAAAAAAAQAAAAAAAIAAACAAAAAAAAAAAgA= XSD\XMLSchema.cs QAAAABSAAAAACAAAAAAIAAEIEAAAEAAEAQAIAACAAAA= XSD\XMLSchema.cs AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= XSD\XMLSchema.cs AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= XSD\XMLSchema.cs AAAhAACAAAgECAAAAIABAAAAACAEAEAAAAEAAAAAAAA= XSD\XMLSchema.cs AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= XSD\XMLSchema.cs AQAhQACAAAgWHAQAAIExAAA0SCgFAEADAAEgAAAABAA= XSD\XMLSchema.cs AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= XSD\XMLSchema.cs AAAgQAKAAAAACAQAAIExAAAAQAAEAAAAAAAAAAAABAA= XSD\XMLSchema.cs AQAAAAAAAAAGEAAAAIAwAAAwAAgFAEIBBAAAAAAAAIA= XSD\XMLSchema.cs AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= XSD\XMLSchema.cs AAAAQAAAAAAAAAAAAIEAAAAEAAAEAAAAAAAgAAAAAAA= XSD\XMLSchema.cs AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= XSD\XMLSchema.cs AAAAAACAAAAECAAAAIAAAAAAEAAEAEAAAAAIAAAAAAA= XSD\XMLSchema.cs AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= XSD\XMLSchema.cs AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= XSD\XMLSchema.cs AAAgAACAAAAACAAAAAAJAAEAEAAABAAAAAAIAAAAAAA= XSD\XMLSchema.cs AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= XSD\XMLSchema.cs AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= XSD\XMLSchema.cs AAAAAAAAAAEgAAAEBAAAAAAAAAAAAAAAAAAAAAAAAAA= XSD\XMLSchema.cs AAAAAAIAAAAAAAAAAAAgAAAMAAAAAAAQAAAgAAAAAAA= XSD\XMLSchema.cs AAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAgAAAAAAA= XSD\XMLSchema.cs AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= XSD\XMLSchema.cs AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= XSD\XMLSchema.cs AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= XSD\XMLSchema.cs AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= XSD\XMLSchema.cs AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= XSD\XMLSchema.cs AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= XSD\XMLSchema.cs AAABAAAAAAgAAAAAAAAAAAAAACAAAAAAAAEAAAAAAAA= XSD\XMLSchema.cs AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= XSD\XMLSchema.cs AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= XSD\XMLSchema.cs CAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= XSD\XMLSchema.cs CAAAAICAAAAACAAAAAAAAAAAAAAAACAAAAAAAAAAAgA= XSD\XMLSchema.cs CAAAAIAAAAEAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA= XSD\XMLSchema.cs AAAAAAAAAAAAAAAAAAAAAEAAAAAQAAAAAAAAAAAAAAA= XSD\XMLSchema.cs AAAAAAAAAAAAAAAAAAAAAEAAAAAQAAAAAAAAAAAAAAA= XSD\XMLSchema.cs AACAAACAAAAAAAAAAIAAAAAAAAAECAAACAAAAAAAAAA= XSD\XMLSchema.cs ABAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA= XSD\XMLSchema.cs AAAAAAACAAAAAACAAIAAAAIAAAAEEAAAAAAAAAAAAAA= XSD\XMLSchema.cs IAAQAAQAAAAAAAIAAAAAACAAAAAAAAAAAEAAAAAAAAA= XSD\XMLSchema.cs IAAQAAQAAAAAAAIAAAAAACAAAAAAgAAAAEAAAAQAAAA= XSD\XMLSchema.cs AAAAAACAAAAACAAAAAAAAAAAAAAAACAAAAAAAAAAAgA= XSD\XMLSchema.cs AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= XSD\XMLSchema.cs AAAgAACAAAAACAAAAAAZAAEAAAAAAAIAAAAAAAAAAAA= XSD\XMLSchema.cs AAAAAAAAAAAAAAAAAAgQAAAAAAAAAAIAAAACAAAAAAA= XSD\XMLSchema.cs AAAAAQAAAAAAAAAAAAAQAAAAAAAAAAIAQAAAAAAAAAA= XSD\XMLSchema.cs AAAAAAAAAAAAAAAAAAAAAAAQAAgCACAAAAAAAAAAAAA= XSD\XMLSchema.cs AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= XSD\XMLSchema.cs AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= XSD\XMLSchema.cs AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= XSD\XMLSchema.cs AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= XSD\XMLSchema.cs AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= XSD\XMLSchema.cs AAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAgA= XSD\XMLSchema.cs AAAAAAAAAAAAAAABAAAAAAQAAAAAAAAAAAAAAAAAAQA= XSD\XMLSchema.cs QAIAAgAAAAAAAAAAAgIAAAAIEAAAAAAAAQAAAACAAAA= XSD\XMLSchema.cs AAAgAAAAAAAAAAAAAAAEAAAAAAAAAIAAAAAAAAAAAAA= XSD\XMLSchema.cs QAAAACAAAAAAAAAAAAAAAAAIAAAAAAAAAQAAAACAAAA= XSD\XMLSchema.cs QACAAAAAAAAAAAAAAEAQAgAIAAoAEBIACQAAAAGAAAA= XSD\XMLSchema.cs AAAAIAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAQAAAAAAA= XSD\XMLSchema.cs AACAAAAAAAAAAAAAAEAQAgAAAAoAEBIACAAAAAGAAAA= XSD\XMLSchema.cs xsddiagram-0.16/XSDDiagrams/Diagrams/Diagrams.cd0000644000175000017500000001372311670473664021355 0ustar mathieumathieu ASCJIAmAgtJAgMACABcQQIQQECiEAAGmACYAggISigA= Rendering\DiagramItem.cs AiIBFAAAgARBiIAQAAIE1AAAEyCFJAAIIAIAAgJCQCQ= Rendering\Diagram.cs BAAAAACABKAEAAAAAQAIQAAAAAAAAABCAABAAAAEAgA= Rendering\DiagramPrinter.cs AAAAAACAAIAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAA= Rendering\DiagramExporter.cs AAAAAAAAACAAAAAAAAAAAEQAAAAAAAAAABAQAAAAAAA= Rendering\DiagramRenderer.cs AAAAAAAAACAAAgAAAAAAAEQACAAAAAACABAQAAAAAAA= Rendering\DiagramGdiRenderer.cs ABBAQAAAACAAAAAAAAAAAUQAAAAQAACAABAQAAEAAIA= Rendering\DiagramSvgRenderer.cs AAAAAEAAAAAAAAAAAAAAAAAAAAAACAAAAIAAAAEAAAA= Rendering\DiagramItemGroupType.cs QAAAAAAAAAAAAAAAAAAAAAAIAAABAAAAAAAAAAAAAAA= Rendering\DiagramItemType.cs AAAAAAAAAAAAAAAAAAoAAAAAACAAAAAAAAAAAAEAAAA= Rendering\DiagramHitTestRegion.cs gAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAA= Rendering\DiagramAlignement.cs AAAAAAAAAACAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= Rendering\DiagramExporter.cs xsddiagram-0.16/XSDDiagrams/XSDDiagrams2010.csproj0000644000175000017500000000773011673402664021416 0ustar mathieumathieu Debug AnyCPU 9.0.30729 2.0 {6D3DACE7-D51B-4259-883A-6899BF4D52E2} Library Properties XSDDiagrams XSDDiagrams v2.0 512 3.5 true full false bin\Debug\ DEBUG;TRACE prompt 4 pdbonly true bin\Release\ TRACE prompt 4 true bin\x86\Debug\ DEBUG;TRACE full x86 prompt bin\x86\Release\ TRACE true pdbonly x86 prompt true true xsddiagram-0.16/XSDDiagrams/Rendering/0000755000175000017500000000000012056373716017472 5ustar mathieumathieuxsddiagram-0.16/XSDDiagrams/Rendering/DiagramItem.cs0000644000175000017500000003660611670473664022223 0ustar mathieumathieu// XSDDiagram - A XML Schema Definition file viewer // Copyright (C) 2006-2011 Regis COSNIER // // The content of this file is subject to the terms of either // the GNU Lesser General Public License only (LGPL) or // the Microsoft Public License (Ms-PL). // Please see LICENSE-LGPL.txt and LICENSE-MS-PL.txt files for details. // // Authors: // Regis Cosnier (Initial developer) // Paul Selormey (Refactoring) using System; using System.Drawing; using System.Collections.Generic; namespace XSDDiagram.Rendering { public sealed class DiagramItem { #region Private Methods private int _depth; private int _childExpandButtonSize; private int _minOccurrence; private int _maxOccurrence; private bool _isReference; private bool _isSimpleContent; private bool _isDisabled; private bool _hasChildElements; private bool _showChildElements; private Size _size; private Size _margin; private Size _padding; private Point _location; private string _name; private string _nameSpace; private Rectangle _elementBox; private Rectangle _childExpandButtonBox; private Rectangle _boundingBox; private Diagram _diagram; private DiagramItem _parent; private DiagramItem _inheritFrom; private DiagramItemType _itemType; private DiagramItemGroupType _groupType; private List _childElements; private XMLSchema.openAttrs _tabSchema; #endregion #region Constructors and Destructor public DiagramItem() { _name = String.Empty; _nameSpace = String.Empty; _minOccurrence = -1; _maxOccurrence = -1; _location = new Point(0, 0); _childExpandButtonSize = 10; _depth = 0; _elementBox = Rectangle.Empty; _childExpandButtonBox = Rectangle.Empty; _boundingBox = Rectangle.Empty; _size = new Size(50, 25); _margin = new Size(10, 5); _padding = new Size(10, 15); _itemType = DiagramItemType.element; _childElements = new List(); } #endregion #region Public Properties public Diagram Diagram { get { return _diagram; } set { _diagram = value; } } public DiagramItem Parent { get { return _parent; } set { _parent = value; } } public DiagramItem InheritFrom { get { return _inheritFrom; } set { _inheritFrom = value; } } public string Name { get { return _name; } set { _name = value; } } public string NameSpace { get { return _nameSpace; } set { _nameSpace = value; } } public DiagramItemType ItemType { get { return _itemType; } set { _itemType = value; } } public DiagramItemGroupType GroupType { get { return _groupType; } set { _groupType = value; } } public bool IsReference { get { return _isReference; } set { _isReference = value; } } public bool IsSimpleContent { get { return _isSimpleContent; } set { _isSimpleContent = value; } } public bool IsDisabled { get { return _isDisabled; } set { _isDisabled = value; } } public int MinOccurrence { get { return _minOccurrence; } set { _minOccurrence = value; } } public int MaxOccurrence { get { return _maxOccurrence; } set { _maxOccurrence = value; } } public bool HasChildElements { get { return _hasChildElements; } set { _hasChildElements = value; } } public bool ShowChildElements { get { return _showChildElements; } set { _showChildElements = value; } } public string FullName { get { return _nameSpace + ':' + _itemType + ':' + _name; } } public Font Font { get { return _diagram.Font; } } public Font SmallFont { get { return _diagram.SmallFont; } } public Point Location { get { return _location; } set { _location = value; } } public Size Size { get { return _size; } set { _size = value; } } public Size Margin { get { return _margin; } set { _margin = value; } } public Size Padding { get { return _padding; } set { _padding = value; } } public Rectangle ElementBox { get { return _elementBox; } set { _elementBox = value; } } public Rectangle ChildExpandButtonBox { get { return _childExpandButtonBox; } set { _childExpandButtonBox = value; } } public Rectangle BoundingBox { get { return _boundingBox; } set { _boundingBox = value; } } public int ChildExpandButtonSize { get { return _childExpandButtonSize; } set { _childExpandButtonSize = value; } } public int Depth { get { return _depth; } set { _depth = value; } } public IList ChildElements { get { return _childElements; } } public XMLSchema.openAttrs TabSchema { get { return _tabSchema; } set { _tabSchema = value; } } #endregion #region Public Methods public int ScaleInt(int integer) { return _diagram.ScaleInt(integer); } public Point ScalePoint(Point point) { return _diagram.ScalePoint(point); } public Size ScaleSize(Size point) { return _diagram.ScaleSize(point); } public Rectangle ScaleRectangle(Rectangle rectangle) { return _diagram.ScaleRectangle(rectangle); } public void GenerateMeasure(Graphics g) { if (_parent != null) _depth = _parent.Depth + 1; if (_itemType == DiagramItemType.group) { _size = new Size(40, 20); } //else // size = new Size(50, 25); if (_name.Length > 0) { SizeF sizeF = g.MeasureString(_name, Font); //MONOFIX size = sizeF.ToSize(); _size = new Size((int)sizeF.Width, (int)sizeF.Height); _size = _size + new Size(2 * Margin.Width + (_hasChildElements ? ChildExpandButtonSize : 0), 2 * Margin.Height); } int childBoundingBoxHeight = 0; int childBoundingBoxWidth = 0; if (_showChildElements) { foreach (DiagramItem element in _childElements) { //MONOFIX GenerateMeasure not supported??? element.GenerateMeasure(g); childBoundingBoxWidth = Math.Max(childBoundingBoxWidth, element.BoundingBox.Size.Width); childBoundingBoxHeight += element.BoundingBox.Size.Height; } } _boundingBox.Width = _size.Width + 2 * _padding.Width + childBoundingBoxWidth; _boundingBox.Height = Math.Max(_size.Height + 2 * _padding.Height, childBoundingBoxHeight); _elementBox = new Rectangle(new Point(0, 0), _size - new Size(_hasChildElements ? _childExpandButtonSize / 2 : 0, 0)); if (_hasChildElements) { _childExpandButtonBox.X = _elementBox.Width - _childExpandButtonSize / 2; _childExpandButtonBox.Y = (_elementBox.Height - _childExpandButtonSize) / 2; _childExpandButtonBox.Width = _childExpandButtonSize; _childExpandButtonBox.Height = _childExpandButtonSize; } } public void GenerateLocation() { _location.X = _boundingBox.X + _padding.Width; switch (_diagram.Alignement) { case DiagramAlignement.Center: _location.Y = _boundingBox.Y + (_boundingBox.Height - _size.Height) / 2; break; case DiagramAlignement.Near: if (_itemType == DiagramItemType.group && _parent != null && _parent.ChildElements.Count == 1) _location.Y = _parent.Location.Y + (_parent._elementBox.Height - _elementBox.Height) / 2; else _location.Y = _boundingBox.Y + _padding.Height; break; case DiagramAlignement.Far: if (_itemType == DiagramItemType.group && _parent != null && _parent.ChildElements.Count == 1) _location.Y = _parent.Location.Y + (_parent._elementBox.Height - _elementBox.Height) / 2; else _location.Y = _boundingBox.Y + _boundingBox.Height - _size.Height - _padding.Height; break; } if (_showChildElements) { int childrenHeight = 0; foreach (DiagramItem element in _childElements) childrenHeight += element.BoundingBox.Height; int childrenX = _boundingBox.X + 2 * _padding.Width + Size.Width; int childrenY = _boundingBox.Y + Math.Max(0, (_boundingBox.Height - childrenHeight) / 2); foreach (DiagramItem element in _childElements) { Rectangle elementBoundingBox = element.BoundingBox; elementBoundingBox.X = childrenX; elementBoundingBox.Y = childrenY; element.BoundingBox = elementBoundingBox; element.GenerateLocation(); childrenY += element.BoundingBox.Height; } } if (_hasChildElements) _childExpandButtonBox.Offset(_location); _elementBox.Offset(_location); } public void HitTest(Point point, out DiagramItem element, out DiagramHitTestRegion region) { element = null; if (ScaleRectangle(_boundingBox).Contains(point)) { element = this; if (ScaleRectangle(new Rectangle(_location, _size)).Contains(point)) { if (_hasChildElements && ScaleRectangle(_childExpandButtonBox).Contains(point)) region = DiagramHitTestRegion.ChildExpandButton; else region = DiagramHitTestRegion.Element; } else { region = DiagramHitTestRegion.BoundingBox; if (_showChildElements) { foreach (DiagramItem childElement in _childElements) { DiagramItem resultElement; DiagramHitTestRegion resultRegion; childElement.HitTest(point, out resultElement, out resultRegion); if (resultRegion != DiagramHitTestRegion.None) { element = resultElement; region = resultRegion; break; } } } } } else { region = DiagramHitTestRegion.None; } } #endregion } } xsddiagram-0.16/XSDDiagrams/Rendering/Diagram.cs0000644000175000017500000007661512025704112021364 0ustar mathieumathieu// XSDDiagram - A XML Schema Definition file viewer // Copyright (C) 2006-2011 Regis COSNIER // // The content of this file is subject to the terms of either // the GNU Lesser General Public License only (LGPL) or // the Microsoft Public License (Ms-PL). // Please see LICENSE-LGPL.txt and LICENSE-MS-PL.txt files for details. // // Authors: // Regis Cosnier (Initial developer) // Paul Selormey (Refactoring) using System; using System.Drawing; using System.Collections.Generic; namespace XSDDiagram.Rendering { public sealed class Diagram { #region Private Fields private bool _showBoundingBox; private Size _size; private Size _padding; private float _scale; private Font _font; private Font _smallFont; private Rectangle _boundingBox; private DiagramAlignement _alignement; private List _rootElements; private IDictionary _elementsByName; private XMLSchema.any _fakeAny; #endregion #region Constructors and Destructor public Diagram() { _scale = 1.0f; _size = new Size(100, 100); _padding = new Size(10, 10); _boundingBox = Rectangle.Empty; _alignement = DiagramAlignement.Center; _rootElements = new List(); _elementsByName = new Dictionary(StringComparer.OrdinalIgnoreCase); } #endregion #region Public Properties public Size Size { get { return _size; } set { _size = value; } } public Size Padding { get { return _padding; } set { _padding = value; } } public Rectangle BoundingBox { get { return _boundingBox; } } public float Scale { get { return _scale; } set { _scale = value; } } public DiagramAlignement Alignement { get { return _alignement; } set { _alignement = value; } } public bool ShowBoundingBox { get { return _showBoundingBox; } set { _showBoundingBox = value; } } public Font Font { get { return _font; } set { _font = value; } } public Font SmallFont { get { return _smallFont; } set { _smallFont = value; } } public IDictionary ElementsByName { get { return _elementsByName; } set { _elementsByName = value; } } public List RootElements { get { return _rootElements; } } #endregion #region Public Events public delegate void RequestAnyElementEventHandler(DiagramItem diagramElement, out XMLSchema.element element, out string nameSpace); public event RequestAnyElementEventHandler RequestAnyElement; #endregion #region Public Methods public DiagramItem Add(XMLSchema.openAttrs childElement, string nameSpace) { if (childElement is XMLSchema.element) return AddElement(childElement as XMLSchema.element, nameSpace); else if (childElement is XMLSchema.group) return AddCompositors(childElement as XMLSchema.group, nameSpace); else if (childElement is XMLSchema.complexType) return AddComplexType(childElement as XMLSchema.complexType, nameSpace); return null; } public DiagramItem AddElement(XMLSchema.element childElement, string nameSpace) { return AddElement(null, childElement, nameSpace); } public DiagramItem AddElement(DiagramItem parentDiagramElement, XMLSchema.element childElement, string nameSpace) { if (childElement != null) { DiagramItem childDiagramElement = new DiagramItem(); XMLSchema.element referenceElement = null; if (childElement.@ref != null) { if (!childElement.@ref.IsEmpty) { childDiagramElement.IsReference = true; XSDObject objectReferred = null; if(_elementsByName.TryGetValue(childElement.@ref.Namespace + ":element:" + childElement.@ref.Name, out objectReferred) && objectReferred != null) { XMLSchema.element elementReferred = objectReferred.Tag as XMLSchema.element; if (elementReferred != null) { referenceElement = childElement; childElement = elementReferred; } } else childElement.name = childElement.@ref.Name; } } childDiagramElement.Diagram = this; childDiagramElement.TabSchema = childElement; childDiagramElement.Name = childElement.name != null ? childElement.name : ""; childDiagramElement.NameSpace = nameSpace; childDiagramElement.ItemType = DiagramItemType.element; int occurrence; if (int.TryParse(referenceElement != null ? referenceElement.minOccurs : childElement.minOccurs, out occurrence)) childDiagramElement.MinOccurrence = occurrence; else childDiagramElement.MinOccurrence = -1; //try { childDiagramElement.MinOccurrence = int.Parse(referenceElement != null ? referenceElement.minOccurs : childElement.minOccurs); } //catch { childDiagramElement.MinOccurrence = -1; } if (int.TryParse(referenceElement != null ? referenceElement.maxOccurs : childElement.maxOccurs, out occurrence)) childDiagramElement.MaxOccurrence = occurrence; else childDiagramElement.MaxOccurrence = -1; //try { childDiagramElement.MaxOccurrence = int.Parse(referenceElement != null ? referenceElement.maxOccurs : childElement.maxOccurs); } //catch { childDiagramElement.MaxOccurrence = -1; } bool hasChildren; bool isSimpleType; GetChildrenInfo(childElement, out hasChildren, out isSimpleType); childDiagramElement.HasChildElements = hasChildren; childDiagramElement.IsSimpleContent = isSimpleType; if (parentDiagramElement == null) { _rootElements.Add(childDiagramElement); } else { childDiagramElement.Parent = parentDiagramElement; parentDiagramElement.ChildElements.Add(childDiagramElement); } if (childElement.@abstract) { string abstractElementFullName = childDiagramElement.FullName; foreach(XSDObject xsdObject in _elementsByName.Values) { if (xsdObject != null && xsdObject.Tag is XMLSchema.element) { XMLSchema.element element = xsdObject.Tag as XMLSchema.element; if (element.substitutionGroup != null) { string elementFullName = element.substitutionGroup.Namespace + ":element:" + element.substitutionGroup.Name; if (elementFullName == abstractElementFullName) { DiagramItem diagramBase = AddElement(parentDiagramElement, element, xsdObject.NameSpace); if (diagramBase != null) diagramBase.InheritFrom = childDiagramElement; } } } } } return childDiagramElement; } return null; } public DiagramItem AddComplexType(XMLSchema.complexType childElement, string nameSpace) { return AddComplexType(null, childElement, false, nameSpace); } public DiagramItem AddComplexType(DiagramItem parentDiagramElement, XMLSchema.complexType childElement, string nameSpace) { return AddComplexType(parentDiagramElement, childElement, false, nameSpace); } public DiagramItem AddComplexType(DiagramItem parentDiagramElement, XMLSchema.complexType childElement, bool isReference, string nameSpace) { if (childElement != null) { DiagramItem childDiagramElement = new DiagramItem(); childDiagramElement.Diagram = this; childDiagramElement.TabSchema = childElement; childDiagramElement.Name = childElement.name != null ? childElement.name : ""; childDiagramElement.NameSpace = nameSpace; childDiagramElement.ItemType = DiagramItemType.type; childDiagramElement.MinOccurrence = 1; childDiagramElement.MaxOccurrence = 1; childDiagramElement.IsReference = isReference; childDiagramElement.IsSimpleContent = false; childDiagramElement.HasChildElements = false; if (childElement.Items != null) { for (int i = 0; i < childElement.Items.Length; i++) { if (childElement.Items[i] is XMLSchema.group || childElement.Items[i] is XMLSchema.complexType || childElement.Items[i] is XMLSchema.complexContent) { childDiagramElement.HasChildElements = true; break; } } } if (parentDiagramElement == null) _rootElements.Add(childDiagramElement); else { childDiagramElement.Parent = parentDiagramElement; parentDiagramElement.ChildElements.Add(childDiagramElement); } return childDiagramElement; } return null; } public DiagramItem AddAny(DiagramItem parentDiagramElement, XMLSchema.any childElement, string nameSpace) { bool isDisabled = false; if (childElement == null) { isDisabled = true; if (_fakeAny == null) { _fakeAny = new XMLSchema.any(); _fakeAny.minOccurs = "0"; _fakeAny.maxOccurs = "unbounded"; } childElement = _fakeAny; } if (childElement != null) { DiagramItem childDiagramElement = new DiagramItem(); childDiagramElement.IsDisabled = isDisabled; childDiagramElement.Diagram = this; childDiagramElement.TabSchema = childElement; childDiagramElement.Name = "any " + childElement.@namespace; childDiagramElement.NameSpace = nameSpace; childDiagramElement.ItemType = DiagramItemType.group; //DiagramBase.TypeEnum.element; int occurrence; if (int.TryParse(childElement.minOccurs, out occurrence)) childDiagramElement.MinOccurrence = occurrence; else childDiagramElement.MinOccurrence = -1; //try { childDiagramElement.MinOccurrence = int.Parse(childElement.minOccurs); } //catch { childDiagramElement.MinOccurrence = -1; } if (int.TryParse(childElement.maxOccurs, out occurrence)) childDiagramElement.MaxOccurrence = occurrence; else childDiagramElement.MaxOccurrence = -1; //try { childDiagramElement.MaxOccurrence = int.Parse(childElement.maxOccurs); } //catch { childDiagramElement.MaxOccurrence = -1; } childDiagramElement.IsReference = false; childDiagramElement.IsSimpleContent = false; childDiagramElement.HasChildElements = false; // true; if (parentDiagramElement == null) { _rootElements.Add(childDiagramElement); } else { childDiagramElement.Parent = parentDiagramElement; parentDiagramElement.ChildElements.Add(childDiagramElement); } return childDiagramElement; } return null; } public DiagramItem AddCompositors(XMLSchema.group childElement, string nameSpace) { return AddCompositors(null, childElement, DiagramItemGroupType.Group, nameSpace); } public DiagramItem AddCompositors(DiagramItem parentDiagramElement, XMLSchema.group childElement, string nameSpace) { return AddCompositors(parentDiagramElement, childElement, DiagramItemGroupType.Group, nameSpace); } public DiagramItem AddCompositors(DiagramItem parentDiagramElement, XMLSchema.group childGroup, DiagramItemGroupType type, string nameSpace) { if (childGroup != null) { DiagramItem childDiagramGroup = new DiagramItem(); childDiagramGroup.ItemType = DiagramItemType.group; if (childGroup.@ref != null) { childDiagramGroup.IsReference = true; childDiagramGroup.Name = childGroup.@ref.Name != null ? childGroup.@ref.Name : ""; childDiagramGroup.NameSpace = childGroup.@ref.Namespace != null ? childGroup.@ref.Namespace : ""; XSDObject grpObject = null; if (_elementsByName.TryGetValue(childDiagramGroup.FullName, out grpObject) && grpObject != null) { XMLSchema.group group = grpObject.Tag as XMLSchema.group; if (group != null) childGroup = group; } } else if (type == DiagramItemGroupType.Group) { childDiagramGroup.Name = childGroup.name != null ? childGroup.name : ""; childDiagramGroup.NameSpace = nameSpace; } else { childDiagramGroup.NameSpace = nameSpace; } childDiagramGroup.Diagram = this; childDiagramGroup.TabSchema = childGroup; int occurrence; if (int.TryParse(childGroup.minOccurs, out occurrence)) childDiagramGroup.MinOccurrence = occurrence; else childDiagramGroup.MinOccurrence = -1; //try { childDiagramGroup.MinOccurrence = int.Parse(childGroup.minOccurs); } //catch { childDiagramGroup.MinOccurrence = -1; } if (int.TryParse(childGroup.maxOccurs, out occurrence)) childDiagramGroup.MaxOccurrence = occurrence; else childDiagramGroup.MaxOccurrence = -1; //try { childDiagramGroup.MaxOccurrence = int.Parse(childGroup.maxOccurs); } //catch { childDiagramGroup.MaxOccurrence = -1; } childDiagramGroup.HasChildElements = true; childDiagramGroup.GroupType = type; if (parentDiagramElement == null) _rootElements.Add(childDiagramGroup); else { childDiagramGroup.Parent = parentDiagramElement; parentDiagramElement.ChildElements.Add(childDiagramGroup); } return childDiagramGroup; } return null; } public void Remove(DiagramItem element) { if (element.Parent == null) _rootElements.Remove(element); else { element.Parent.ChildElements.Remove(element); if (element.Parent.ChildElements.Count == 0) element.Parent.ShowChildElements = false; } } public void RemoveAll() { _rootElements.Clear(); } public void ExpandOneLevel() { foreach (DiagramItem item in _rootElements) { this.ExpandOneLevel(item); if (item.HasChildElements && item.ChildElements.Count == 0) { this.ExpandChildren(item); } } } public void Clear() { _rootElements.Clear(); } public void Layout(Graphics g) { string fontName = "Arial"; // "Verdana"; // "Arial"; if (_font != null) { _font.Dispose(); } if (_smallFont != null) { _smallFont.Dispose(); } _font = new Font(fontName, 10.0f * (float)Math.Pow(_scale, 2.0), FontStyle.Bold, GraphicsUnit.Pixel); _smallFont = new Font(fontName, 9.0f * (float)Math.Pow(_scale, 2.0), GraphicsUnit.Pixel); foreach (DiagramItem element in _rootElements) element.GenerateMeasure(g); _boundingBox = new Rectangle(0, 0, 100, 0); int currentY = _padding.Height; foreach (DiagramItem element in _rootElements) { Rectangle elementBoundingBox = element.BoundingBox; elementBoundingBox.X = _padding.Width; elementBoundingBox.Y = currentY; element.BoundingBox = elementBoundingBox; element.GenerateLocation(); currentY += element.BoundingBox.Height; _boundingBox = Rectangle.Union(_boundingBox, element.BoundingBox); } } public void HitTest(Point point, out DiagramItem element, out DiagramHitTestRegion region) { element = null; region = DiagramHitTestRegion.None; foreach (DiagramItem childElement in _rootElements) { DiagramItem resultElement; DiagramHitTestRegion resultRegion; childElement.HitTest(point, out resultElement, out resultRegion); if (resultRegion != DiagramHitTestRegion.None) { element = resultElement; region = resultRegion; break; } } } public int ScaleInt(int integer) { return (int)(integer * this.Scale); } public Point ScalePoint(Point point) { return new Point((int)Math.Round(point.X * this.Scale), (int)Math.Round(point.Y * this.Scale)); } public Size ScaleSize(Size point) { return new Size((int)Math.Round(point.Width * this.Scale), (int)Math.Round(point.Height * this.Scale)); } public Rectangle ScaleRectangle(Rectangle rectangle) { return new Rectangle((int)Math.Round(rectangle.X * this.Scale), (int)Math.Round(rectangle.Y * this.Scale), (int)Math.Round(rectangle.Width * this.Scale), (int)Math.Round(rectangle.Height * this.Scale)); } public void ExpandChildren(DiagramItem parentDiagramElement) { if (parentDiagramElement.ItemType == DiagramItemType.element || parentDiagramElement.ItemType == DiagramItemType.type) { DiagramItem diagramElement = parentDiagramElement; if (diagramElement.TabSchema is XMLSchema.element) { XMLSchema.element element = diagramElement.TabSchema as XMLSchema.element; if (element.Item is XMLSchema.complexType) { XMLSchema.complexType complexTypeElement = element.Item as XMLSchema.complexType; ExpandComplexType(diagramElement, complexTypeElement); } else if (element.type != null) { XSDObject objectAnnotated = null; if(_elementsByName.TryGetValue(element.type.Namespace + ":type:" + element.type.Name, out objectAnnotated) && objectAnnotated != null) { XMLSchema.annotated annotated = objectAnnotated.Tag as XMLSchema.annotated; ExpandAnnotated(diagramElement, annotated, element.type.Namespace); } } } else if (diagramElement.TabSchema is XMLSchema.any) { //XMLSchema.any any = diagramElement.TabSchema as XMLSchema.any; if (RequestAnyElement != null) { XMLSchema.element requestElement; string requestNameSpace; RequestAnyElement(diagramElement, out requestElement, out requestNameSpace); if(requestElement != null) { AddElement(diagramElement, requestElement, requestNameSpace); diagramElement.ShowChildElements = true; } } } else if (diagramElement.TabSchema is XMLSchema.complexType) { XMLSchema.complexType complexTypeElement = diagramElement.TabSchema as XMLSchema.complexType; ExpandComplexType(diagramElement, complexTypeElement); } } else if (parentDiagramElement.ItemType == DiagramItemType.group) { DiagramItem diagramCompositors = parentDiagramElement; XMLSchema.group group = diagramCompositors.TabSchema as XMLSchema.group; if (group.Items != null) { for (int i = 0; i < group.Items.Length; i++) { switch (group.ItemsElementName[i]) { case XMLSchema.ItemsChoiceType2.element: if (group.Items[i] is XMLSchema.element) AddElement(diagramCompositors, group.Items[i] as XMLSchema.element, diagramCompositors.NameSpace); break; case XMLSchema.ItemsChoiceType2.any: if (group.Items[i] is XMLSchema.any) AddAny(diagramCompositors, group.Items[i] as XMLSchema.any, diagramCompositors.NameSpace); break; case XMLSchema.ItemsChoiceType2.group: if (group.Items[i] is XMLSchema.group) AddCompositors(diagramCompositors, group.Items[i] as XMLSchema.group, DiagramItemGroupType.Group, diagramCompositors.NameSpace); break; case XMLSchema.ItemsChoiceType2.all: if (group.Items[i] is XMLSchema.group) AddCompositors(diagramCompositors, group.Items[i] as XMLSchema.group, DiagramItemGroupType.All, diagramCompositors.NameSpace); break; case XMLSchema.ItemsChoiceType2.choice: if (group.Items[i] is XMLSchema.group) AddCompositors(diagramCompositors, group.Items[i] as XMLSchema.group, DiagramItemGroupType.Choice, diagramCompositors.NameSpace); break; case XMLSchema.ItemsChoiceType2.sequence: if (group.Items[i] is XMLSchema.group) AddCompositors(diagramCompositors, group.Items[i] as XMLSchema.group, DiagramItemGroupType.Sequence, diagramCompositors.NameSpace); break; } } parentDiagramElement.ShowChildElements = true; } else { AddAny(diagramCompositors, null, diagramCompositors.NameSpace); } } } #endregion #region Private Methods private void GetChildrenInfo(XMLSchema.complexType complexTypeElement, out bool hasChildren, out bool isSimpleType) { bool hasSimpleContent = false; if (complexTypeElement.Items != null) { for (int i = 0; i < complexTypeElement.Items.Length; i++) { if (complexTypeElement.Items[i] is XMLSchema.group || complexTypeElement.Items[i] is XMLSchema.complexType || complexTypeElement.Items[i] is XMLSchema.complexContent) { hasChildren = true; isSimpleType = complexTypeElement.mixed; if (complexTypeElement.Items[i] is XMLSchema.complexContent) { //hasChildren = false; XMLSchema.complexContent complexContent = complexTypeElement.Items[i] as XMLSchema.complexContent; if (complexContent.Item is XMLSchema.extensionType) { hasChildren = false; XMLSchema.extensionType extensionType = complexContent.Item as XMLSchema.extensionType; if (extensionType.all != null || extensionType.group != null || extensionType.choice != null || extensionType.sequence != null) hasChildren = true; else if (extensionType.@base != null) { XSDObject xsdObject = null; if(_elementsByName.TryGetValue(extensionType.@base.Namespace + ":type:" + extensionType.@base.Name, out xsdObject) && xsdObject != null) { XMLSchema.complexType baseComplexType = xsdObject.Tag as XMLSchema.complexType; if (baseComplexType != null) GetChildrenInfo(baseComplexType, out hasChildren, out isSimpleType); } } } //else if (complexContent.Item is XMLSchema.complexRestrictionType) //{ // XMLSchema.complexRestrictionType complexRestrictionType = complexContent.Item as XMLSchema.complexRestrictionType; //} } return; } else if (complexTypeElement.Items[i] is XMLSchema.simpleContent) { hasSimpleContent = true; } } } hasChildren = false; isSimpleType = (hasSimpleContent ? true : complexTypeElement.mixed); } private void GetChildrenInfo(XMLSchema.element childElement, out bool hasChildren, out bool isSimpleType) { if (childElement.Item is XMLSchema.complexType) { XMLSchema.complexType complexTypeElement = childElement.Item as XMLSchema.complexType; GetChildrenInfo(complexTypeElement, out hasChildren, out isSimpleType); return; //if (complexTypeElement.Items != null) //{ // for (int i = 0; i < complexTypeElement.Items.Length; i++) // { // if (complexTypeElement.Items[i] is XMLSchema.group || // complexTypeElement.Items[i] is XMLSchema.complexType || // complexTypeElement.Items[i] is XMLSchema.complexContent) // { // return true; // } // } //} } else if (childElement.type != null) { XSDObject xsdObject = null; if(_elementsByName.TryGetValue(childElement.type.Namespace + ":type:" + childElement.type.Name, out xsdObject) && xsdObject != null) //if (_elementsByName.ContainsKey(childElement.type.Namespace + ":type:" + childElement.type.Name)) { XMLSchema.annotated annotated = xsdObject.Tag as XMLSchema.annotated; if (annotated is XMLSchema.simpleType) { hasChildren = false; isSimpleType = true; } else GetChildrenInfo(annotated as XMLSchema.complexType, out hasChildren, out isSimpleType); return; } } hasChildren = false; isSimpleType = true; } private void ExpandAnnotated(DiagramItem parentDiagramElement, XMLSchema.annotated annotated, string nameSpace) { if (annotated is XMLSchema.element) { AddElement(parentDiagramElement, annotated as XMLSchema.element, nameSpace); parentDiagramElement.ShowChildElements = true; } else if (annotated is XMLSchema.group) { AddCompositors(parentDiagramElement, annotated as XMLSchema.group, nameSpace); parentDiagramElement.ShowChildElements = true; } else if (annotated is XMLSchema.complexType) { ExpandComplexType(parentDiagramElement, annotated as XMLSchema.complexType); parentDiagramElement.ShowChildElements = true; } } private void ExpandComplexType(DiagramItem parentDiagramElement, XMLSchema.complexType complexTypeElement) { if (complexTypeElement.Items != null) { XMLSchema.annotated[] items = complexTypeElement.Items; XMLSchema.ItemsChoiceType4[] itemsChoiceType = complexTypeElement.ItemsElementName; for (int i = 0; i < items.Length; i++) { if (items[i] is XMLSchema.group) { XMLSchema.group group = items[i] as XMLSchema.group; DiagramItem diagramCompositors = AddCompositors(parentDiagramElement, group, (DiagramItemGroupType)Enum.Parse(typeof(DiagramItemGroupType), itemsChoiceType[i].ToString(), true), parentDiagramElement.NameSpace); parentDiagramElement.ShowChildElements = true; if (diagramCompositors != null) ExpandChildren(diagramCompositors); } else if (items[i] is XMLSchema.complexContent) { XMLSchema.complexContent complexContent = items[i] as XMLSchema.complexContent; if (complexContent.Item is XMLSchema.extensionType) { XMLSchema.extensionType extensionType = complexContent.Item as XMLSchema.extensionType; XSDObject xsdObject = null; if(_elementsByName.TryGetValue(extensionType.@base.Namespace + ":type:" + extensionType.@base.Name, out xsdObject) && xsdObject != null) { XMLSchema.annotated annotated = xsdObject.Tag as XMLSchema.annotated; ExpandAnnotated(parentDiagramElement, annotated, extensionType.@base.Namespace); } XMLSchema.group group = extensionType.group as XMLSchema.group; if (group != null) { DiagramItem diagramCompositors = AddCompositors(parentDiagramElement, group, DiagramItemGroupType.Group, extensionType.@base.Namespace); parentDiagramElement.ShowChildElements = true; if (diagramCompositors != null) ExpandChildren(diagramCompositors); } XMLSchema.group groupSequence = extensionType.sequence as XMLSchema.group; if (groupSequence != null) { DiagramItem diagramCompositors = AddCompositors(parentDiagramElement, groupSequence, DiagramItemGroupType.Sequence, extensionType.@base.Namespace); parentDiagramElement.ShowChildElements = true; if (diagramCompositors != null) ExpandChildren(diagramCompositors); } XMLSchema.group groupChoice = extensionType.choice as XMLSchema.group; if (groupChoice != null) { DiagramItem diagramCompositors = AddCompositors(parentDiagramElement, groupChoice, DiagramItemGroupType.Choice, extensionType.@base.Namespace); parentDiagramElement.ShowChildElements = true; if (diagramCompositors != null) ExpandChildren(diagramCompositors); } } else if (complexContent.Item is XMLSchema.restrictionType) { XMLSchema.restrictionType restrictionType = complexContent.Item as XMLSchema.restrictionType; XSDObject xsdObject = null; if(_elementsByName.TryGetValue(restrictionType.@base.Namespace + ":type:" + restrictionType.@base.Name, out xsdObject) && xsdObject != null) { XMLSchema.annotated annotated = xsdObject.Tag as XMLSchema.annotated; ExpandAnnotated(parentDiagramElement, annotated, restrictionType.@base.Namespace); } else { //dgis fix github issue 2 if(restrictionType.Items != null) { //for (int j = 0; j < items.Length; j++) for (int j = 0; j < restrictionType.Items.Length; j++) { if (restrictionType.Items[j] is XMLSchema.group) { XMLSchema.group group = restrictionType.Items[j] as XMLSchema.group; DiagramItem diagramCompositors = AddCompositors(parentDiagramElement, group, (DiagramItemGroupType)Enum.Parse(typeof(DiagramItemGroupType), restrictionType.ItemsElementName[j].ToString(), true), parentDiagramElement.NameSpace); parentDiagramElement.ShowChildElements = true; if (diagramCompositors != null) ExpandChildren(diagramCompositors); } } } } } } } } } private void ExpandOneLevel(DiagramItem parentItem) { foreach (DiagramItem item in parentItem.ChildElements) { this.ExpandOneLevel(item); if (item.HasChildElements && item.ChildElements.Count == 0) { this.ExpandChildren(item); } } } #endregion } } xsddiagram-0.16/XSDDiagrams/Rendering/DiagramHitTestRegion.cs0000644000175000017500000000124511670473664024044 0ustar mathieumathieu// XSDDiagram - A XML Schema Definition file viewer // Copyright (C) 2006-2011 Regis COSNIER // // The content of this file is subject to the terms of either // the GNU Lesser General Public License only (LGPL) or // the Microsoft Public License (Ms-PL). // Please see LICENSE-LGPL.txt and LICENSE-MS-PL.txt files for details. // // Authors: // Regis Cosnier (Initial developer) // Paul Selormey (Refactoring) using System; namespace XSDDiagram.Rendering { [Serializable] public enum DiagramHitTestRegion { None, BoundingBox, Element, ChildExpandButton } } xsddiagram-0.16/XSDDiagrams/Rendering/DiagramExporter.cs0000644000175000017500000001264312056373716023124 0ustar mathieumathieu// XSDDiagram - A XML Schema Definition file viewer // Copyright (C) 2006-2011 Regis COSNIER // // The content of this file is subject to the terms of either // the GNU Lesser General Public License only (LGPL) or // the Microsoft Public License (Ms-PL). // Please see LICENSE-LGPL.txt and LICENSE-MS-PL.txt files for details. // // Authors: // Regis Cosnier (Initial developer) // Paul Selormey (Refactoring) using System; using System.IO; using System.Drawing; using System.Drawing.Imaging; using System.Drawing.Drawing2D; namespace XSDDiagram.Rendering { public delegate bool DiagramAlertHandler(string title, string message); public sealed class DiagramExporter { #region Private Fields private Diagram _diagram; #endregion #region Constructors and Destructor public DiagramExporter(Diagram diagram) { if (diagram == null) { throw new ArgumentNullException("diagram", "The diagram parameter cannot be null (or Nothing)."); } _diagram = diagram; } #endregion #region Public Properties public Diagram Diagram { get { return _diagram; } } #endregion #region Public Methods public bool Export(string outputFilename, Graphics referenceGraphics, DiagramAlertHandler alerteDelegate) { string extension = Path.GetExtension(outputFilename).ToLower(); if (string.IsNullOrEmpty(extension)) { extension = ".svg"; outputFilename += extension; } using (FileStream stream = File.Create(outputFilename)) { return Export(stream, extension, referenceGraphics, alerteDelegate); } } public bool Export(Stream stream, string extension, Graphics referenceGraphics, DiagramAlertHandler alerteDelegate) { bool result = false; if (extension.Equals(".emf", StringComparison.OrdinalIgnoreCase)) { float scaleSave = _diagram.Scale; try { _diagram.Scale = 1.0f; _diagram.Layout(referenceGraphics); IntPtr hdc = referenceGraphics.GetHdc(); Metafile metafile = new Metafile(stream, hdc); Graphics graphics = Graphics.FromImage(metafile); graphics.SmoothingMode = SmoothingMode.HighQuality; _diagram.Layout(graphics); DiagramGdiRenderer.Draw(_diagram, graphics); referenceGraphics.ReleaseHdc(hdc); metafile.Dispose(); graphics.Dispose(); result = true; } finally { _diagram.Scale = scaleSave; _diagram.Layout(referenceGraphics); } } else if (extension.Equals(".png", StringComparison.OrdinalIgnoreCase) || extension.Equals(".jpg", StringComparison.OrdinalIgnoreCase) || extension.Equals(".jpeg", StringComparison.OrdinalIgnoreCase)) { Rectangle bbox = _diagram.ScaleRectangle(_diagram.BoundingBox); bool bypassAlert = true; if (alerteDelegate != null && (bbox.Width > 10000 || bbox.Height > 10000)) bypassAlert = alerteDelegate("Huge image generation", String.Format("Do you agree to generate a {0}x{1} image?", bbox.Width, bbox.Height)); if (bypassAlert) { Bitmap bitmap = new Bitmap(bbox.Width, bbox.Height); Graphics graphics = Graphics.FromImage(bitmap); graphics.FillRectangle(Brushes.White, 0, 0, bbox.Width, bbox.Height); DiagramGdiRenderer.Draw(_diagram, graphics); if (extension.CompareTo(".png") == 0) bitmap.Save(stream, ImageFormat.Png); else bitmap.Save(stream, ImageFormat.Jpeg); result = true; } } else //if (extension.CompareTo(".svg") == 0) { float scaleSave = _diagram.Scale; try { _diagram.Scale = 1.0f; _diagram.Layout(referenceGraphics); using (StreamWriter sw = new StreamWriter(stream)) { using (DiagramSvgRenderer renderer = new DiagramSvgRenderer(sw)) { renderer.Render(_diagram); } sw.Close(); } result = true; } finally { _diagram.Scale = scaleSave; _diagram.Layout(referenceGraphics); } } return result; } #endregion } } xsddiagram-0.16/XSDDiagrams/Rendering/DiagramRenderer.cs0000644000175000017500000000271311670473664023063 0ustar mathieumathieu// XSDDiagram - A XML Schema Definition file viewer // Copyright (C) 2006-2011 Regis COSNIER // // The content of this file is subject to the terms of either // the GNU Lesser General Public License only (LGPL) or // the Microsoft Public License (Ms-PL). // Please see LICENSE-LGPL.txt and LICENSE-MS-PL.txt files for details. // // Authors: // Regis Cosnier (Initial developer) // Paul Selormey (Refactoring) using System; namespace XSDDiagram.Rendering { public abstract class DiagramRenderer : IDisposable { #region Constructors and Destructor protected DiagramRenderer() { } ~DiagramRenderer() { this.Dispose(false); } #endregion #region Public Properties public abstract string Name { get; } #endregion #region Public Methods public abstract void BeginItemsRender(); public abstract void Render(Diagram diagram); public abstract void Render(DiagramItem item); public abstract void EndItemsRender(); #endregion #region IDisposable Members public void Dispose() { this.Dispose(true); GC.SuppressFinalize(this); } protected virtual void Dispose(bool disposing) { } #endregion } } xsddiagram-0.16/XSDDiagrams/Rendering/DiagramItemGroupType.cs0000644000175000017500000000122411670473664024066 0ustar mathieumathieu// XSDDiagram - A XML Schema Definition file viewer // Copyright (C) 2006-2011 Regis COSNIER // // The content of this file is subject to the terms of either // the GNU Lesser General Public License only (LGPL) or // the Microsoft Public License (Ms-PL). // Please see LICENSE-LGPL.txt and LICENSE-MS-PL.txt files for details. // // Authors: // Regis Cosnier (Initial developer) // Paul Selormey (Refactoring) using System; namespace XSDDiagram.Rendering { [Serializable] public enum DiagramItemGroupType { Group, Sequence, Choice, All } } xsddiagram-0.16/XSDDiagrams/Rendering/DiagramAlignement.cs0000644000175000017500000000117411670473664023400 0ustar mathieumathieu// XSDDiagram - A XML Schema Definition file viewer // Copyright (C) 2006-2011 Regis COSNIER // // The content of this file is subject to the terms of either // the GNU Lesser General Public License only (LGPL) or // the Microsoft Public License (Ms-PL). // Please see LICENSE-LGPL.txt and LICENSE-MS-PL.txt files for details. // // Authors: // Regis Cosnier (Initial developer) // Paul Selormey (Refactoring) using System; namespace XSDDiagram.Rendering { [Serializable] public enum DiagramAlignement { Near, Center, Far } } xsddiagram-0.16/XSDDiagrams/Rendering/DiagramItemType.cs0000644000175000017500000000117511670473664023056 0ustar mathieumathieu// XSDDiagram - A XML Schema Definition file viewer // Copyright (C) 2006-2011 Regis COSNIER // // The content of this file is subject to the terms of either // the GNU Lesser General Public License only (LGPL) or // the Microsoft Public License (Ms-PL). // Please see LICENSE-LGPL.txt and LICENSE-MS-PL.txt files for details. // // Authors: // Regis Cosnier (Initial developer) // Paul Selormey (Refactoring) using System; namespace XSDDiagram.Rendering { [Serializable] public enum DiagramItemType { element, type, group } } xsddiagram-0.16/XSDDiagrams/Rendering/DiagramSvgRenderer.cs0000644000175000017500000007675411670473664023563 0ustar mathieumathieu// XSDDiagram - A XML Schema Definition file viewer // Copyright (C) 2006-2011 Regis COSNIER // // The content of this file is subject to the terms of either // the GNU Lesser General Public License only (LGPL) or // the Microsoft Public License (Ms-PL). // Please see LICENSE-LGPL.txt and LICENSE-MS-PL.txt files for details. // // Authors: // Regis Cosnier (Initial developer) // Paul Selormey (Refactoring) using System; using System.IO; using System.Text; using System.Drawing; namespace XSDDiagram.Rendering { public sealed class DiagramSvgRenderer : DiagramRenderer { #region Private Fields private TextWriter _writer; #endregion #region Constructors and Destructor public DiagramSvgRenderer(TextWriter writer) { if (writer == null) { throw new ArgumentNullException("writer", "The writer object is required."); } _writer = writer; } #endregion #region Public Properties public override string Name { get { return "SVG"; } } public TextWriter Writer { get { return _writer; } } #endregion #region Public Methods public override void BeginItemsRender() { _writer.WriteLine(@""); _writer.WriteLine(@""); _writer.WriteLine(@""); } public override void EndItemsRender() { _writer.WriteLine(@""); } public override void Render(Diagram diagram) { this.BeginItemsRender(); foreach (DiagramItem element in diagram.RootElements) { this.Render(element); } this.EndItemsRender(); } public override void Render(DiagramItem drawingItem) { //if (drawingItem.diagram.ShowBoundingBox) //{ // int color = 255 - depth * 8; // g.FillRectangle(new SolidBrush(Color.FromArgb(color, color, color)), drawingItem.ScaleRectangle(drawingItem.boundingBox)); // g.DrawRectangle(foregroundPen, drawingItem.ScaleRectangle(drawingItem.boundingBox)); //} // Draw the children if (drawingItem.ShowChildElements) { foreach (DiagramItem element in drawingItem.ChildElements) { this.Render(element); _writer.WriteLine(); } } string backgroundBrush = "fill:rgb(255,255,255)"; string foregroundColor = "rgb(0,0,0)"; string foregroundBrush = "fill:" + foregroundColor; string foregroundPen = "stroke:" + foregroundColor + ";stroke-width:1"; string foregroundRoundPen = foregroundPen + ";stroke-linecap:round"; string dashed = "stroke-dasharray:4,1"; Rectangle scaledElementBox = drawingItem.ScaleRectangle(drawingItem.ElementBox); // Draw the children lines if (drawingItem.ShowChildElements) { if (drawingItem.ChildElements.Count == 1) { int parentMidleY = drawingItem.ScaleInt(drawingItem.Location.Y + drawingItem.Size.Height / 2); this.SVGLine(foregroundRoundPen, drawingItem.ScaleInt(drawingItem.Location.X + drawingItem.Size.Width), parentMidleY, drawingItem.ScaleInt(drawingItem.ChildElements[0].Location.X), parentMidleY); } else if (drawingItem.ChildElements.Count > 1) { DiagramItem firstElement = drawingItem.ChildElements[0]; DiagramItem lastElement = drawingItem.ChildElements[drawingItem.ChildElements.Count - 1]; int verticalLine = drawingItem.ScaleInt(firstElement.BoundingBox.Left); foreach (DiagramItem element in drawingItem.ChildElements) { if (element.InheritFrom == null) { int currentMidleY = drawingItem.ScaleInt(element.Location.Y + element.Size.Height / 2); SVGLine(foregroundRoundPen, verticalLine, currentMidleY, drawingItem.ScaleInt(element.Location.X), currentMidleY); } } int parentMidleY = drawingItem.ScaleInt(drawingItem.Location.Y + drawingItem.Size.Height / 2); int firstMidleY = drawingItem.ScaleInt(firstElement.Location.Y + firstElement.Size.Height / 2); firstMidleY = Math.Min(firstMidleY, parentMidleY); int lastMidleY = drawingItem.ScaleInt(lastElement.Location.Y + lastElement.Size.Height / 2); lastMidleY = Math.Max(lastMidleY, parentMidleY); this.SVGLine(foregroundRoundPen, verticalLine, firstMidleY, verticalLine, lastMidleY); this.SVGLine(foregroundRoundPen, drawingItem.ScaleInt(drawingItem.Location.X + drawingItem.Size.Width), parentMidleY, verticalLine, parentMidleY); } } // Draw the inheritor line if (drawingItem.InheritFrom != null) { string foregroundInheritPen = foregroundPen + ";" + dashed; Point p1 = new Point(drawingItem.ScaleInt(drawingItem.InheritFrom.Location.X - 5), drawingItem.ScaleInt(drawingItem.InheritFrom.Location.Y + drawingItem.InheritFrom.Size.Height + 5)); Point p2 = new Point(drawingItem.ScaleInt(drawingItem.Location.X - 5), drawingItem.ScaleInt(drawingItem.Location.Y - 5)); this.SVGLine(foregroundInheritPen, p1, p2); this.SVGLine(foregroundInheritPen, p2, new Point(drawingItem.ScaleInt(drawingItem.Location.X), drawingItem.ScaleInt(drawingItem.Location.Y))); Point targetPoint = new Point(drawingItem.ScaleInt(drawingItem.InheritFrom.Location.X - 3), drawingItem.ScaleInt(drawingItem.InheritFrom.Location.Y + drawingItem.InheritFrom.Size.Height + 3)); SVGLine(foregroundInheritPen, targetPoint, p1); Point[] pathPoint = new Point[5]; pathPoint[0] = targetPoint; pathPoint[1] = targetPoint; pathPoint[1].X += drawingItem.ScaleInt(2); pathPoint[1].Y += drawingItem.ScaleInt(2); pathPoint[2] = targetPoint; pathPoint[2].X += drawingItem.ScaleInt(3); pathPoint[2].Y -= drawingItem.ScaleInt(3); pathPoint[3] = targetPoint; pathPoint[3].X -= drawingItem.ScaleInt(2); pathPoint[3].Y -= drawingItem.ScaleInt(2); pathPoint[4] = targetPoint; string path = SVGPolygonToDrawCommand(pathPoint); SVGPath(backgroundBrush + ";" + foregroundPen, path); } switch (drawingItem.ItemType) { case DiagramItemType.element: { // Draw the main shape following the min/max occurences string foregroundBoxPen = foregroundPen; if (drawingItem.MinOccurrence == 0) { foregroundBoxPen += ";" + dashed; } if (drawingItem.MaxOccurrence == 1) { SVGRectangle(backgroundBrush + ";" + foregroundBoxPen, scaledElementBox); } else { Rectangle elementBoxShifted = scaledElementBox; elementBoxShifted.Offset(drawingItem.ScalePoint(new Point(3, 3))); this.SVGRectangle(backgroundBrush + ";" + foregroundBoxPen, elementBoxShifted); this.SVGRectangle(backgroundBrush + ";" + foregroundBoxPen, scaledElementBox); } } break; case DiagramItemType.type: { // Draw the main shape following the min/max occurences int bevel = (int)(scaledElementBox.Height * 0.30); Point[] pathPoint = new Point[6]; pathPoint[0] = pathPoint[5] = scaledElementBox.Location; pathPoint[1] = scaledElementBox.Location; pathPoint[1].X = scaledElementBox.Right; pathPoint[2] = scaledElementBox.Location + scaledElementBox.Size; pathPoint[3] = scaledElementBox.Location; pathPoint[3].Y = scaledElementBox.Bottom; pathPoint[4] = pathPoint[3]; pathPoint[0].X += bevel; pathPoint[3].X += bevel; pathPoint[4].Y -= bevel; pathPoint[5].Y += bevel; string path = SVGPolygonToDrawCommand(pathPoint); Point[] pathPointShifted = new Point[6]; Size scaledShiftedBevel = drawingItem.ScaleSize(new Size(3, 3)); for (int i = 0; i < pathPoint.Length; i++) pathPointShifted[i] = pathPoint[i] + scaledShiftedBevel; string pathShifted = SVGPolygonToDrawCommand(pathPointShifted); string foregroundBoxPen = foregroundPen; if (drawingItem.MinOccurrence == 0) { foregroundBoxPen += ";" + dashed; } if (drawingItem.MaxOccurrence == 1) { SVGPath(backgroundBrush + ";" + foregroundBoxPen, path); } else { Rectangle elementBoxShifted = scaledElementBox; elementBoxShifted.Offset(drawingItem.ScalePoint(new Point(3, 3))); this.SVGPath(backgroundBrush + ";" + foregroundBoxPen, pathShifted); this.SVGPath(backgroundBrush + ";" + foregroundBoxPen, path); } } break; case DiagramItemType.group: { // Draw the main shape following the min/max occurences int bevel = (int)(scaledElementBox.Height * 0.30); Point[] pathPoint = new Point[8]; pathPoint[0] = pathPoint[7] = scaledElementBox.Location; pathPoint[1] = scaledElementBox.Location; pathPoint[1].X = scaledElementBox.Right; pathPoint[2] = pathPoint[1]; pathPoint[3] = pathPoint[4] = scaledElementBox.Location + scaledElementBox.Size; pathPoint[5] = scaledElementBox.Location; pathPoint[5].Y = scaledElementBox.Bottom; pathPoint[6] = pathPoint[5]; pathPoint[0].X += bevel; pathPoint[1].X -= bevel; pathPoint[2].Y += bevel; pathPoint[3].Y -= bevel; pathPoint[4].X -= bevel; pathPoint[5].X += bevel; pathPoint[6].Y -= bevel; pathPoint[7].Y += bevel; string path = SVGPolygonToDrawCommand(pathPoint); Point[] pathPointShifted = new Point[8]; Size scaledShiftedBevel = drawingItem.ScaleSize(new Size(3, 3)); for (int i = 0; i < pathPoint.Length; i++) pathPointShifted[i] = pathPoint[i] + scaledShiftedBevel; string pathShifted = this.SVGPolygonToDrawCommand(pathPointShifted); string foregroundBoxPen = foregroundPen; if (drawingItem.MinOccurrence == 0) { foregroundBoxPen += ";" + dashed; } if (drawingItem.MaxOccurrence == 1) { this.SVGPath(backgroundBrush + ";" + foregroundBoxPen, path); } else { this.SVGPath(backgroundBrush + ";" + foregroundBoxPen, pathShifted); this.SVGPath(backgroundBrush + ";" + foregroundBoxPen, path); } // Draw the group type switch (drawingItem.GroupType) { case DiagramItemGroupType.Sequence: { Point p0 = drawingItem.Location + new Size(0, drawingItem.ElementBox.Height / 2); Point p1 = p0 + new Size(3, 0); Point p2 = p1 + new Size(drawingItem.ElementBox.Width - 6, 0); SVGLine(foregroundPen, drawingItem.ScalePoint(p1), drawingItem.ScalePoint(p2)); Point point2 = p0 + new Size(drawingItem.ElementBox.Width / 2, 0); Point point1 = point2 + new Size(-5, 0); Point point3 = point2 + new Size(+5, 0); Size pointSize = new Size(4, 4); Size pointSize2 = new Size(pointSize.Width / 2, pointSize.Height / 2); point1 -= pointSize2; point2 -= pointSize2; point3 -= pointSize2; pointSize = drawingItem.ScaleSize(pointSize); SVGEllipse(foregroundColor, new Rectangle(drawingItem.ScalePoint(point1), pointSize)); SVGEllipse(foregroundColor, new Rectangle(drawingItem.ScalePoint(point2), pointSize)); SVGEllipse(foregroundColor, new Rectangle(drawingItem.ScalePoint(point3), pointSize)); //Point p0 = drawingItem.Location + new Size(0, drawingItem.ElementBox.Height / 2); //Point point0 = p0 + new Size(3, 0); //Point point2 = p0 + new Size(drawingItem.ElementBox.Width / 2, 0); //Point point1 = point2 + new Size(-5, 0); //Point point3 = point2 + new Size(+5, 0); //Point point4 = point0 + new Size(drawingItem.ElementBox.Width - 6, 0); //Pen foregroundBallPen = new Pen(foreground); //foregroundBallPen.EndCap = LineCap.RoundAnchor; ////foregroundBallPen.ScaleTransform(1.0f / drawingItem.diagram.Scale, 1.0f / drawingItem.diagram.Scale); //foregroundBallPen.ScaleTransform(drawingItem.diagram.Scale, drawingItem.diagram.Scale); //SVGDrawLine(result, foregroundBallPen, drawingItem.ScalePoint(point0), drawingItem.ScalePoint(point1)); //SVGDrawLine(result, foregroundBallPen, drawingItem.ScalePoint(point1), drawingItem.ScalePoint(point2)); //SVGDrawLine(result, foregroundBallPen, drawingItem.ScalePoint(point2), drawingItem.ScalePoint(point3)); //foregroundBallPen.EndCap = LineCap.Flat; //SVGDrawLine(result, foregroundBallPen, drawingItem.ScalePoint(point3), drawingItem.ScalePoint(point4)); } break; case DiagramItemGroupType.Choice: { int yMiddle = drawingItem.ElementBox.Y + drawingItem.ElementBox.Height / 2; int yUp = yMiddle - 4; int yDown = yMiddle + 4; int xMiddle = drawingItem.ElementBox.X + drawingItem.ElementBox.Width / 2; int xLeft2 = xMiddle - 4; int xLeft1 = xLeft2 - 4; int xLeft0 = xLeft1 - 4; int xRight0 = xMiddle + 4; int xRight1 = xRight0 + 4; int xRight2 = xRight1 + 4; Point point1 = new Point(xMiddle, yUp); Point point2 = new Point(xMiddle, yMiddle); Point point3 = new Point(xMiddle, yDown); Size pointSize = new Size(4, 4); Size pointSize2 = new Size(pointSize.Width / 2, pointSize.Height / 2); point1 -= pointSize2; point2 -= pointSize2; point3 -= pointSize2; pointSize = drawingItem.ScaleSize(pointSize); SVGLine(foregroundPen, drawingItem.ScalePoint(new Point(xLeft0, yMiddle)), drawingItem.ScalePoint(new Point(xLeft1, yMiddle))); SVGLine(foregroundPen, drawingItem.ScalePoint(new Point(xLeft1, yMiddle)), drawingItem.ScalePoint(new Point(xLeft2, yUp))); SVGLine(foregroundPen, drawingItem.ScalePoint(new Point(xRight0, yUp)), drawingItem.ScalePoint(new Point(xRight1, yUp))); SVGLine(foregroundPen, drawingItem.ScalePoint(new Point(xRight0, yMiddle)), drawingItem.ScalePoint(new Point(xRight2, yMiddle))); SVGLine(foregroundPen, drawingItem.ScalePoint(new Point(xRight0, yDown)), drawingItem.ScalePoint(new Point(xRight1, yDown))); SVGLine(foregroundPen, drawingItem.ScalePoint(new Point(xRight1, yUp)), drawingItem.ScalePoint(new Point(xRight1, yDown))); SVGEllipse(foregroundColor, new Rectangle(drawingItem.ScalePoint(point1), pointSize)); SVGEllipse(foregroundColor, new Rectangle(drawingItem.ScalePoint(point2), pointSize)); SVGEllipse(foregroundColor, new Rectangle(drawingItem.ScalePoint(point3), pointSize)); } break; case DiagramItemGroupType.All: { int yMiddle = drawingItem.ElementBox.Y + drawingItem.ElementBox.Height / 2; int yUp = yMiddle - 4; int yDown = yMiddle + 4; int xMiddle = drawingItem.ElementBox.X + drawingItem.ElementBox.Width / 2; int xLeft2 = xMiddle - 4; int xLeft1 = xLeft2 - 4; int xLeft0 = xLeft1 - 4; int xRight0 = xMiddle + 4; int xRight1 = xRight0 + 4; int xRight2 = xRight1 + 4; Point point1 = new Point(xMiddle, yUp); Point point2 = new Point(xMiddle, yMiddle); Point point3 = new Point(xMiddle, yDown); Size pointSize = new Size(4, 4); Size pointSize2 = new Size(pointSize.Width / 2, pointSize.Height / 2); point1 -= pointSize2; point2 -= pointSize2; point3 -= pointSize2; pointSize = drawingItem.ScaleSize(pointSize); SVGLine(foregroundPen, drawingItem.ScalePoint(new Point(xLeft2, yUp)), drawingItem.ScalePoint(new Point(xLeft1, yUp))); SVGLine(foregroundPen, drawingItem.ScalePoint(new Point(xLeft2, yMiddle)), drawingItem.ScalePoint(new Point(xLeft0, yMiddle))); SVGLine(foregroundPen, drawingItem.ScalePoint(new Point(xLeft2, yDown)), drawingItem.ScalePoint(new Point(xLeft1, yDown))); SVGLine(foregroundPen, drawingItem.ScalePoint(new Point(xLeft1, yUp)), drawingItem.ScalePoint(new Point(xLeft1, yDown))); SVGLine(foregroundPen, drawingItem.ScalePoint(new Point(xRight0, yUp)), drawingItem.ScalePoint(new Point(xRight1, yUp))); SVGLine(foregroundPen, drawingItem.ScalePoint(new Point(xRight0, yMiddle)), drawingItem.ScalePoint(new Point(xRight2, yMiddle))); SVGLine(foregroundPen, drawingItem.ScalePoint(new Point(xRight0, yDown)), drawingItem.ScalePoint(new Point(xRight1, yDown))); SVGLine(foregroundPen, drawingItem.ScalePoint(new Point(xRight1, yUp)), drawingItem.ScalePoint(new Point(xRight1, yDown))); SVGEllipse(foregroundColor, new Rectangle(drawingItem.ScalePoint(point1), pointSize)); SVGEllipse(foregroundColor, new Rectangle(drawingItem.ScalePoint(point2), pointSize)); SVGEllipse(foregroundColor, new Rectangle(drawingItem.ScalePoint(point3), pointSize)); } break; } break; } } float fontScale = 0.8f; // Draw text if (drawingItem.Name.Length > 0) { string style = String.Format( "font-family:{0};font-size:{1}pt;fill:{2};font-weight:bold;text-anchor:middle;dominant-baseline:central", drawingItem.Font.Name, drawingItem.Font.Size * fontScale, foregroundColor); SVGText(drawingItem.Name, style, new Rectangle(scaledElementBox.X, scaledElementBox.Y, scaledElementBox.Width, scaledElementBox.Height)); } // Draw occurences small text if (drawingItem.MaxOccurrence > 1 || drawingItem.MaxOccurrence == -1) { string occurences = String.Format("{0}..", drawingItem.MinOccurrence) + (drawingItem.MaxOccurrence == -1 ? "∞" : string.Format("{0}", drawingItem.MaxOccurrence)); PointF pointOccurences = new PointF(); pointOccurences.X = drawingItem.Diagram.Scale * (drawingItem.Location.X + drawingItem.Size.Width - 10); pointOccurences.Y = drawingItem.Diagram.Scale * (drawingItem.Location.Y + drawingItem.Size.Height + 10); string style = String.Format( "font-family:{0};font-size:{1}pt;fill:{2};text-anchor:end;dominant-baseline:central", drawingItem.SmallFont.Name, drawingItem.SmallFont.Size * fontScale, foregroundColor); SVGText(occurences, style, new Point((int)pointOccurences.X, (int)pointOccurences.Y)); } // Draw type if (drawingItem.IsSimpleContent) { Point currentPoint = scaledElementBox.Location + new Size(2, 2); SVGLine(foregroundPen, currentPoint, currentPoint + new Size(drawingItem.ScaleInt(8), 0)); currentPoint += new Size(0, 2); SVGLine(foregroundPen, currentPoint, currentPoint + new Size(drawingItem.ScaleInt(6), 0)); currentPoint += new Size(0, 2); SVGLine(foregroundPen, currentPoint, currentPoint + new Size(drawingItem.ScaleInt(6), 0)); currentPoint += new Size(0, 2); SVGLine(foregroundPen, currentPoint, currentPoint + new Size(drawingItem.ScaleInt(6), 0)); } // Draw reference arrow if (drawingItem.IsReference) { string arrowPen = String.Format("stroke:{0};stroke-width:{1}", foregroundColor, drawingItem.Diagram.Scale * 2.0f); Point basePoint = new Point(drawingItem.ElementBox.Left + 1, drawingItem.ElementBox.Bottom - 1); Point targetPoint = basePoint + new Size(3, -3); basePoint = drawingItem.ScalePoint(basePoint); targetPoint = drawingItem.ScalePoint(targetPoint); SVGLine(arrowPen, basePoint, targetPoint); Point[] pathPoint = new Point[5]; pathPoint[0] = targetPoint; pathPoint[1] = targetPoint; pathPoint[1].X += drawingItem.ScaleInt(2); pathPoint[1].Y += drawingItem.ScaleInt(2); pathPoint[2] = targetPoint; pathPoint[2].X += drawingItem.ScaleInt(3); pathPoint[2].Y -= drawingItem.ScaleInt(3); pathPoint[3] = targetPoint; pathPoint[3].X -= drawingItem.ScaleInt(2); pathPoint[3].Y -= drawingItem.ScaleInt(2); pathPoint[4] = targetPoint; string path = SVGPolygonToDrawCommand(pathPoint); SVGPath(foregroundBrush, path); } // Draw children expand box if (drawingItem.HasChildElements) { Rectangle scaledChildExpandButtonBox = drawingItem.ScaleRectangle(drawingItem.ChildExpandButtonBox); SVGRectangle(backgroundBrush + ";" + foregroundPen, scaledChildExpandButtonBox); Point middle = new Point(scaledChildExpandButtonBox.Width / 2, scaledChildExpandButtonBox.Height / 2); int borderPadding = Math.Max(2, drawingItem.ScaleInt(2)); Point p1 = scaledChildExpandButtonBox.Location + new Size(borderPadding, middle.Y); Point p2 = new Point(scaledChildExpandButtonBox.Right - borderPadding, p1.Y); SVGLine(foregroundPen, p1, p2); if (!drawingItem.ShowChildElements) { p1 = scaledChildExpandButtonBox.Location + new Size(middle.X, borderPadding); p2 = new Point(p1.X, scaledChildExpandButtonBox.Bottom - borderPadding); SVGLine(foregroundPen, p1, p2); } } } #endregion #region Private Methods private void SVGLine(string pen, Point pt1, Point pt2) { this.SVGLine(pen, pt1.X, pt1.Y, pt2.X, pt2.Y); } private void SVGLine(string pen, int x1, int y1, int x2, int y2) { _writer.WriteLine("", x1, y1, x2, y2, pen); } private void SVGRectangle(string pen, Rectangle rect) { _writer.WriteLine("", rect.X, rect.Y, rect.Width, rect.Height, pen); } private void SVGEllipse(string brush, Rectangle rect) { _writer.WriteLine("", rect.X + rect.Width / 2, rect.Y + rect.Height / 2, rect.Width / 2, rect.Height / 2, brush); } private void SVGPath(string style, string drawCommand) { _writer.WriteLine("", drawCommand, style); } private void SVGText(string text, string style, Point point) { _writer.WriteLine("{3}", point.X, point.Y, style, text); } private void SVGText(string text, string style, Rectangle rect) { _writer.WriteLine("{3}", rect.X + rect.Width / 2.0, rect.Y + rect.Height / 2.0, style, text); } private string SVGPolygonToDrawCommand(Point[] pathPoint) { StringBuilder result = new StringBuilder(); for (int i = 0; i < pathPoint.Length; i++) { result.AppendFormat("{0}{1} {2} ", i == 0 ? 'M' : 'L', pathPoint[i].X, pathPoint[i].Y); } result.Append('Z'); return result.ToString(); } #endregion #region IDisposable Members protected override void Dispose(bool disposing) { _writer = null; } #endregion } } xsddiagram-0.16/XSDDiagrams/Rendering/DiagramPrinter.cs0000644000175000017500000003274611670473664022751 0ustar mathieumathieu// XSDDiagram - A XML Schema Definition file viewer // Copyright (C) 2006-2011 Regis COSNIER // // The content of this file is subject to the terms of either // the GNU Lesser General Public License only (LGPL) or // the Microsoft Public License (Ms-PL). // Please see LICENSE-LGPL.txt and LICENSE-MS-PL.txt files for details. // // Authors: // Regis Cosnier (Initial developer) // Paul Selormey (Refactoring) using System; using System.Windows.Forms; using System.ComponentModel; using System.Drawing; using System.Drawing.Text; using System.Drawing.Printing; using System.Drawing.Drawing2D; namespace XSDDiagram.Rendering { /// /// This manages or controls the output of a displayed diagram to the printer. /// /// /// /// The , required to /// print in a typical the Windows Forms applications, is automatically /// created and maintained by the instance of this class. /// /// public sealed class DiagramPrinter : IDisposable { #region Private Fields private int _currentPage; private Diagram _diagram; private PrintDocument _printDocument; #endregion #region Constructors and Destructor /// /// Initializes a new instance of the class /// with the specified diagram engine. /// /// The diagram engine. public DiagramPrinter() { _printDocument = new PrintDocument(); _printDocument.DocumentName = "XSD Document"; _printDocument.BeginPrint += new PrintEventHandler(OnBeginPrint); _printDocument.PrintPage += new PrintPageEventHandler(OnPrintPage); _printDocument.EndPrint += new PrintEventHandler(OnEndPrint); } ~DiagramPrinter() { this.Dispose(false); } #endregion #region Public Properties /// /// Gets or sets the diagram to be printed. /// public Diagram Diagram { get { return _diagram; } set { _diagram = value; } } /// /// Gets or sets the document name to display (for example, in a print /// status dialog box or printer queue) while printing the diagram document. /// /// /// A containing the document name to /// display while printing the diagram document. The default is /// "GowChart Document". /// /// public string DocumentName { get { if (_printDocument != null) { return _printDocument.DocumentName; } return null; } set { if (_printDocument != null) { _printDocument.DocumentName = value; } } } /// /// Gets or sets page settings that are used as defaults for all pages /// to be printed. /// /// /// A that specifies /// the default page settings for the document. /// /// [Browsable(false)] public PageSettings PageSettings { get { if (_printDocument != null) { return _printDocument.DefaultPageSettings; } return null; } set { if (_printDocument != null) { _printDocument.DefaultPageSettings = value; } } } /// /// Gets or sets the printer that prints the diagram document. /// /// /// A that /// specifies where and how the document is printed. The default is /// a with its /// properties set to their default values. /// /// [Browsable(false)] public PrinterSettings PrinterSettings { get { if (_printDocument != null) { return _printDocument.PrinterSettings; } return null; } set { if (_printDocument != null) { _printDocument.PrinterSettings = value; } } } /// /// Gets or sets the print document object that sends diagram output to /// the printer. /// /// /// A object specifying the print document /// that sends the diagram output to the printer. /// /// /// You will only need to set this property when you have a custom /// implementation, since one is created /// by default, and you can directly customize its properties. /// /// /// If the being set is . /// public PrintDocument Document { get { return _printDocument; } set { if (value == null) { throw new ArgumentNullException("value", "The PrintDocument object cannot be null (or Nothing)."); } if (_printDocument != value) { _printDocument.Dispose(); _printDocument = null; _printDocument = value; _printDocument.BeginPrint += new PrintEventHandler(OnBeginPrint); _printDocument.PrintPage += new PrintPageEventHandler(OnPrintPage); _printDocument.EndPrint += new PrintEventHandler(OnEndPrint); } } } #endregion #region Public Methods /// /// This creates and displays the page setup dialog, /// , which enables users to change /// page-related print settings, including margins and paper /// orientation. /// /// /// The dialog is displayed in the modal state. /// public void PageSetup() { if (_printDocument == null) { return; } PageSetupDialog pageSetup = new PageSetupDialog(); pageSetup.Document = _printDocument; pageSetup.ShowDialog(Form.ActiveForm); } /// /// This prints the currently displayed diagram, with an option to /// display the print dialog, . /// /// /// This indicates whether to display the /// dialog or not. If , the print dialog is /// display to the user to prompt the print operation, and the user /// could cancel the print operation. /// public void Print(bool showDialog, bool isRunningOnMono) { if (_diagram == null) { throw new InvalidOperationException("There is no diagram to print"); } if (showDialog) { PrintDialog printDlg = new PrintDialog(); printDlg.UseEXDialog = !isRunningOnMono; printDlg.Document = _printDocument; if (printDlg.ShowDialog(Form.ActiveForm) == DialogResult.OK) { _printDocument.Print(); } } else { _printDocument.Print(); } } /// /// This creates and displays the print-preview dialog to both preview /// and print the diagram. /// /// /// The dialog is displayed in the modal state. /// public void PrintPreview() { if (_diagram == null) { throw new InvalidOperationException("There is no diagram to print"); } PrintPreviewDialog previewDlg = new PrintPreviewDialog(); Rectangle bounds = Screen.PrimaryScreen.Bounds; previewDlg.Width = (int)(bounds.Width * 2f / 3f); previewDlg.Height = (int)(bounds.Height * 2f / 3f); previewDlg.StartPosition = FormStartPosition.CenterParent; previewDlg.UseAntiAlias = true; previewDlg.Document = _printDocument; previewDlg.ShowDialog(Form.ActiveForm); } #endregion #region Private Print Event Handlers /// /// /// /// /// private void OnBeginPrint(object sender, PrintEventArgs e) { _currentPage = 0; } /// /// /// /// /// private void OnPrintPage(object sender, PrintPageEventArgs e) { Graphics graphics = e.Graphics; SmoothingMode enumSmooth = graphics.SmoothingMode; TextRenderingHint enumHint = graphics.TextRenderingHint; CompositingQuality enumQuality = graphics.CompositingQuality; graphics.SmoothingMode = SmoothingMode.HighQuality; graphics.TextRenderingHint = TextRenderingHint.AntiAlias; graphics.CompositingQuality = CompositingQuality.HighQuality; _diagram.Layout(graphics); Size bbSize = _diagram.BoundingBox.Size + _diagram.Padding + _diagram.Padding; Size totalSize = new Size((int)(bbSize.Width * _diagram.Scale), (int)(bbSize.Height * _diagram.Scale)); int columnNumber = 1 + totalSize.Width / e.MarginBounds.Width; int rowNumber = 1 + totalSize.Height / e.MarginBounds.Height; int pageNumber = columnNumber * rowNumber; int row, column = Math.DivRem(_currentPage, rowNumber, out row); Rectangle clipping = new Rectangle(new Point(column * e.MarginBounds.Width, row * e.MarginBounds.Height), new Size((column + 1) * e.MarginBounds.Width, (row + 1) * e.MarginBounds.Height)); //MONOFIX graphics.Clip = new Region(e.MarginBounds); //Point virtualPoint = this.panelDiagram.VirtualPoint; graphics.TranslateTransform(-(float)(clipping.Left - e.MarginBounds.Left), -(float)(clipping.Top - e.MarginBounds.Top)); DiagramGdiRenderer.Draw(_diagram, graphics, clipping); if (_currentPage < pageNumber - 1) { _currentPage++; e.HasMorePages = true; } graphics.SmoothingMode = enumSmooth; graphics.TextRenderingHint = enumHint; graphics.CompositingQuality = enumQuality; } /// /// /// /// /// private void OnEndPrint(object sender, PrintEventArgs e) { } #endregion #region IDisposable Members /// /// This cleans up any resources being used. /// public void Dispose() { this.Dispose(true); GC.SuppressFinalize(this); } /// /// This cleans up any resources being used. /// /// /// This is if managed resources should be /// disposed; otherwise, . /// private void Dispose(bool disposing) { if (disposing) { if (_printDocument != null) { _printDocument.Dispose(); _printDocument = null; } } _diagram = null; } #endregion } } xsddiagram-0.16/XSDDiagrams/Rendering/DiagramGdiRenderer.cs0000644000175000017500000010040411670473664023503 0ustar mathieumathieu// XSDDiagram - A XML Schema Definition file viewer // Copyright (C) 2006-2011 Regis COSNIER // // The content of this file is subject to the terms of either // the GNU Lesser General Public License only (LGPL) or // the Microsoft Public License (Ms-PL). // Please see LICENSE-LGPL.txt and LICENSE-MS-PL.txt files for details. // // Authors: // Regis Cosnier (Initial developer) // Paul Selormey (Refactoring) using System; using System.Drawing; using System.Drawing.Imaging; using System.Drawing.Drawing2D; namespace XSDDiagram.Rendering { public sealed class DiagramGdiRenderer : DiagramRenderer { #region Private Fields private Graphics _graphics; #endregion #region Constructors and Destructor public DiagramGdiRenderer(Graphics graphics) { if (graphics == null) { throw new ArgumentNullException("graphics", "The graphics object is required."); } _graphics = graphics; } #endregion #region Public Properties public override string Name { get { return "GDI"; } } public Graphics Graphics { get { return _graphics; } } #endregion #region Public Methods public override void BeginItemsRender() { } public override void EndItemsRender() { } public override void Render(Diagram diagram) { this.Render(diagram, null); } public void Render(Diagram diagram, Rectangle? clipRectangle) { this.BeginItemsRender(); Rectangle clipBox = clipRectangle.HasValue ? clipRectangle.Value : Rectangle.Empty; if (!clipBox.IsEmpty) { clipBox.X = (int)((float)clipBox.X / diagram.Scale); clipBox.Y = (int)((float)clipBox.Y / diagram.Scale); clipBox.Width = (int)((float)clipBox.Width / diagram.Scale); clipBox.Height = (int)((float)clipBox.Height / diagram.Scale); foreach (DiagramItem element in diagram.RootElements) { if (element.BoundingBox.IntersectsWith(clipBox)) { this.Render(element, clipBox); } } } else { foreach (DiagramItem element in diagram.RootElements) { this.Render(element); } } this.EndItemsRender(); } public override void Render(DiagramItem item) { Render(item, null); } public void Render(DiagramItem drawingItem, Rectangle? clipRectangle) { //System.Diagnostics.Trace.WriteLine("DiagramElement.Paint\n\tName: " + drawingItem.Name); Brush background = new SolidBrush(Color.White); SolidBrush foreground = new SolidBrush(Color.Black); if (drawingItem.IsDisabled) { background = new HatchBrush(HatchStyle.BackwardDiagonal, Color.Gray, Color.White); foreground = new SolidBrush(Color.Gray); } Pen foregroundPen = new Pen(foreground); float[] dashPattern = new float[] { Math.Max(2f, drawingItem.ScaleInt(5)), Math.Max(1f, drawingItem.ScaleInt(2)) }; //if (drawingItem.IsReference && drawingItem.diagram.ShowBoundingBox) if (drawingItem.Diagram.ShowBoundingBox) { int color = 255 - drawingItem.Depth * 8; _graphics.FillRectangle(new SolidBrush(Color.FromArgb(color, color, color)), drawingItem.ScaleRectangle(drawingItem.BoundingBox)); _graphics.DrawRectangle(foregroundPen, drawingItem.ScaleRectangle(drawingItem.BoundingBox)); } // Draw the children if (drawingItem.ShowChildElements) { if (clipRectangle.HasValue) { foreach (DiagramItem element in drawingItem.ChildElements) { if (element.BoundingBox.IntersectsWith(clipRectangle.Value)) { this.Render(element, clipRectangle); } } } else { foreach (DiagramItem element in drawingItem.ChildElements) { this.Render(element); } } } Rectangle scaledElementBox = drawingItem.ScaleRectangle(drawingItem.ElementBox); // Draw the children lines if (drawingItem.ShowChildElements) { Pen foregroundInheritPen = new Pen(foreground); foregroundInheritPen.StartCap = LineCap.Round; foregroundInheritPen.EndCap = LineCap.Round; if (drawingItem.ChildElements.Count == 1) { int parentMidleY = drawingItem.ScaleInt(drawingItem.Location.Y + drawingItem.Size.Height / 2); _graphics.DrawLine(foregroundInheritPen, drawingItem.ScaleInt(drawingItem.Location.X + drawingItem.Size.Width), parentMidleY, drawingItem.ScaleInt(drawingItem.ChildElements[0].Location.X), parentMidleY); } else if (drawingItem.ChildElements.Count > 1) { DiagramItem firstElement = drawingItem.ChildElements[0]; DiagramItem lastElement = drawingItem.ChildElements[drawingItem.ChildElements.Count - 1]; int verticalLine = drawingItem.ScaleInt(firstElement.BoundingBox.Left); foreach (DiagramItem element in drawingItem.ChildElements) { if (element.InheritFrom == null) { int currentMidleY = drawingItem.ScaleInt(element.Location.Y + element.Size.Height / 2); _graphics.DrawLine(foregroundInheritPen, verticalLine, currentMidleY, drawingItem.ScaleInt(element.Location.X), currentMidleY); } } int parentMidleY = drawingItem.ScaleInt(drawingItem.Location.Y + drawingItem.Size.Height / 2); int firstMidleY = drawingItem.ScaleInt(firstElement.Location.Y + firstElement.Size.Height / 2); firstMidleY = Math.Min(firstMidleY, parentMidleY); int lastMidleY = drawingItem.ScaleInt(lastElement.Location.Y + lastElement.Size.Height / 2); lastMidleY = Math.Max(lastMidleY, parentMidleY); _graphics.DrawLine(foregroundInheritPen, verticalLine, firstMidleY, verticalLine, lastMidleY); _graphics.DrawLine(foregroundInheritPen, drawingItem.ScaleInt(drawingItem.Location.X + drawingItem.Size.Width), parentMidleY, verticalLine, parentMidleY); } } // Draw the inheritor line if (drawingItem.InheritFrom != null) { Pen foregroundInheritPen = new Pen(foreground); foregroundInheritPen.DashStyle = DashStyle.Dash; foregroundInheritPen.DashPattern = dashPattern; Point p1 = new Point(drawingItem.ScaleInt(drawingItem.InheritFrom.Location.X - 5), drawingItem.ScaleInt(drawingItem.InheritFrom.Location.Y + drawingItem.InheritFrom.Size.Height + 5)); Point p2 = new Point(drawingItem.ScaleInt(drawingItem.Location.X - 5), drawingItem.ScaleInt(drawingItem.Location.Y - 5)); _graphics.DrawLine(foregroundInheritPen, p1, p2); _graphics.DrawLine(foregroundInheritPen, p2, new Point(drawingItem.ScaleInt(drawingItem.Location.X), drawingItem.ScaleInt(drawingItem.Location.Y))); Point targetPoint = new Point(drawingItem.ScaleInt(drawingItem.InheritFrom.Location.X), drawingItem.ScaleInt(drawingItem.InheritFrom.Location.Y + drawingItem.InheritFrom.Size.Height)); _graphics.DrawLine(foregroundInheritPen, targetPoint, p1); Point[] pathPoint = new Point[4]; pathPoint[0] = targetPoint; pathPoint[1] = targetPoint; pathPoint[1].Y += drawingItem.ScaleInt(5); pathPoint[2] = targetPoint; pathPoint[2].X -= drawingItem.ScaleInt(5); pathPoint[3] = targetPoint; GraphicsPath path = new GraphicsPath(); path.StartFigure(); path.AddPolygon(pathPoint); path.CloseFigure(); Pen foregroundBoxPen = new Pen(foreground); _graphics.FillPath(background, path); _graphics.DrawPath(foregroundBoxPen, path); } switch (drawingItem.ItemType) { case DiagramItemType.element: { // Draw the main shape following the min/max occurences Pen foregroundBoxPen = new Pen(foreground); if (drawingItem.MinOccurrence == 0) { foregroundBoxPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash; foregroundBoxPen.DashPattern = dashPattern; } if (drawingItem.MaxOccurrence == 1) { _graphics.FillRectangle(background, scaledElementBox); _graphics.DrawRectangle(foregroundBoxPen, scaledElementBox); } else { Rectangle elementBoxShifted = scaledElementBox; elementBoxShifted.Offset(drawingItem.ScalePoint(new Point(3, 3))); _graphics.FillRectangle(background, elementBoxShifted); _graphics.DrawRectangle(foregroundBoxPen, elementBoxShifted); _graphics.FillRectangle(background, scaledElementBox); _graphics.DrawRectangle(foregroundBoxPen, scaledElementBox); } } break; case DiagramItemType.type: { // Draw the main shape following the min/max occurences int bevel = (int)(scaledElementBox.Height * 0.30); Point[] pathPoint = new Point[6]; pathPoint[0] = pathPoint[5] = scaledElementBox.Location; pathPoint[1] = scaledElementBox.Location; pathPoint[1].X = scaledElementBox.Right; pathPoint[2] = scaledElementBox.Location + scaledElementBox.Size; pathPoint[3] = scaledElementBox.Location; pathPoint[3].Y = scaledElementBox.Bottom; pathPoint[4] = pathPoint[3]; pathPoint[0].X += bevel; pathPoint[3].X += bevel; pathPoint[4].Y -= bevel; pathPoint[5].Y += bevel; GraphicsPath path = new GraphicsPath(); path.StartFigure(); path.AddPolygon(pathPoint); path.CloseFigure(); Point[] pathPointShifted = new Point[6]; Size scaledShiftedBevel = drawingItem.ScaleSize(new Size(3, 3)); for (int i = 0; i < pathPoint.Length; i++) pathPointShifted[i] = pathPoint[i] + scaledShiftedBevel; GraphicsPath pathShifted = new GraphicsPath(); pathShifted.StartFigure(); pathShifted.AddPolygon(pathPointShifted); pathShifted.CloseFigure(); Pen foregroundBoxPen = new Pen(foreground); if (drawingItem.MinOccurrence == 0) { foregroundBoxPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash; foregroundBoxPen.DashPattern = dashPattern; } if (drawingItem.MaxOccurrence == 1) { _graphics.FillPath(background, path); _graphics.DrawPath(foregroundBoxPen, path); } else { Rectangle elementBoxShifted = scaledElementBox; elementBoxShifted.Offset(drawingItem.ScalePoint(new Point(3, 3))); _graphics.FillPath(background, pathShifted); _graphics.DrawPath(foregroundBoxPen, pathShifted); _graphics.FillPath(background, path); _graphics.DrawPath(foregroundBoxPen, path); } } break; case DiagramItemType.group: { // Draw the main shape following the min/max occurences int bevel = (int)(scaledElementBox.Height * 0.30); Point[] pathPoint = new Point[8]; pathPoint[0] = pathPoint[7] = scaledElementBox.Location; pathPoint[1] = scaledElementBox.Location; pathPoint[1].X = scaledElementBox.Right; pathPoint[2] = pathPoint[1]; pathPoint[3] = pathPoint[4] = scaledElementBox.Location + scaledElementBox.Size; pathPoint[5] = scaledElementBox.Location; pathPoint[5].Y = scaledElementBox.Bottom; pathPoint[6] = pathPoint[5]; pathPoint[0].X += bevel; pathPoint[1].X -= bevel; pathPoint[2].Y += bevel; pathPoint[3].Y -= bevel; pathPoint[4].X -= bevel; pathPoint[5].X += bevel; pathPoint[6].Y -= bevel; pathPoint[7].Y += bevel; GraphicsPath path = new GraphicsPath(); path.StartFigure(); path.AddPolygon(pathPoint); path.CloseFigure(); Point[] pathPointShifted = new Point[8]; Size scaledShiftedBevel = drawingItem.ScaleSize(new Size(3, 3)); for (int i = 0; i < pathPoint.Length; i++) pathPointShifted[i] = pathPoint[i] + scaledShiftedBevel; GraphicsPath pathShifted = new GraphicsPath(); pathShifted.StartFigure(); pathShifted.AddPolygon(pathPointShifted); pathShifted.CloseFigure(); Pen foregroundBoxPen = new Pen(foreground); if (drawingItem.MinOccurrence == 0) { foregroundBoxPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash; foregroundBoxPen.DashPattern = dashPattern; } if (drawingItem.MaxOccurrence == 1) { _graphics.FillPath(background, path); _graphics.DrawPath(foregroundBoxPen, path); } else { Rectangle elementBoxShifted = scaledElementBox; elementBoxShifted.Offset(drawingItem.ScalePoint(new Point(3, 3))); _graphics.FillPath(background, pathShifted); _graphics.DrawPath(foregroundBoxPen, pathShifted); _graphics.FillPath(background, path); _graphics.DrawPath(foregroundBoxPen, path); } // Draw the group type //Pen foregroundPointPen = new Pen(foreground, 4.0f); switch (drawingItem.GroupType) { case DiagramItemGroupType.Sequence: { Point p0 = drawingItem.Location + new Size(0, drawingItem.ElementBox.Height / 2); Point p1 = p0 + new Size(3, 0); Point p2 = p1 + new Size(drawingItem.ElementBox.Width - 6, 0); _graphics.DrawLine(foregroundPen, drawingItem.ScalePoint(p1), drawingItem.ScalePoint(p2)); Point point2 = p0 + new Size(drawingItem.ElementBox.Width / 2, 0); Point point1 = point2 + new Size(-5, 0); Point point3 = point2 + new Size(+5, 0); Size pointSize = new Size(4, 4); Size pointSize2 = new Size(pointSize.Width / 2, pointSize.Height / 2); point1 -= pointSize2; point2 -= pointSize2; point3 -= pointSize2; pointSize = drawingItem.ScaleSize(pointSize); _graphics.FillEllipse(foreground, new Rectangle(drawingItem.ScalePoint(point1), pointSize)); _graphics.FillEllipse(foreground, new Rectangle(drawingItem.ScalePoint(point2), pointSize)); _graphics.FillEllipse(foreground, new Rectangle(drawingItem.ScalePoint(point3), pointSize)); //Point p0 = drawingItem.Location + new Size(0, drawingItem.ElementBox.Height / 2); //Point point0 = p0 + new Size(3, 0); //Point point2 = p0 + new Size(drawingItem.ElementBox.Width / 2, 0); //Point point1 = point2 + new Size(-5, 0); //Point point3 = point2 + new Size(+5, 0); //Point point4 = point0 + new Size(drawingItem.ElementBox.Width - 6, 0); //Pen foregroundBallPen = new Pen(foreground); //foregroundBallPen.EndCap = LineCap.RoundAnchor; ////foregroundBallPen.ScaleTransform(1.0f / drawingItem.diagram.Scale, 1.0f / drawingItem.diagram.Scale); //foregroundBallPen.ScaleTransform(drawingItem.diagram.Scale, drawingItem.diagram.Scale); //g.DrawLine(foregroundBallPen, drawingItem.ScalePoint(point0), drawingItem.ScalePoint(point1)); //g.DrawLine(foregroundBallPen, drawingItem.ScalePoint(point1), drawingItem.ScalePoint(point2)); //g.DrawLine(foregroundBallPen, drawingItem.ScalePoint(point2), drawingItem.ScalePoint(point3)); //foregroundBallPen.EndCap = LineCap.Flat; //g.DrawLine(foregroundBallPen, drawingItem.ScalePoint(point3), drawingItem.ScalePoint(point4)); } break; case DiagramItemGroupType.Choice: { int yMiddle = drawingItem.ElementBox.Y + drawingItem.ElementBox.Height / 2; int yUp = yMiddle - 4; int yDown = yMiddle + 4; int xMiddle = drawingItem.ElementBox.X + drawingItem.ElementBox.Width / 2; int xLeft2 = xMiddle - 4; int xLeft1 = xLeft2 - 4; int xLeft0 = xLeft1 - 4; int xRight0 = xMiddle + 4; int xRight1 = xRight0 + 4; int xRight2 = xRight1 + 4; Point point1 = new Point(xMiddle, yUp); Point point2 = new Point(xMiddle, yMiddle); Point point3 = new Point(xMiddle, yDown); Size pointSize = new Size(4, 4); Size pointSize2 = new Size(pointSize.Width / 2, pointSize.Height / 2); point1 -= pointSize2; point2 -= pointSize2; point3 -= pointSize2; pointSize = drawingItem.ScaleSize(pointSize); _graphics.DrawLine(foregroundPen, drawingItem.ScalePoint(new Point(xLeft0, yMiddle)), drawingItem.ScalePoint(new Point(xLeft1, yMiddle))); _graphics.DrawLine(foregroundPen, drawingItem.ScalePoint(new Point(xLeft1, yMiddle)), drawingItem.ScalePoint(new Point(xLeft2, yUp))); _graphics.DrawLine(foregroundPen, drawingItem.ScalePoint(new Point(xRight0, yUp)), drawingItem.ScalePoint(new Point(xRight1, yUp))); _graphics.DrawLine(foregroundPen, drawingItem.ScalePoint(new Point(xRight0, yMiddle)), drawingItem.ScalePoint(new Point(xRight2, yMiddle))); _graphics.DrawLine(foregroundPen, drawingItem.ScalePoint(new Point(xRight0, yDown)), drawingItem.ScalePoint(new Point(xRight1, yDown))); _graphics.DrawLine(foregroundPen, drawingItem.ScalePoint(new Point(xRight1, yUp)), drawingItem.ScalePoint(new Point(xRight1, yDown))); _graphics.FillEllipse(foreground, new Rectangle(drawingItem.ScalePoint(point1), pointSize)); _graphics.FillEllipse(foreground, new Rectangle(drawingItem.ScalePoint(point2), pointSize)); _graphics.FillEllipse(foreground, new Rectangle(drawingItem.ScalePoint(point3), pointSize)); } break; case DiagramItemGroupType.All: { int yMiddle = drawingItem.ElementBox.Y + drawingItem.ElementBox.Height / 2; int yUp = yMiddle - 4; int yDown = yMiddle + 4; int xMiddle = drawingItem.ElementBox.X + drawingItem.ElementBox.Width / 2; int xLeft2 = xMiddle - 4; int xLeft1 = xLeft2 - 4; int xLeft0 = xLeft1 - 4; int xRight0 = xMiddle + 4; int xRight1 = xRight0 + 4; int xRight2 = xRight1 + 4; Point point1 = new Point(xMiddle, yUp); Point point2 = new Point(xMiddle, yMiddle); Point point3 = new Point(xMiddle, yDown); Size pointSize = new Size(4, 4); Size pointSize2 = new Size(pointSize.Width / 2, pointSize.Height / 2); point1 -= pointSize2; point2 -= pointSize2; point3 -= pointSize2; pointSize = drawingItem.ScaleSize(pointSize); _graphics.DrawLine(foregroundPen, drawingItem.ScalePoint(new Point(xLeft2, yUp)), drawingItem.ScalePoint(new Point(xLeft1, yUp))); _graphics.DrawLine(foregroundPen, drawingItem.ScalePoint(new Point(xLeft2, yMiddle)), drawingItem.ScalePoint(new Point(xLeft0, yMiddle))); _graphics.DrawLine(foregroundPen, drawingItem.ScalePoint(new Point(xLeft2, yDown)), drawingItem.ScalePoint(new Point(xLeft1, yDown))); _graphics.DrawLine(foregroundPen, drawingItem.ScalePoint(new Point(xLeft1, yUp)), drawingItem.ScalePoint(new Point(xLeft1, yDown))); _graphics.DrawLine(foregroundPen, drawingItem.ScalePoint(new Point(xRight0, yUp)), drawingItem.ScalePoint(new Point(xRight1, yUp))); _graphics.DrawLine(foregroundPen, drawingItem.ScalePoint(new Point(xRight0, yMiddle)), drawingItem.ScalePoint(new Point(xRight2, yMiddle))); _graphics.DrawLine(foregroundPen, drawingItem.ScalePoint(new Point(xRight0, yDown)), drawingItem.ScalePoint(new Point(xRight1, yDown))); _graphics.DrawLine(foregroundPen, drawingItem.ScalePoint(new Point(xRight1, yUp)), drawingItem.ScalePoint(new Point(xRight1, yDown))); _graphics.FillEllipse(foreground, new Rectangle(drawingItem.ScalePoint(point1), pointSize)); _graphics.FillEllipse(foreground, new Rectangle(drawingItem.ScalePoint(point2), pointSize)); _graphics.FillEllipse(foreground, new Rectangle(drawingItem.ScalePoint(point3), pointSize)); } break; } break; } } // Draw text if (drawingItem.Name.Length > 0) { StringFormat stringFormatText = new StringFormat(); stringFormatText.Alignment = StringAlignment.Center; stringFormatText.LineAlignment = StringAlignment.Center; stringFormatText.FormatFlags |= StringFormatFlags.NoClip; //MONOFIX _graphics.DrawString(drawingItem.Name, drawingItem.Font, foreground, new RectangleF(scaledElementBox.X, scaledElementBox.Y, scaledElementBox.Width, scaledElementBox.Height), stringFormatText); } // Draw occurences small text if (drawingItem.MaxOccurrence > 1 || drawingItem.MaxOccurrence == -1) { StringFormat stringFormatOccurences = new StringFormat(); stringFormatOccurences.Alignment = StringAlignment.Far; stringFormatOccurences.LineAlignment = StringAlignment.Center; stringFormatOccurences.FormatFlags |= StringFormatFlags.NoClip; //MONOFIX //string occurences = string.Format("{0}..", drawingItem.MinOccurrence) + (drawingItem.MaxOccurrence == -1 ? "\u0066∞" : string.Format("{0}", drawingItem.MaxOccurrence)); string occurences = string.Format("{0}..", drawingItem.MinOccurrence) + (drawingItem.MaxOccurrence == -1 ? "\u221E" : string.Format("{0}", drawingItem.MaxOccurrence)); PointF pointOccurences = new PointF(); pointOccurences.X = drawingItem.Diagram.Scale * (drawingItem.Location.X + drawingItem.Size.Width - 10); pointOccurences.Y = drawingItem.Diagram.Scale * (drawingItem.Location.Y + drawingItem.Size.Height + 10); _graphics.DrawString(occurences, drawingItem.SmallFont, foreground, pointOccurences, stringFormatOccurences); } // Draw type if (drawingItem.IsSimpleContent) { Point currentPoint = scaledElementBox.Location + new Size(2, 2); _graphics.DrawLine(foregroundPen, currentPoint, currentPoint + new Size(drawingItem.ScaleInt(8), 0)); currentPoint += new Size(0, 2); _graphics.DrawLine(foregroundPen, currentPoint, currentPoint + new Size(drawingItem.ScaleInt(6), 0)); currentPoint += new Size(0, 2); _graphics.DrawLine(foregroundPen, currentPoint, currentPoint + new Size(drawingItem.ScaleInt(6), 0)); currentPoint += new Size(0, 2); _graphics.DrawLine(foregroundPen, currentPoint, currentPoint + new Size(drawingItem.ScaleInt(6), 0)); } // Draw reference arrow if (drawingItem.IsReference) { Pen arrowPen = new Pen(foreground, drawingItem.Diagram.Scale * 2.0f); //arrowPen.EndCap = LineCap.ArrowAnchor; //Point basePoint = new Point(drawingItem.ElementBox.Left + 2, drawingItem.ElementBox.Bottom - 2); //g.DrawLine(arrowPen, drawingItem.ScalePoint(basePoint), drawingItem.ScalePoint(basePoint + new Size(4, -4))); Point basePoint = new Point(drawingItem.ElementBox.Left + 1, drawingItem.ElementBox.Bottom - 1); Point targetPoint = basePoint + new Size(3, -3); basePoint = drawingItem.ScalePoint(basePoint); targetPoint = drawingItem.ScalePoint(targetPoint); _graphics.DrawLine(arrowPen, basePoint, targetPoint); Point[] pathPoint = new Point[5]; pathPoint[0] = targetPoint; pathPoint[1] = targetPoint; pathPoint[1].X += drawingItem.ScaleInt(2); pathPoint[1].Y += drawingItem.ScaleInt(2); pathPoint[2] = targetPoint; pathPoint[2].X += drawingItem.ScaleInt(3); pathPoint[2].Y -= drawingItem.ScaleInt(3); pathPoint[3] = targetPoint; pathPoint[3].X -= drawingItem.ScaleInt(2); pathPoint[3].Y -= drawingItem.ScaleInt(2); pathPoint[4] = targetPoint; GraphicsPath path = new GraphicsPath(); path.StartFigure(); path.AddPolygon(pathPoint); path.CloseFigure(); _graphics.FillPath(foreground, path); } // Draw children expand box if (drawingItem.HasChildElements) { Rectangle scaledChildExpandButtonBox = drawingItem.ScaleRectangle(drawingItem.ChildExpandButtonBox); _graphics.FillRectangle(background, scaledChildExpandButtonBox); _graphics.DrawRectangle(foregroundPen, scaledChildExpandButtonBox); Point middle = new Point(scaledChildExpandButtonBox.Width / 2, scaledChildExpandButtonBox.Height / 2); int borderPadding = Math.Max(2, drawingItem.ScaleInt(2)); Point p1 = scaledChildExpandButtonBox.Location + new Size(borderPadding, middle.Y); Point p2 = new Point(scaledChildExpandButtonBox.Right - borderPadding, p1.Y); _graphics.DrawLine(foregroundPen, p1, p2); if (!drawingItem.ShowChildElements) { p1 = scaledChildExpandButtonBox.Location + new Size(middle.X, borderPadding); p2 = new Point(p1.X, scaledChildExpandButtonBox.Bottom - borderPadding); _graphics.DrawLine(foregroundPen, p1, p2); } } } #endregion #region Public Static Methods public static void Draw(Diagram diagram, Graphics g) { Draw(diagram, g, null); } public static void Draw(Diagram diagram, Graphics g, Rectangle? clipRectangle) { using (DiagramGdiRenderer renderer = new DiagramGdiRenderer(g)) { renderer.Render(diagram, clipRectangle); } } #endregion #region IDisposable Members protected override void Dispose(bool disposing) { _graphics = null; } #endregion } } xsddiagram-0.16/XSDDiagrams/XSDDiagrams2008.csproj0000644000175000017500000000751211673403176021422 0ustar mathieumathieu Debug AnyCPU 9.0.30729 2.0 {6D3DACE7-D51B-4259-883A-6899BF4D52E2} Library Properties XSDDiagrams XSDDiagrams v2.0 512 true full false bin\Debug\ DEBUG;TRACE prompt 4 pdbonly true bin\Release\ TRACE prompt 4 true bin\x86\Debug\ DEBUG;TRACE full x86 prompt 4 false bin\x86\Release\ TRACE true pdbonly x86 prompt 4 xsddiagram-0.16/XSDDiagrams/Properties/0000755000175000017500000000000012077772656017722 5ustar mathieumathieuxsddiagram-0.16/XSDDiagrams/Properties/AssemblyInfo.cs0000644000175000017500000000272312077772656022650 0ustar mathieumathieuusing System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("XSD Diagrams core library")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("XSD Diagrams")] [assembly: AssemblyCopyright("Copyright © 2011-2013 Regis Cosnier, All Rights Reserved.")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // Setting ComVisible to false makes the types in this assembly not visible // to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type. [assembly: ComVisible(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("94cad763-d1e2-4c14-b46d-3056febd7c29")] // Version information for an assembly consists of the following four values: // // Major Version // Minor Version // Build Number // Revision // // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("0.16.0.0")] [assembly: AssemblyFileVersion("0.16.0.0")] xsddiagram-0.16/XSDDiagrams/Parsing/0000755000175000017500000000000012077772656017171 5ustar mathieumathieuxsddiagram-0.16/XSDDiagrams/Parsing/Schema.cs0000644000175000017500000007147612077772656020737 0ustar mathieumathieu// XSDDiagram - A XML Schema Definition file viewer // Copyright (C) 2006-2011 Regis COSNIER // // The content of this file is subject to the terms of either // the GNU Lesser General Public License only (LGPL) or // the Microsoft Public License (Ms-PL). // Please see LICENSE-LGPL.txt and LICENSE-MS-PL.txt files for details. // // Authors: // Regis Cosnier (Initial developer) // Paul Selormey (Refactoring) using System; using System.Collections.Generic; using System.IO; using System.Net; using System.Xml.Serialization; using System.Text.RegularExpressions; namespace XSDDiagram { public class Schema { private static XmlSerializer schemaSerializer = new XmlSerializer(typeof(XMLSchema.schema)); private List elements = new List(); private Dictionary hashtableElementsByName = new Dictionary(StringComparer.OrdinalIgnoreCase); private Dictionary hashtableAttributesByName = new Dictionary(StringComparer.OrdinalIgnoreCase); private XSDObject firstElement = null; private List loadError = new List(); private List listOfXsdFilename = new List(); public Schema() { this.hashtableElementsByName[""] = null; this.hashtableAttributesByName[""] = null; schemaSerializer.UnreferencedObject += new UnreferencedObjectEventHandler(schemaSerializer_UnreferencedObject); schemaSerializer.UnknownNode += new XmlNodeEventHandler(schemaSerializer_UnknownNode); schemaSerializer.UnknownElement += new XmlElementEventHandler(schemaSerializer_UnknownElement); schemaSerializer.UnknownAttribute += new XmlAttributeEventHandler(schemaSerializer_UnknownAttribute); //Trust all certificates System.Net.ServicePointManager.ServerCertificateValidationCallback = ((sender, certificate, chain, sslPolicyErrors) => true); } public IList Elements { get { return elements; } } public IDictionary ElementsByName { get { return hashtableElementsByName; } } public IDictionary AttributesByName { get { return hashtableAttributesByName; } } public XSDObject FirstElement { get { return firstElement; } set { firstElement = value; } } public IList LoadError { get { return loadError; } } public IList XsdFilenames { get { return listOfXsdFilename; } } public delegate bool RequestCredentialEventHandler(string url, string realm, int attemptCount, out string username, out string password); public event RequestCredentialEventHandler RequestCredential; public void LoadSchema(string fileName) { this.firstElement = null; this.elements.Clear(); this.hashtableElementsByName.Clear(); this.hashtableElementsByName[""] = null; this.hashtableAttributesByName.Clear(); this.hashtableAttributesByName[""] = null; this.loadError.Clear(); this.listOfXsdFilename.Clear(); string url = fileName.Trim(), baseUrl = ""; if (url.IndexOf("http://") == 0 || url.IndexOf("https://") == 0) { string basePath = Path.GetTempPath(), lf, bu; if (LoadSchemaFromUrl(basePath, url, out lf, out bu)) { fileName = lf; baseUrl = bu; } } ImportSchema(fileName, baseUrl); } private void ImportSchema(string fileName, string baseUrl) { System.Diagnostics.Trace.WriteLine("ImportSchema: " + fileName); fileName = Path.GetFullPath(fileName); // Check if the file is already loaded to avoid the cycle if (this.listOfXsdFilename.Contains(fileName)) return; FileStream fileStream = null; try { fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); this.loadError.Clear(); XMLSchema.schema schemaDOM = (XMLSchema.schema)schemaSerializer.Deserialize(fileStream); this.listOfXsdFilename.Add(fileName); ParseSchema(fileName, baseUrl, schemaDOM); } catch (IOException ex) { this.loadError.Add(ex.Message); } catch (NotSupportedException ex) { this.loadError.Add(ex.Message + " (" + fileName + ")"); } catch (InvalidOperationException ex) { this.loadError.Add(ex.Message + "\r\n" + ex.InnerException.Message); } finally { if (fileStream != null) fileStream.Close(); } } private void ParseSchema(string fileName, string baseUrl, XMLSchema.schema schemaDOM) { string basePath = Path.GetDirectoryName(fileName); if (schemaDOM.Items != null) { foreach (XMLSchema.openAttrs openAttrs in schemaDOM.Items) { string loadedFileName = ""; string schemaLocation = ""; if (openAttrs is XMLSchema.include) { XMLSchema.include include = openAttrs as XMLSchema.include; if (include.schemaLocation != null) schemaLocation = include.schemaLocation; } else if (openAttrs is XMLSchema.import) { XMLSchema.import import = openAttrs as XMLSchema.import; if (import.schemaLocation != null) schemaLocation = import.schemaLocation; } if (!string.IsNullOrEmpty(schemaLocation)) { loadedFileName = basePath + Path.DirectorySeparatorChar + schemaLocation.Replace('/', Path.DirectorySeparatorChar); string url = schemaLocation.Trim(); if (url.IndexOf("http://") == 0 || url.IndexOf("https://") == 0) { string lf, bu; if (LoadSchemaFromUrl(basePath, url, out lf, out bu)) { loadedFileName = lf; baseUrl = bu; // The baseUrl change for this file } } else if (!File.Exists(loadedFileName)) { // The relative file does not exist, so try to download it from the web with the baseUrl url = baseUrl + "/" + schemaLocation; string lf, bu; if (LoadSchemaFromUrl(basePath, url, out lf, out bu)) { loadedFileName = lf; baseUrl = bu; // The baseUrl change for this file } } } if (!string.IsNullOrEmpty(loadedFileName)) ImportSchema(loadedFileName, baseUrl); } } string nameSpace = schemaDOM.targetNamespace; if (schemaDOM.Items1 != null) { foreach (XMLSchema.openAttrs openAttrs in schemaDOM.Items1) { if (openAttrs is XMLSchema.element) { XMLSchema.element element = openAttrs as XMLSchema.element; XSDObject xsdObject = new XSDObject(fileName, element.name, nameSpace, "element", element); this.hashtableElementsByName[xsdObject.FullName] = xsdObject; if (this.firstElement == null) this.firstElement = xsdObject; elements.Add(xsdObject); } else if (openAttrs is XMLSchema.group) { XMLSchema.group group = openAttrs as XMLSchema.group; XSDObject xsdObject = new XSDObject(fileName, group.name, nameSpace, "group", group); this.hashtableElementsByName[xsdObject.FullName] = xsdObject; elements.Add(xsdObject); } else if (openAttrs is XMLSchema.simpleType) { XMLSchema.simpleType simpleType = openAttrs as XMLSchema.simpleType; XSDObject xsdObject = new XSDObject(fileName, simpleType.name, nameSpace, "simpleType", simpleType); this.hashtableElementsByName[xsdObject.FullName] = xsdObject; elements.Add(xsdObject); } else if (openAttrs is XMLSchema.complexType) { XMLSchema.complexType complexType = openAttrs as XMLSchema.complexType; XSDObject xsdObject = new XSDObject(fileName, complexType.name, nameSpace, "complexType", complexType); this.hashtableElementsByName[xsdObject.FullName] = xsdObject; elements.Add(xsdObject); } else if (openAttrs is XMLSchema.attribute) { XMLSchema.attribute attribute = openAttrs as XMLSchema.attribute; XSDAttribute xsdAttribute = new XSDAttribute(fileName, attribute.name, nameSpace, "attribute", attribute.@ref != null, attribute.@default, attribute.use.ToString(), attribute); this.hashtableAttributesByName[xsdAttribute.FullName] = xsdAttribute; } else if (openAttrs is XMLSchema.attributeGroup) { XMLSchema.attributeGroup attributeGroup = openAttrs as XMLSchema.attributeGroup; XSDAttributeGroup xsdAttributeGroup = new XSDAttributeGroup(fileName, attributeGroup.name, nameSpace, "attributeGroup", attributeGroup is XMLSchema.attributeGroupRef, attributeGroup); this.hashtableAttributesByName[xsdAttributeGroup.FullName] = xsdAttributeGroup; } } } } private bool LoadSchemaFromUrl(string basePath, string url, out string loadedFilename, out string baseUrl) { loadedFilename = null; baseUrl = ""; Uri uri = new Uri(url); if (uri.Segments.Length > 0) { string fileNameToImport = uri.Segments[uri.Segments.Length - 1]; int pos = url.LastIndexOf("/"); if (pos != -1) { baseUrl = url.Substring(0, pos); } string loadedFileName = Path.Combine(basePath, fileNameToImport); if (!File.Exists(loadedFileName)) { WebClient webClient = new WebClient(); bool tryAgain = false; int attemptCount = 0; do { try { //webClient.DownloadFile(uri, loadedFileName); tryAgain = false; string importedXsdFile = webClient.DownloadString(uri); string importedXsdFileWithoutDTD = new Regex(@"]*>", RegexOptions.Singleline | RegexOptions.IgnoreCase).Replace(importedXsdFile, String.Empty); using (StreamWriter outfile = new StreamWriter(loadedFileName)) { outfile.Write(importedXsdFileWithoutDTD); } } catch (WebException ex) { if (ex.Response is HttpWebResponse) { HttpWebResponse response = ex.Response as HttpWebResponse; if (response != null && RequestCredential != null && (response.StatusCode == HttpStatusCode.Unauthorized || response.StatusCode == HttpStatusCode.Forbidden)) { string username = "", password = ""; if (RequestCredential(url, "", ++attemptCount, out username, out password)) { webClient.Credentials = new System.Net.NetworkCredential(username, password); tryAgain = true; } } } if (!tryAgain) { this.loadError.Add("Cannot load the dependency: " + uri.ToString() + ", error: " + ex.ToString()); loadedFileName = null; } } catch (Exception ex) { this.loadError.Add("Cannot load the dependency: " + uri.ToString() + ", error: " + ex.ToString()); loadedFileName = null; } } while (tryAgain); } loadedFilename = loadedFileName; return true; } return false; } //private void ParseSchema(string fileName, XMLSchema.schema schemaDOM) //{ // string basePath = Path.GetDirectoryName(fileName); // if (schemaDOM.Items != null) // { // foreach (XMLSchema.openAttrs openAttrs in schemaDOM.Items) // { // string loadedFileName = ""; // string schemaLocation = ""; // if (openAttrs is XMLSchema.include) // { // XMLSchema.include include = openAttrs as XMLSchema.include; // if (include.schemaLocation != null) // schemaLocation = include.schemaLocation; // } // else if (openAttrs is XMLSchema.import) // { // XMLSchema.import import = openAttrs as XMLSchema.import; // if (import.schemaLocation != null) // schemaLocation = import.schemaLocation; // } // if (!string.IsNullOrEmpty(schemaLocation)) // { // loadedFileName = basePath + Path.DirectorySeparatorChar + schemaLocation.Replace('/', Path.DirectorySeparatorChar); // string url = schemaLocation.Trim(); // if (url.IndexOf("http://") == 0 || url.IndexOf("https://") == 0) // { // Uri uri = new Uri(url); // if (uri.Segments.Length > 0) // { // string fileNameToImport = uri.Segments[uri.Segments.Length - 1]; // loadedFileName = basePath + Path.DirectorySeparatorChar + fileNameToImport; // if (!File.Exists(loadedFileName)) // { // WebClient webClient = new WebClient(); // bool tryAgain = false; // int attemptCount = 0; // do // { // try // { // //webClient.DownloadFile(uri, loadedFileName); // tryAgain = false; // string importedXsdFile = webClient.DownloadString(uri); // string importedXsdFileWithoutDTD = new Regex(@"]*>", RegexOptions.Singleline | RegexOptions.IgnoreCase).Replace(importedXsdFile, String.Empty); // using (StreamWriter outfile = new StreamWriter(loadedFileName)) // { // outfile.Write(importedXsdFileWithoutDTD); // } // } // catch (WebException ex) // { // if (ex.Response is HttpWebResponse) // { // HttpWebResponse response = ex.Response as HttpWebResponse; // if (response != null && RequestCredential != null && (response.StatusCode == HttpStatusCode.Unauthorized || response.StatusCode == HttpStatusCode.Forbidden)) // { // string username = "", password = ""; // if (RequestCredential(url, "", ++attemptCount, out username, out password)) // { // webClient.Credentials = new System.Net.NetworkCredential(username, password); // tryAgain = true; // } // } // } // if (!tryAgain) // { // this.loadError.Add("Cannot load the dependency: " + uri.ToString() + ", error: " + ex.ToString()); // loadedFileName = null; // } // } // catch (Exception ex) // { // this.loadError.Add("Cannot load the dependency: " + uri.ToString() + ", error: " + ex.ToString()); // loadedFileName = null; // } // } // while (tryAgain); // } // } // } // } // if (!string.IsNullOrEmpty(loadedFileName)) // ImportSchema(loadedFileName); // } // } // string nameSpace = schemaDOM.targetNamespace; // if (schemaDOM.Items1 != null) // { // foreach (XMLSchema.openAttrs openAttrs in schemaDOM.Items1) // { // if (openAttrs is XMLSchema.element) // { // XMLSchema.element element = openAttrs as XMLSchema.element; // XSDObject xsdObject = new XSDObject(fileName, element.name, nameSpace, "element", element); // this.hashtableElementsByName[xsdObject.FullName] = xsdObject; // if (this.firstElement == null) // this.firstElement = xsdObject; // elements.Add(xsdObject); // } // else if (openAttrs is XMLSchema.group) // { // XMLSchema.group group = openAttrs as XMLSchema.group; // XSDObject xsdObject = new XSDObject(fileName, group.name, nameSpace, "group", group); // this.hashtableElementsByName[xsdObject.FullName] = xsdObject; // elements.Add(xsdObject); // } // else if (openAttrs is XMLSchema.simpleType) // { // XMLSchema.simpleType simpleType = openAttrs as XMLSchema.simpleType; // XSDObject xsdObject = new XSDObject(fileName, simpleType.name, nameSpace, "simpleType", simpleType); // this.hashtableElementsByName[xsdObject.FullName] = xsdObject; // elements.Add(xsdObject); // } // else if (openAttrs is XMLSchema.complexType) // { // XMLSchema.complexType complexType = openAttrs as XMLSchema.complexType; // XSDObject xsdObject = new XSDObject(fileName, complexType.name, nameSpace, "complexType", complexType); // this.hashtableElementsByName[xsdObject.FullName] = xsdObject; // elements.Add(xsdObject); // } // else if (openAttrs is XMLSchema.attribute) // { // XMLSchema.attribute attribute = openAttrs as XMLSchema.attribute; // XSDAttribute xsdAttribute = new XSDAttribute(fileName, attribute.name, nameSpace, "attribute", attribute.@ref != null, attribute.@default, attribute.use.ToString(), attribute); // this.hashtableAttributesByName[xsdAttribute.FullName] = xsdAttribute; // } // else if (openAttrs is XMLSchema.attributeGroup) // { // XMLSchema.attributeGroup attributeGroup = openAttrs as XMLSchema.attributeGroup; // XSDAttributeGroup xsdAttributeGroup = new XSDAttributeGroup(fileName, attributeGroup.name, nameSpace, "attributeGroup", attributeGroup is XMLSchema.attributeGroupRef, attributeGroup); // this.hashtableAttributesByName[xsdAttributeGroup.FullName] = xsdAttributeGroup; // } // } // } //} void schemaSerializer_UnknownAttribute(object sender, XmlAttributeEventArgs e) { this.loadError.Add("Unkonwn attribute (" + e.LineNumber + ", " + e.LinePosition + "): " + e.Attr.Name); } void schemaSerializer_UnknownElement(object sender, XmlElementEventArgs e) { this.loadError.Add("Unkonwn element (" + e.LineNumber + ", " + e.LinePosition + "): " + e.Element.Name); } void schemaSerializer_UnknownNode(object sender, XmlNodeEventArgs e) { this.loadError.Add("Unkonwn node (" + e.LineNumber + ", " + e.LinePosition + "): " + e.Name); } void schemaSerializer_UnreferencedObject(object sender, UnreferencedObjectEventArgs e) { this.loadError.Add("Unreferenced object: " + e.UnreferencedId); } } public class XSDObject { private string filename = ""; private string name = ""; private string nameSpace = ""; private string type = ""; private string fullNameType = ""; private XMLSchema.openAttrs tag = null; public string Filename { get { return this.filename; } set { this.filename = value; } } public string Name { get { return this.name; } set { this.name = value; } } public string NameSpace { get { return this.nameSpace; } set { this.nameSpace = value; } } public string Type { get { return this.type; } set { this.type = value; } } public XMLSchema.openAttrs Tag { get { return this.tag; } set { this.tag = value; } } public string FullName { get { return this.nameSpace + ':' + this.fullNameType + ':' + this.name; } } public XSDObject(string filename, string name, string nameSpace, string type, XMLSchema.openAttrs tag) { this.filename = filename; this.name = name; this.nameSpace = (nameSpace == null ? "" : nameSpace); this.type = type; if (this.type == "simpleType" || this.type == "complexType") this.fullNameType = "type"; else this.fullNameType = this.type; this.tag = tag; } public override string ToString() { return this.type + ": " + this.name + " (" + this.nameSpace + ")"; } } public class XSDAttribute { private string filename = ""; private string name = ""; private string nameSpace = ""; private string type = ""; private bool isReference = false; private string defaultValue = ""; private string use = ""; private XMLSchema.attribute tag = null; public string Filename { get { return this.filename; } set { this.filename = value; } } public string Name { get { return this.name; } set { this.name = value; } } public string NameSpace { get { return this.nameSpace; } set { this.nameSpace = value; } } public string Type { get { return this.type; } set { this.type = value; } } public bool IsReference { get { return this.isReference; } set { this.isReference = value; } } public string DefaultValue { get { return this.defaultValue; } set { this.defaultValue = value; } } public string Use { get { return this.use; } set { this.use = value; } } public XMLSchema.attribute Tag { get { return this.tag; } set { this.tag = value; } } public string FullName { get { return this.nameSpace + ":attribute:" + this.name; } } public XSDAttribute(string filename, string name, string nameSpace, string type, bool isReference, string defaultValue, string use, XMLSchema.attribute attribute) { this.filename = filename; this.name = name; this.nameSpace = (nameSpace == null ? "" : nameSpace); this.type = type; this.isReference = isReference; this.defaultValue = defaultValue; this.use = use; this.tag = attribute; } public override string ToString() { return this.name + " (" + this.nameSpace + ")"; } } public class XSDAttributeGroup { private string filename = ""; private string name = ""; private string nameSpace = ""; private string type = ""; private bool isReference = false; private XMLSchema.attributeGroup tag = null; public string Filename { get { return this.filename; } set { this.filename = value; } } public string Name { get { return this.name; } set { this.name = value; } } public string NameSpace { get { return this.nameSpace; } set { this.nameSpace = value; } } public string Type { get { return this.type; } set { this.type = value; } } public bool IsReference { get { return this.isReference; } set { this.isReference = value; } } public XMLSchema.attributeGroup Tag { get { return this.tag; } set { this.tag = value; } } public string FullName { get { return this.nameSpace + ":attributeGroup:" + this.name; } } public XSDAttributeGroup(string filename, string name, string nameSpace, string type, bool isReference, XMLSchema.attributeGroup attributeGroup) { this.filename = filename; this.name = name; this.nameSpace = (nameSpace == null ? "" : nameSpace); this.type = type; this.isReference = isReference; this.tag = attributeGroup; } public override string ToString() { return this.name + " (" + this.nameSpace + ")"; } } } xsddiagram-0.16/XSDDiagrams/Parsing/XMLSchemaEx.cs0000644000175000017500000000156611670477702021576 0ustar mathieumathieu// XSDDiagram - A XML Schema Definition file viewer // Copyright (C) 2006-2011 Regis COSNIER // // The content of this file is subject to the terms of either // the GNU Lesser General Public License only (LGPL) or // the Microsoft Public License (Ms-PL). // Please see LICENSE-LGPL.txt and LICENSE-MS-PL.txt files for details. // // Authors: // Regis Cosnier (Initial developer) // Paul Selormey (Refactoring) namespace XMLSchema { using System.ComponentModel; [TypeConverter(typeof(ExpandableObjectConverter))] partial class annotation { } [TypeConverter(typeof(ExpandableObjectConverter))] partial class localComplexType { } [TypeConverter(typeof(ExpandableObjectConverter))] partial class documentation { } [TypeConverter(typeof(ExpandableObjectConverter))] partial class appinfo { } } xsddiagram-0.16/XSDDiagrams/Parsing/XmlSchema.cs0000644000175000017500000024743312025676612021402 0ustar mathieumathieu//------------------------------------------------------------------------------ // // Ce code a été généré par un outil. // Version du runtime :2.0.50727.42 // // Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si // le code est régénéré. // //------------------------------------------------------------------------------ // 2012/07/22 dgis - Remove the Order attributes which are imcompatible with mono > 2.6! // // This source code was auto-generated by xsd, Version=2.0.50727.42. // namespace XMLSchema { using System.Xml.Serialization; /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)] [System.Xml.Serialization.XmlRootAttribute(Namespace="http://www.w3.org/2001/XMLSchema", IsNullable=false)] public partial class schema : openAttrs { private openAttrs[] itemsField; private openAttrs[] items1Field; private string targetNamespaceField; private string versionField; private string finalDefaultField; private string blockDefaultField; private formChoice attributeFormDefaultField; private formChoice elementFormDefaultField; private string idField; private string langField; public schema() { this.finalDefaultField = ""; this.blockDefaultField = ""; this.attributeFormDefaultField = formChoice.unqualified; this.elementFormDefaultField = formChoice.unqualified; } /// [System.Xml.Serialization.XmlElementAttribute("annotation", typeof(annotation))] [System.Xml.Serialization.XmlElementAttribute("import", typeof(import))] [System.Xml.Serialization.XmlElementAttribute("include", typeof(include))] [System.Xml.Serialization.XmlElementAttribute("redefine", typeof(redefine))] public openAttrs[] Items { get { return this.itemsField; } set { this.itemsField = value; } } /// // [System.Xml.Serialization.XmlElementAttribute("annotation", typeof(annotation))] [System.Xml.Serialization.XmlElementAttribute("attribute", typeof(topLevelAttribute))] [System.Xml.Serialization.XmlElementAttribute("attributeGroup", typeof(namedAttributeGroup))] [System.Xml.Serialization.XmlElementAttribute("complexType", typeof(topLevelComplexType))] [System.Xml.Serialization.XmlElementAttribute("element", typeof(topLevelElement))] [System.Xml.Serialization.XmlElementAttribute("group", typeof(namedGroup))] [System.Xml.Serialization.XmlElementAttribute("notation", typeof(notation))] [System.Xml.Serialization.XmlElementAttribute("simpleType", typeof(topLevelSimpleType))] public openAttrs[] Items1 { get { return this.items1Field; } set { this.items1Field = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] public string targetNamespace { get { return this.targetNamespaceField; } set { this.targetNamespaceField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute(DataType="token")] public string version { get { return this.versionField; } set { this.versionField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] [System.ComponentModel.DefaultValueAttribute("")] public string finalDefault { get { return this.finalDefaultField; } set { this.finalDefaultField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] [System.ComponentModel.DefaultValueAttribute("")] public string blockDefault { get { return this.blockDefaultField; } set { this.blockDefaultField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] [System.ComponentModel.DefaultValueAttribute(formChoice.unqualified)] public formChoice attributeFormDefault { get { return this.attributeFormDefaultField; } set { this.attributeFormDefaultField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] [System.ComponentModel.DefaultValueAttribute(formChoice.unqualified)] public formChoice elementFormDefault { get { return this.elementFormDefaultField; } set { this.elementFormDefaultField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute(DataType="ID")] public string id { get { return this.idField; } set { this.idField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")] public string lang { get { return this.langField; } set { this.langField = value; } } } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")] public enum formChoice { /// qualified, /// unqualified, } /// [System.Xml.Serialization.XmlIncludeAttribute(typeof(annotated))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(extensionType))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(simpleExtensionType))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(attributeGroup))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(namedAttributeGroup))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(attributeGroupRef))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(wildcard))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(keybase))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(element))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(localElement))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(narrowMaxMin))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(topLevelElement))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(group))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(explicitGroup))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(all))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(simpleExplicitGroup))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(realGroup))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(groupRef))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(namedGroup))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(restrictionType))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(simpleRestrictionType))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(complexRestrictionType))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(complexType))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(topLevelComplexType))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(localComplexType))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(facet))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(numFacet))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(noFixedFacet))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(simpleType))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(topLevelSimpleType))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(localSimpleType))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(attribute))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(topLevelAttribute))] [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")] public partial class openAttrs { } /// [System.Xml.Serialization.XmlIncludeAttribute(typeof(extensionType))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(simpleExtensionType))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(attributeGroup))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(namedAttributeGroup))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(attributeGroupRef))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(wildcard))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(keybase))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(element))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(localElement))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(narrowMaxMin))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(topLevelElement))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(group))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(explicitGroup))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(all))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(simpleExplicitGroup))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(realGroup))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(groupRef))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(namedGroup))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(restrictionType))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(simpleRestrictionType))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(complexRestrictionType))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(complexType))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(topLevelComplexType))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(localComplexType))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(facet))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(numFacet))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(noFixedFacet))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(simpleType))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(topLevelSimpleType))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(localSimpleType))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(attribute))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(topLevelAttribute))] [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")] public partial class annotated : openAttrs { private annotation annotationField; private string idField; /// [System.Xml.Serialization.XmlElementAttribute()] public annotation annotation { get { return this.annotationField; } set { this.annotationField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute(DataType="ID")] public string id { get { return this.idField; } set { this.idField = value; } } } /// [System.Xml.Serialization.XmlIncludeAttribute(typeof(simpleExtensionType))] [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")] public partial class extensionType : annotated { private groupRef groupField; private all allField; private explicitGroup choiceField; private explicitGroup sequenceField; private annotated[] itemsField; private wildcard anyAttributeField; private System.Xml.XmlQualifiedName baseField; /// [System.Xml.Serialization.XmlElementAttribute()] public groupRef group { get { return this.groupField; } set { this.groupField = value; } } /// [System.Xml.Serialization.XmlElementAttribute()] public all all { get { return this.allField; } set { this.allField = value; } } /// [System.Xml.Serialization.XmlElementAttribute()] public explicitGroup choice { get { return this.choiceField; } set { this.choiceField = value; } } /// [System.Xml.Serialization.XmlElementAttribute()] public explicitGroup sequence { get { return this.sequenceField; } set { this.sequenceField = value; } } /// [System.Xml.Serialization.XmlElementAttribute("attribute", typeof(attribute))] [System.Xml.Serialization.XmlElementAttribute("attributeGroup", typeof(attributeGroupRef))] public annotated[] Items { get { return this.itemsField; } set { this.itemsField = value; } } /// [System.Xml.Serialization.XmlElementAttribute()] public wildcard anyAttribute { get { return this.anyAttributeField; } set { this.anyAttributeField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] public System.Xml.XmlQualifiedName @base { get { return this.baseField; } set { this.baseField = value; } } } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")] public partial class groupRef : realGroup { } /// [System.Xml.Serialization.XmlIncludeAttribute(typeof(groupRef))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(namedGroup))] [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")] public partial class realGroup : group { } /// [System.Xml.Serialization.XmlIncludeAttribute(typeof(explicitGroup))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(all))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(simpleExplicitGroup))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(realGroup))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(groupRef))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(namedGroup))] [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")] public abstract partial class group : annotated { private annotated[] itemsField; private ItemsChoiceType2[] itemsElementNameField; private string nameField; private System.Xml.XmlQualifiedName refField; private string minOccursField; private string maxOccursField; public group() { this.minOccursField = "1"; this.maxOccursField = "1"; } /// [System.Xml.Serialization.XmlElementAttribute("all", typeof(all))] [System.Xml.Serialization.XmlElementAttribute("any", typeof(any))] [System.Xml.Serialization.XmlElementAttribute("choice", typeof(explicitGroup))] [System.Xml.Serialization.XmlElementAttribute("element", typeof(localElement))] [System.Xml.Serialization.XmlElementAttribute("group", typeof(groupRef))] [System.Xml.Serialization.XmlElementAttribute("sequence", typeof(explicitGroup))] [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] public annotated[] Items { get { return this.itemsField; } set { this.itemsField = value; } } /// [System.Xml.Serialization.XmlElementAttribute("ItemsElementName")] [System.Xml.Serialization.XmlIgnoreAttribute()] public ItemsChoiceType2[] ItemsElementName { get { return this.itemsElementNameField; } set { this.itemsElementNameField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute(DataType="NCName")] public string name { get { return this.nameField; } set { this.nameField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] public System.Xml.XmlQualifiedName @ref { get { return this.refField; } set { this.refField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute(DataType="nonNegativeInteger")] [System.ComponentModel.DefaultValueAttribute("1")] public string minOccurs { get { return this.minOccursField; } set { this.minOccursField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] [System.ComponentModel.DefaultValueAttribute("1")] public string maxOccurs { get { return this.maxOccursField; } set { this.maxOccursField = value; } } } /// [System.Xml.Serialization.XmlIncludeAttribute(typeof(narrowMaxMin))] [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")] public partial class localElement : element { } /// [System.Xml.Serialization.XmlIncludeAttribute(typeof(localElement))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(narrowMaxMin))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(topLevelElement))] [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")] public abstract partial class element : annotated { private annotated itemField; private keybase[] itemsField; private ItemsChoiceType1[] itemsElementNameField; private string nameField; private System.Xml.XmlQualifiedName refField; private System.Xml.XmlQualifiedName typeField; private System.Xml.XmlQualifiedName substitutionGroupField; private string minOccursField; private string maxOccursField; private string defaultField; private string fixedField; private bool nillableField; private bool abstractField; private string finalField; private string blockField; private formChoice formField; private bool formFieldSpecified; public element() { this.minOccursField = "1"; this.maxOccursField = "1"; this.nillableField = false; this.abstractField = false; } /// [System.Xml.Serialization.XmlElementAttribute("complexType", typeof(localComplexType))] [System.Xml.Serialization.XmlElementAttribute("simpleType", typeof(localSimpleType))] public annotated Item { get { return this.itemField; } set { this.itemField = value; } } /// [System.Xml.Serialization.XmlElementAttribute("key", typeof(keybase))] [System.Xml.Serialization.XmlElementAttribute("keyref", typeof(keyref))] [System.Xml.Serialization.XmlElementAttribute("unique", typeof(keybase))] [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] public keybase[] Items { get { return this.itemsField; } set { this.itemsField = value; } } /// [System.Xml.Serialization.XmlElementAttribute("ItemsElementName")] [System.Xml.Serialization.XmlIgnoreAttribute()] public ItemsChoiceType1[] ItemsElementName { get { return this.itemsElementNameField; } set { this.itemsElementNameField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute(DataType="NCName")] public string name { get { return this.nameField; } set { this.nameField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] public System.Xml.XmlQualifiedName @ref { get { return this.refField; } set { this.refField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] public System.Xml.XmlQualifiedName type { get { return this.typeField; } set { this.typeField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] public System.Xml.XmlQualifiedName substitutionGroup { get { return this.substitutionGroupField; } set { this.substitutionGroupField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute(DataType="nonNegativeInteger")] [System.ComponentModel.DefaultValueAttribute("1")] public string minOccurs { get { return this.minOccursField; } set { this.minOccursField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] [System.ComponentModel.DefaultValueAttribute("1")] public string maxOccurs { get { return this.maxOccursField; } set { this.maxOccursField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] public string @default { get { return this.defaultField; } set { this.defaultField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] public string @fixed { get { return this.fixedField; } set { this.fixedField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] [System.ComponentModel.DefaultValueAttribute(false)] public bool nillable { get { return this.nillableField; } set { this.nillableField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] [System.ComponentModel.DefaultValueAttribute(false)] public bool @abstract { get { return this.abstractField; } set { this.abstractField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] public string final { get { return this.finalField; } set { this.finalField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] public string block { get { return this.blockField; } set { this.blockField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] public formChoice form { get { return this.formField; } set { this.formField = value; } } /// [System.Xml.Serialization.XmlIgnoreAttribute()] public bool formSpecified { get { return this.formFieldSpecified; } set { this.formFieldSpecified = value; } } } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")] public partial class localComplexType : complexType { } /// [System.Xml.Serialization.XmlIncludeAttribute(typeof(topLevelComplexType))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(localComplexType))] [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")] public abstract partial class complexType : annotated { private annotated[] itemsField; private ItemsChoiceType4[] itemsElementNameField; private string nameField; private bool mixedField; private bool abstractField; private string finalField; private string blockField; public complexType() { this.mixedField = false; this.abstractField = false; } /// [System.Xml.Serialization.XmlElementAttribute("all", typeof(all))] [System.Xml.Serialization.XmlElementAttribute("anyAttribute", typeof(wildcard))] [System.Xml.Serialization.XmlElementAttribute("attribute", typeof(attribute))] [System.Xml.Serialization.XmlElementAttribute("attributeGroup", typeof(attributeGroupRef))] [System.Xml.Serialization.XmlElementAttribute("choice", typeof(explicitGroup))] [System.Xml.Serialization.XmlElementAttribute("complexContent", typeof(complexContent))] [System.Xml.Serialization.XmlElementAttribute("group", typeof(groupRef))] [System.Xml.Serialization.XmlElementAttribute("sequence", typeof(explicitGroup))] [System.Xml.Serialization.XmlElementAttribute("simpleContent", typeof(simpleContent))] [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] public annotated[] Items { get { return this.itemsField; } set { this.itemsField = value; } } /// [System.Xml.Serialization.XmlElementAttribute("ItemsElementName")] [System.Xml.Serialization.XmlIgnoreAttribute()] public ItemsChoiceType4[] ItemsElementName { get { return this.itemsElementNameField; } set { this.itemsElementNameField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute(DataType="NCName")] public string name { get { return this.nameField; } set { this.nameField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] [System.ComponentModel.DefaultValueAttribute(false)] public bool mixed { get { return this.mixedField; } set { this.mixedField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] [System.ComponentModel.DefaultValueAttribute(false)] public bool @abstract { get { return this.abstractField; } set { this.abstractField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] public string final { get { return this.finalField; } set { this.finalField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] public string block { get { return this.blockField; } set { this.blockField = value; } } } /// [System.Xml.Serialization.XmlIncludeAttribute(typeof(topLevelAttribute))] [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")] public partial class attribute : annotated { private localSimpleType simpleTypeField; private string nameField; private System.Xml.XmlQualifiedName refField; private System.Xml.XmlQualifiedName typeField; private attributeUse useField; private string defaultField; private string fixedField; private formChoice formField; private bool formFieldSpecified; public attribute() { this.useField = attributeUse.optional; } /// [System.Xml.Serialization.XmlElementAttribute()] public localSimpleType simpleType { get { return this.simpleTypeField; } set { this.simpleTypeField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute(DataType="NCName")] public string name { get { return this.nameField; } set { this.nameField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] public System.Xml.XmlQualifiedName @ref { get { return this.refField; } set { this.refField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] public System.Xml.XmlQualifiedName type { get { return this.typeField; } set { this.typeField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] [System.ComponentModel.DefaultValueAttribute(attributeUse.optional)] public attributeUse use { get { return this.useField; } set { this.useField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] public string @default { get { return this.defaultField; } set { this.defaultField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] public string @fixed { get { return this.fixedField; } set { this.fixedField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] public formChoice form { get { return this.formField; } set { this.formField = value; } } /// [System.Xml.Serialization.XmlIgnoreAttribute()] public bool formSpecified { get { return this.formFieldSpecified; } set { this.formFieldSpecified = value; } } } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")] public partial class localSimpleType : simpleType { } /// [System.Xml.Serialization.XmlIncludeAttribute(typeof(topLevelSimpleType))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(localSimpleType))] [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")] public abstract partial class simpleType : annotated { private annotated itemField; private string finalField; private string nameField; /// [System.Xml.Serialization.XmlElementAttribute("list", typeof(list))] [System.Xml.Serialization.XmlElementAttribute("restriction", typeof(restriction))] [System.Xml.Serialization.XmlElementAttribute("union", typeof(union))] public annotated Item { get { return this.itemField; } set { this.itemField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] public string final { get { return this.finalField; } set { this.finalField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute(DataType="NCName")] public string name { get { return this.nameField; } set { this.nameField = value; } } } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)] public enum attributeUse { /// prohibited, /// optional, /// required, } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")] public partial class attributeGroupRef : attributeGroup { } /// [System.Xml.Serialization.XmlIncludeAttribute(typeof(namedAttributeGroup))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(attributeGroupRef))] [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")] public abstract partial class attributeGroup : annotated { private annotated[] itemsField; private wildcard anyAttributeField; private string nameField; private System.Xml.XmlQualifiedName refField; /// [System.Xml.Serialization.XmlElementAttribute("attribute", typeof(attribute))] [System.Xml.Serialization.XmlElementAttribute("attributeGroup", typeof(attributeGroupRef))] public annotated[] Items { get { return this.itemsField; } set { this.itemsField = value; } } /// [System.Xml.Serialization.XmlElementAttribute()] public wildcard anyAttribute { get { return this.anyAttributeField; } set { this.anyAttributeField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute(DataType="NCName")] public string name { get { return this.nameField; } set { this.nameField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] public System.Xml.XmlQualifiedName @ref { get { return this.refField; } set { this.refField = value; } } } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema", IncludeInSchema=false)] public enum ItemsChoiceType4 { /// all, /// anyAttribute, /// attribute, /// attributeGroup, /// choice, /// complexContent, /// group, /// sequence, /// simpleContent, } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema", IncludeInSchema=false)] public enum ItemsChoiceType1 { /// key, /// keyref, /// unique, } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")] public partial class narrowMaxMin : localElement { } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema", IncludeInSchema=false)] public enum ItemsChoiceType2 { /// all, /// any, /// choice, /// element, /// group, /// sequence, } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")] public partial class simpleExtensionType : extensionType { } /// [System.Xml.Serialization.XmlIncludeAttribute(typeof(simpleRestrictionType))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(complexRestrictionType))] [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")] public partial class restrictionType : annotated { private annotated[] itemsField; private ItemsChoiceType3[] itemsElementNameField; private annotated[] items1Field; private wildcard anyAttributeField; private System.Xml.XmlQualifiedName baseField; /// [System.Xml.Serialization.XmlElementAttribute("all", typeof(all))] [System.Xml.Serialization.XmlElementAttribute("choice", typeof(explicitGroup))] [System.Xml.Serialization.XmlElementAttribute("enumeration", typeof(noFixedFacet))] [System.Xml.Serialization.XmlElementAttribute("fractionDigits", typeof(numFacet))] [System.Xml.Serialization.XmlElementAttribute("group", typeof(groupRef))] [System.Xml.Serialization.XmlElementAttribute("length", typeof(numFacet))] [System.Xml.Serialization.XmlElementAttribute("maxExclusive", typeof(facet))] [System.Xml.Serialization.XmlElementAttribute("maxInclusive", typeof(facet))] [System.Xml.Serialization.XmlElementAttribute("maxLength", typeof(numFacet))] [System.Xml.Serialization.XmlElementAttribute("minExclusive", typeof(facet))] [System.Xml.Serialization.XmlElementAttribute("minInclusive", typeof(facet))] [System.Xml.Serialization.XmlElementAttribute("minLength", typeof(numFacet))] [System.Xml.Serialization.XmlElementAttribute("pattern", typeof(pattern))] [System.Xml.Serialization.XmlElementAttribute("sequence", typeof(explicitGroup))] [System.Xml.Serialization.XmlElementAttribute("simpleType", typeof(localSimpleType))] [System.Xml.Serialization.XmlElementAttribute("totalDigits", typeof(totalDigits))] [System.Xml.Serialization.XmlElementAttribute("whiteSpace", typeof(whiteSpace))] [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] public annotated[] Items { get { return this.itemsField; } set { this.itemsField = value; } } /// [System.Xml.Serialization.XmlElementAttribute("ItemsElementName")] [System.Xml.Serialization.XmlIgnoreAttribute()] public ItemsChoiceType3[] ItemsElementName { get { return this.itemsElementNameField; } set { this.itemsElementNameField = value; } } /// [System.Xml.Serialization.XmlElementAttribute("attribute", typeof(attribute))] [System.Xml.Serialization.XmlElementAttribute("attributeGroup", typeof(attributeGroupRef))] public annotated[] Items1 { get { return this.items1Field; } set { this.items1Field = value; } } /// [System.Xml.Serialization.XmlElementAttribute()] public wildcard anyAttribute { get { return this.anyAttributeField; } set { this.anyAttributeField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] public System.Xml.XmlQualifiedName @base { get { return this.baseField; } set { this.baseField = value; } } } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema", IncludeInSchema=false)] public enum ItemsChoiceType3 { /// all, /// choice, /// enumeration, /// fractionDigits, /// group, /// length, /// maxExclusive, /// maxInclusive, /// maxLength, /// minExclusive, /// minInclusive, /// minLength, /// pattern, /// sequence, /// simpleType, /// totalDigits, /// whiteSpace, } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")] public partial class simpleRestrictionType : restrictionType { } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")] public partial class complexRestrictionType : restrictionType { } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")] [System.Xml.Serialization.XmlRootAttribute("anyAttribute", Namespace="http://www.w3.org/2001/XMLSchema", IsNullable=false)] public partial class wildcard : annotated { private string namespaceField; private wildcardProcessContents processContentsField; public wildcard() { this.namespaceField = "##any"; this.processContentsField = wildcardProcessContents.strict; } /// [System.Xml.Serialization.XmlAttributeAttribute()] [System.ComponentModel.DefaultValueAttribute("##any")] public string @namespace { get { return this.namespaceField; } set { this.namespaceField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] [System.ComponentModel.DefaultValueAttribute(wildcardProcessContents.strict)] public wildcardProcessContents processContents { get { return this.processContentsField; } set { this.processContentsField = value; } } } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)] public enum wildcardProcessContents { /// skip, /// lax, /// strict, } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)] [System.Xml.Serialization.XmlRootAttribute(Namespace="http://www.w3.org/2001/XMLSchema", IsNullable=false)] public partial class complexContent : annotated { private annotated itemField; private bool mixedField; private bool mixedFieldSpecified; /// [System.Xml.Serialization.XmlElementAttribute("extension", typeof(extensionType))] [System.Xml.Serialization.XmlElementAttribute("restriction", typeof(complexRestrictionType))] public annotated Item { get { return this.itemField; } set { this.itemField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] public bool mixed { get { return this.mixedField; } set { this.mixedField = value; } } /// [System.Xml.Serialization.XmlIgnoreAttribute()] public bool mixedSpecified { get { return this.mixedFieldSpecified; } set { this.mixedFieldSpecified = value; } } } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)] [System.Xml.Serialization.XmlRootAttribute(Namespace="http://www.w3.org/2001/XMLSchema", IsNullable=false)] public partial class simpleContent : annotated { private annotated itemField; /// [System.Xml.Serialization.XmlElementAttribute("extension", typeof(simpleExtensionType))] [System.Xml.Serialization.XmlElementAttribute("restriction", typeof(simpleRestrictionType))] public annotated Item { get { return this.itemField; } set { this.itemField = value; } } } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")] [System.Xml.Serialization.XmlRootAttribute("complexType", Namespace="http://www.w3.org/2001/XMLSchema", IsNullable=false)] public partial class topLevelComplexType : complexType { } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")] [System.Xml.Serialization.XmlRootAttribute("element", Namespace="http://www.w3.org/2001/XMLSchema", IsNullable=false)] public partial class topLevelElement : element { } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")] [System.Xml.Serialization.XmlRootAttribute(Namespace="http://www.w3.org/2001/XMLSchema", IsNullable=false)] public partial class all : explicitGroup { } /// [System.Xml.Serialization.XmlIncludeAttribute(typeof(all))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(simpleExplicitGroup))] [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")] [System.Xml.Serialization.XmlRootAttribute("choice", Namespace="http://www.w3.org/2001/XMLSchema", IsNullable=false)] public partial class explicitGroup : group { } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")] public partial class simpleExplicitGroup : explicitGroup { } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")] [System.Xml.Serialization.XmlRootAttribute("group", Namespace="http://www.w3.org/2001/XMLSchema", IsNullable=false)] public partial class namedGroup : realGroup { } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)] [System.Xml.Serialization.XmlRootAttribute(Namespace="http://www.w3.org/2001/XMLSchema", IsNullable=false)] public partial class any : wildcard { private string minOccursField; private string maxOccursField; public any() { this.minOccursField = "1"; this.maxOccursField = "1"; } /// [System.Xml.Serialization.XmlAttributeAttribute(DataType="nonNegativeInteger")] [System.ComponentModel.DefaultValueAttribute("1")] public string minOccurs { get { return this.minOccursField; } set { this.minOccursField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] [System.ComponentModel.DefaultValueAttribute("1")] public string maxOccurs { get { return this.maxOccursField; } set { this.maxOccursField = value; } } } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")] [System.Xml.Serialization.XmlRootAttribute("attribute", Namespace="http://www.w3.org/2001/XMLSchema", IsNullable=false)] public partial class topLevelAttribute : attribute { } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")] [System.Xml.Serialization.XmlRootAttribute("attributeGroup", Namespace="http://www.w3.org/2001/XMLSchema", IsNullable=false)] public partial class namedAttributeGroup : attributeGroup { } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)] [System.Xml.Serialization.XmlRootAttribute(Namespace="http://www.w3.org/2001/XMLSchema", IsNullable=false)] public partial class include : annotated { private string schemaLocationField; /// [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] public string schemaLocation { get { return this.schemaLocationField; } set { this.schemaLocationField = value; } } } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)] [System.Xml.Serialization.XmlRootAttribute(Namespace="http://www.w3.org/2001/XMLSchema", IsNullable=false)] public partial class redefine : openAttrs { private openAttrs[] itemsField; private string schemaLocationField; private string idField; /// [System.Xml.Serialization.XmlElementAttribute("annotation", typeof(annotation))] [System.Xml.Serialization.XmlElementAttribute("attributeGroup", typeof(namedAttributeGroup))] [System.Xml.Serialization.XmlElementAttribute("complexType", typeof(topLevelComplexType))] [System.Xml.Serialization.XmlElementAttribute("group", typeof(namedGroup))] [System.Xml.Serialization.XmlElementAttribute("simpleType", typeof(topLevelSimpleType))] public openAttrs[] Items { get { return this.itemsField; } set { this.itemsField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] public string schemaLocation { get { return this.schemaLocationField; } set { this.schemaLocationField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute(DataType="ID")] public string id { get { return this.idField; } set { this.idField = value; } } } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)] [System.Xml.Serialization.XmlRootAttribute(Namespace="http://www.w3.org/2001/XMLSchema", IsNullable=false)] public partial class import : annotated { private string namespaceField; private string schemaLocationField; /// [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] public string @namespace { get { return this.namespaceField; } set { this.namespaceField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] public string schemaLocation { get { return this.schemaLocationField; } set { this.schemaLocationField = value; } } } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)] [System.Xml.Serialization.XmlRootAttribute(Namespace="http://www.w3.org/2001/XMLSchema", IsNullable=false)] public partial class selector : annotated { private string xpathField; /// [System.Xml.Serialization.XmlAttributeAttribute(DataType="token")] public string xpath { get { return this.xpathField; } set { this.xpathField = value; } } } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)] [System.Xml.Serialization.XmlRootAttribute(Namespace="http://www.w3.org/2001/XMLSchema", IsNullable=false)] public partial class field : annotated { private string xpathField; /// [System.Xml.Serialization.XmlAttributeAttribute(DataType="token")] public string xpath { get { return this.xpathField; } set { this.xpathField = value; } } } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")] [System.Xml.Serialization.XmlRootAttribute("unique", Namespace="http://www.w3.org/2001/XMLSchema", IsNullable=false)] public partial class keybase : annotated { private selector selectorField; private field[] fieldField; private string nameField; /// [System.Xml.Serialization.XmlElementAttribute()] public selector selector { get { return this.selectorField; } set { this.selectorField = value; } } /// [System.Xml.Serialization.XmlElementAttribute("field")] public field[] field { get { return this.fieldField; } set { this.fieldField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute(DataType="NCName")] public string name { get { return this.nameField; } set { this.nameField = value; } } } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)] [System.Xml.Serialization.XmlRootAttribute(Namespace="http://www.w3.org/2001/XMLSchema", IsNullable=false)] public partial class keyref : keybase { private System.Xml.XmlQualifiedName referField; /// [System.Xml.Serialization.XmlAttributeAttribute()] public System.Xml.XmlQualifiedName refer { get { return this.referField; } set { this.referField = value; } } } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)] [System.Xml.Serialization.XmlRootAttribute(Namespace="http://www.w3.org/2001/XMLSchema", IsNullable=false)] public partial class notation : annotated { private string nameField; private string publicField; private string systemField; /// [System.Xml.Serialization.XmlAttributeAttribute(DataType="NCName")] public string name { get { return this.nameField; } set { this.nameField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute(DataType="token")] public string @public { get { return this.publicField; } set { this.publicField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] public string system { get { return this.systemField; } set { this.systemField = value; } } } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)] [System.Xml.Serialization.XmlRootAttribute(Namespace="http://www.w3.org/2001/XMLSchema", IsNullable=false)] public partial class appinfo { private System.Xml.XmlNode[] anyField; private string sourceField; private System.Xml.XmlAttribute[] anyAttrField; /// [System.Xml.Serialization.XmlTextAttribute()] [System.Xml.Serialization.XmlAnyElementAttribute()] public System.Xml.XmlNode[] Any { get { return this.anyField; } set { this.anyField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] public string source { get { return this.sourceField; } set { this.sourceField = value; } } /// [System.Xml.Serialization.XmlAnyAttributeAttribute()] public System.Xml.XmlAttribute[] AnyAttr { get { return this.anyAttrField; } set { this.anyAttrField = value; } } } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)] [System.Xml.Serialization.XmlRootAttribute(Namespace="http://www.w3.org/2001/XMLSchema", IsNullable=false)] public partial class documentation { private System.Xml.XmlNode[] anyField; private string sourceField; private string langField; private System.Xml.XmlAttribute[] anyAttrField; /// [System.Xml.Serialization.XmlTextAttribute()] [System.Xml.Serialization.XmlAnyElementAttribute()] public System.Xml.XmlNode[] Any { get { return this.anyField; } set { this.anyField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")] public string source { get { return this.sourceField; } set { this.sourceField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://www.w3.org/XML/1998/namespace")] public string lang { get { return this.langField; } set { this.langField = value; } } /// [System.Xml.Serialization.XmlAnyAttributeAttribute()] public System.Xml.XmlAttribute[] AnyAttr { get { return this.anyAttrField; } set { this.anyAttrField = value; } } } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)] [System.Xml.Serialization.XmlRootAttribute(Namespace="http://www.w3.org/2001/XMLSchema", IsNullable=false)] public partial class annotation : openAttrs { private object[] itemsField; private string idField; /// [System.Xml.Serialization.XmlElementAttribute("appinfo", typeof(appinfo))] [System.Xml.Serialization.XmlElementAttribute("documentation", typeof(documentation))] public object[] Items { get { return this.itemsField; } set { this.itemsField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute(DataType="ID")] public string id { get { return this.idField; } set { this.idField = value; } } } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")] [System.Xml.Serialization.XmlRootAttribute("simpleType", Namespace="http://www.w3.org/2001/XMLSchema", IsNullable=false)] public partial class topLevelSimpleType : simpleType { } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)] [System.Xml.Serialization.XmlRootAttribute(Namespace="http://www.w3.org/2001/XMLSchema", IsNullable=false)] public partial class restriction : annotated { private localSimpleType simpleTypeField; private facet[] itemsField; private ItemsChoiceType[] itemsElementNameField; private System.Xml.XmlQualifiedName baseField; /// [System.Xml.Serialization.XmlElementAttribute()] public localSimpleType simpleType { get { return this.simpleTypeField; } set { this.simpleTypeField = value; } } /// [System.Xml.Serialization.XmlElementAttribute("enumeration", typeof(noFixedFacet))] [System.Xml.Serialization.XmlElementAttribute("fractionDigits", typeof(numFacet))] [System.Xml.Serialization.XmlElementAttribute("length", typeof(numFacet))] [System.Xml.Serialization.XmlElementAttribute("maxExclusive", typeof(facet))] [System.Xml.Serialization.XmlElementAttribute("maxInclusive", typeof(facet))] [System.Xml.Serialization.XmlElementAttribute("maxLength", typeof(numFacet))] [System.Xml.Serialization.XmlElementAttribute("minExclusive", typeof(facet))] [System.Xml.Serialization.XmlElementAttribute("minInclusive", typeof(facet))] [System.Xml.Serialization.XmlElementAttribute("minLength", typeof(numFacet))] [System.Xml.Serialization.XmlElementAttribute("pattern", typeof(pattern))] [System.Xml.Serialization.XmlElementAttribute("totalDigits", typeof(totalDigits))] [System.Xml.Serialization.XmlElementAttribute("whiteSpace", typeof(whiteSpace))] [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")] public facet[] Items { get { return this.itemsField; } set { this.itemsField = value; } } /// [System.Xml.Serialization.XmlElementAttribute("ItemsElementName")] [System.Xml.Serialization.XmlIgnoreAttribute()] public ItemsChoiceType[] ItemsElementName { get { return this.itemsElementNameField; } set { this.itemsElementNameField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] public System.Xml.XmlQualifiedName @base { get { return this.baseField; } set { this.baseField = value; } } } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema", IncludeInSchema=false)] public enum ItemsChoiceType { /// enumeration, /// fractionDigits, /// length, /// maxExclusive, /// maxInclusive, /// maxLength, /// minExclusive, /// minInclusive, /// minLength, /// pattern, /// totalDigits, /// whiteSpace, } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)] [System.Xml.Serialization.XmlRootAttribute(Namespace="http://www.w3.org/2001/XMLSchema", IsNullable=false)] public partial class list : annotated { private localSimpleType simpleTypeField; private System.Xml.XmlQualifiedName itemTypeField; /// [System.Xml.Serialization.XmlElementAttribute()] public localSimpleType simpleType { get { return this.simpleTypeField; } set { this.simpleTypeField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] public System.Xml.XmlQualifiedName itemType { get { return this.itemTypeField; } set { this.itemTypeField = value; } } } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)] [System.Xml.Serialization.XmlRootAttribute(Namespace="http://www.w3.org/2001/XMLSchema", IsNullable=false)] public partial class union : annotated { private localSimpleType[] simpleTypeField; private System.Xml.XmlQualifiedName[] memberTypesField; /// [System.Xml.Serialization.XmlElementAttribute("simpleType")] public localSimpleType[] simpleType { get { return this.simpleTypeField; } set { this.simpleTypeField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] public System.Xml.XmlQualifiedName[] memberTypes { get { return this.memberTypesField; } set { this.memberTypesField = value; } } } /// [System.Xml.Serialization.XmlIncludeAttribute(typeof(numFacet))] [System.Xml.Serialization.XmlIncludeAttribute(typeof(noFixedFacet))] [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")] [System.Xml.Serialization.XmlRootAttribute("minExclusive", Namespace="http://www.w3.org/2001/XMLSchema", IsNullable=false)] public partial class facet : annotated { private string valueField; private bool fixedField; public facet() { this.fixedField = false; } /// [System.Xml.Serialization.XmlAttributeAttribute()] public string value { get { return this.valueField; } set { this.valueField = value; } } /// [System.Xml.Serialization.XmlAttributeAttribute()] [System.ComponentModel.DefaultValueAttribute(false)] public bool @fixed { get { return this.fixedField; } set { this.fixedField = value; } } } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)] [System.Xml.Serialization.XmlRootAttribute(Namespace="http://www.w3.org/2001/XMLSchema", IsNullable=false)] public partial class totalDigits : numFacet { } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")] [System.Xml.Serialization.XmlRootAttribute("fractionDigits", Namespace="http://www.w3.org/2001/XMLSchema", IsNullable=false)] public partial class numFacet : facet { } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")] [System.Xml.Serialization.XmlRootAttribute("enumeration", Namespace="http://www.w3.org/2001/XMLSchema", IsNullable=false)] public partial class noFixedFacet : facet { } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)] [System.Xml.Serialization.XmlRootAttribute(Namespace="http://www.w3.org/2001/XMLSchema", IsNullable=false)] public partial class whiteSpace : facet { } /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)] [System.Xml.Serialization.XmlRootAttribute(Namespace="http://www.w3.org/2001/XMLSchema", IsNullable=false)] public partial class pattern : noFixedFacet { } } xsddiagram-0.16/DiagramControlContainer.cs0000644000175000017500000002244311670473664020557 0ustar mathieumathieu// XSDDiagram - A XML Schema Definition file viewer // Copyright (C) 2006-2011 Regis COSNIER // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System; using System.Drawing; using System.Windows.Forms; namespace XSDDiagram { class DiagramControlContainer : UserControl { private DiagramControl diagramControl; private VScrollBar vScrollBar; private HScrollBar hScrollBar; private Point virtualPoint = new Point(0, 0); private Size virtualSize = new Size(10, 10); private bool isDragging = false; private Point mouseDownPosition = new Point(0, 0); private int mouseDownHScroll = 0; private int mouseDownVScroll = 0; public DiagramControl DiagramControl { get { return this.diagramControl; } } public Point VirtualPoint { get { return this.virtualPoint; } set { this.virtualPoint = value; } } public Size VirtualSize { get { return this.virtualSize; } set { this.virtualSize = value; diagramControl_Resize(null, null); } } public DiagramControlContainer() { InitializeComponent(); this.diagramControl.MouseWheel += new MouseEventHandler(diagramControl_MouseWheel); } private void InitializeComponent() { this.vScrollBar = new System.Windows.Forms.VScrollBar(); this.hScrollBar = new System.Windows.Forms.HScrollBar(); this.diagramControl = new XSDDiagram.DiagramControl(); this.SuspendLayout(); // // vScrollBar // this.vScrollBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Right))); this.vScrollBar.Location = new System.Drawing.Point(437, 0); this.vScrollBar.Name = "vScrollBar"; this.vScrollBar.Size = new System.Drawing.Size(17, 348); this.vScrollBar.SmallChange = 5; this.vScrollBar.TabIndex = 0; this.vScrollBar.ValueChanged += new System.EventHandler(this.vScrollBar_ValueChanged); // // hScrollBar // this.hScrollBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.hScrollBar.Location = new System.Drawing.Point(0, 348); this.hScrollBar.Name = "hScrollBar"; this.hScrollBar.Size = new System.Drawing.Size(437, 17); this.hScrollBar.SmallChange = 5; this.hScrollBar.TabIndex = 1; this.hScrollBar.ValueChanged += new System.EventHandler(this.vScrollBar_ValueChanged); // // diagramControl // this.diagramControl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.diagramControl.Location = new System.Drawing.Point(0, 0); this.diagramControl.Margin = new System.Windows.Forms.Padding(0); this.diagramControl.Name = "diagramControl"; this.diagramControl.Size = new System.Drawing.Size(437, 348); this.diagramControl.TabIndex = 2; this.diagramControl.MouseDown += new System.Windows.Forms.MouseEventHandler(this.diagramControl_MouseDown); this.diagramControl.MouseMove += new System.Windows.Forms.MouseEventHandler(this.diagramControl_MouseMove); this.diagramControl.Resize += new System.EventHandler(this.diagramControl_Resize); this.diagramControl.MouseUp += new System.Windows.Forms.MouseEventHandler(this.diagramControl_MouseUp); // // DiagramControlContainer // this.Controls.Add(this.diagramControl); this.Controls.Add(this.hScrollBar); this.Controls.Add(this.vScrollBar); this.Name = "DiagramControlContainer"; this.Size = new System.Drawing.Size(454, 365); this.ResumeLayout(false); } void diagramControl_MouseWheel(object sender, MouseEventArgs e) { if ((ModifierKeys & Keys.Control) != Keys.Control) { int scrollBarValue = this.vScrollBar.Value; scrollBarValue -= e.Delta; if (scrollBarValue > this.vScrollBar.Maximum - this.vScrollBar.LargeChange) scrollBarValue = this.vScrollBar.Maximum - this.vScrollBar.LargeChange; if (scrollBarValue < this.vScrollBar.Minimum) scrollBarValue = this.vScrollBar.Minimum; this.vScrollBar.Value = scrollBarValue; } } private void diagramControl_Resize(object sender, EventArgs e) { LayoutScrollBars(); } public void Clear() { this.hScrollBar.Value = 0; this.vScrollBar.Value = 0; LayoutScrollBars(); } public void LayoutScrollBars() { this.SuspendLayout(); Size diagramControlNewSize = this.ClientSize; if (this.virtualSize.Width > this.diagramControl.ClientSize.Width) { this.hScrollBar.Minimum = 0; this.hScrollBar.Maximum = this.virtualSize.Width; this.hScrollBar.LargeChange = this.diagramControl.ClientSize.Width; this.hScrollBar.Visible = true; diagramControlNewSize.Height -= this.hScrollBar.Height; } else { this.hScrollBar.Minimum = 0; this.hScrollBar.Maximum = 0; this.hScrollBar.Visible = false; } if (this.virtualSize.Height > this.diagramControl.ClientSize.Height) { this.vScrollBar.Minimum = 0; this.vScrollBar.Maximum = this.virtualSize.Height; this.vScrollBar.LargeChange = this.diagramControl.ClientSize.Height; this.vScrollBar.Visible = true; diagramControlNewSize.Width -= this.vScrollBar.Width; } else { this.vScrollBar.Minimum = 0; this.vScrollBar.Maximum = 0; this.vScrollBar.Visible = false; } Size hScrollBarSize = this.hScrollBar.Size; if (this.hScrollBar.Visible && !this.vScrollBar.Visible) hScrollBarSize.Width = this.ClientSize.Width; else hScrollBarSize.Width = this.ClientSize.Width - this.vScrollBar.Width; this.hScrollBar.Size = hScrollBarSize; Size vScrollBarSize = this.vScrollBar.Size; if (this.vScrollBar.Visible && !this.hScrollBar.Visible) vScrollBarSize.Height = this.ClientSize.Height; else vScrollBarSize.Height = this.ClientSize.Height - this.hScrollBar.Height; this.vScrollBar.Size = vScrollBarSize; this.diagramControl.Size = diagramControlNewSize; this.diagramControl.Invalidate(this.diagramControl.ClientRectangle); this.ResumeLayout(); } public void ScrollTo(Point point) { ScrollTo(point, false); } public void ScrollTo(Point point, bool center) { if (center) { point.X -= this.DiagramControl.ClientRectangle.Width / 2; point.Y -= this.DiagramControl.ClientRectangle.Height / 2; } if (point.X > this.hScrollBar.Maximum - this.hScrollBar.LargeChange) point.X = this.hScrollBar.Maximum - this.hScrollBar.LargeChange; if (point.X < this.hScrollBar.Minimum) point.X = this.hScrollBar.Minimum; if (point.Y > this.vScrollBar.Maximum - this.vScrollBar.LargeChange) point.Y = this.vScrollBar.Maximum - this.vScrollBar.LargeChange; if (point.Y < this.vScrollBar.Minimum) point.Y = this.vScrollBar.Minimum; this.hScrollBar.Value = point.X; this.vScrollBar.Value = point.Y; } private void vScrollBar_ValueChanged(object sender, EventArgs e) { this.virtualPoint = new Point(this.hScrollBar.Value, this.vScrollBar.Value); //System.Diagnostics.Trace.WriteLine("h: " + this.hScrollBar.Value + " (min: " + this.hScrollBar.Minimum + ", max: " + this.hScrollBar.Maximum + "), v: " + this.vScrollBar.Value + " (min: " + this.vScrollBar.Minimum + ", max: " + this.vScrollBar.Maximum + ")"); this.diagramControl.Invalidate(this.diagramControl.ClientRectangle); } private void diagramControl_MouseMove(object sender, MouseEventArgs e) { if (this.isDragging) { int hValue = this.mouseDownHScroll + (this.mouseDownPosition.X - Cursor.Position.X); if (hValue > this.hScrollBar.Minimum && hValue < this.hScrollBar.Maximum - this.hScrollBar.LargeChange) this.hScrollBar.Value = hValue; int vValue = this.mouseDownVScroll + (this.mouseDownPosition.Y - Cursor.Position.Y); if (vValue > this.vScrollBar.Minimum && vValue < this.vScrollBar.Maximum - this.vScrollBar.LargeChange) this.vScrollBar.Value = vValue; } } private void diagramControl_MouseDown(object sender, MouseEventArgs e) { if (!this.isDragging) { this.mouseDownPosition = Cursor.Position; this.mouseDownHScroll = this.hScrollBar.Value; this.mouseDownVScroll = this.vScrollBar.Value; this.isDragging = true; } } private void diagramControl_MouseUp(object sender, MouseEventArgs e) { this.isDragging = false; } } } xsddiagram-0.16/AboutForm.resx0000644000175000017500000003040212056405154016237 0ustar mathieumathieu text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AO8AAAD/AAAA/wAAAP8AAAD/AAAA7wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA/5T/AP+U/wD/lP8A/5T/AP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA/wAAAP8AAAD/lP8A/5T/AP+U/wD/lP8A/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAD/AAAAAAAAAP+U/wD/lP8A/5T/AP+U/wD/AAAA/wAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAzwAAAP8AAAD/AAAA/wAAAP8AAADPAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAADvAAAA/wAAAP8AAAD/AAAA/wAAAO8AAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAP//DAD//wwA//8MAP//DAD/AAAA/wAAAAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA7wAA AAAAAAAAAAAAAAAAAAAAAAAAAAAA//8MAP//DAD//wwA//8MAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//Pz///z8///8/P///Pz///z8 //8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wwA//8MAP//DAD//wwA/wAAAP8AAAAAAAAA/wAA AAAAAADvAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA7wAAAAAAAAD/AAAA/wAAAP/8/P///Pz///z8 ///8/P///Pz//wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM8AAAD/AAAA/wAAAP8AAAD/AAAAzwAA AAAAAAD/AAAAAAAAAP+5t7z/ube8/7m3vP+5t7z/ube8/7m3vP8AAAD/AAAAAAAAAP8AAAAAAAAAzwAA AP8AAAD/AAAA/wAAAP8AAAD/AAAAzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAP8AAAD/AAAA/7m3vP+5t7z/ube8/7m3vP+5t7z/ube8/wAAAP8AAAD/AAAA/wAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/ube8/7m3vP+5t7z/ube8/7m3vP+5t7z/AAAA/wAA AAAAAAD/AAAAAAAAAO8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAO8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAADPAAAAAAAAAP8AAAD/AAAA//+OBf//jgX//44F//+OBf//jgX/AAAA/wAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//44F//+OBf//jgX//44F//+OBf8AAAD/AAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACLAAAA/wAAAP8AAACLAAAAAAAAAAAAAAAAAAAAQAAA AP8AAAD/AAAA/wAAAEAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIsAAAAAAAAAAAAAAAAAAACLAAAA/wAA AP8AAAD/AAAAiwAAAP8AAAD/AAAAQAAAAAAA0P+LAND//wDQ//8Agp/eAAAA/wAAAP8AAABAAND/QADQ //8A0P//AND//wA0QP8A0P//AND//wDQ//8A0P//AND//wDQ/4sAAAC3AAAA/wAAALcA0P+LAND//wDQ //8A0P//ALvmmgDQ//8A0P//ADRA/wAAAP8AAABAAAAAAAAAAAAA0P+3AND//wDQ//8ANED/AAAA/wAA AP8A0P+3AND//wDQ//8AUGP/ACIqwADQ//8AAAAAAAAAAAAAAAAA0P+3AND//wC03dMAAAD/AFBj/wDQ //8A0P//ABog/wAAAIsA0P+LAND//wDQ//8ANED/AAAA/wAAAEAAAAAAAAAAAADQ/yAA0P//AND//wDQ //8AAAD/AFBj/wDQ//8A0P//AJW3/wAAAP8AAAAgAAAAAAAAAAAAAAAAAAAAAACAnaAA0P//AND//wA0 QP8A0P//AND//wBxi/8AAAD/AAAAiwDQ/0AA0P//AND//wA0QP8AAAD/AAAAQAAAAAAAAAAAAAAAAADQ /2MA0P//AND//wBhd9MA0P//AND//wDQ//8AGiD/AAAAiwAAAAAAAAAAAAAAAACAnaAA0P//AND//wDQ //8A0P//AFBj/wDQ//8A0P//AHGL/wAAAP8AAACLAND/QADQ//8A0P//ADRA/wAAAP8AAABAAAAAAAAA AAAAAAAAAAAAAADQ/7cA0P//AND//wDQ//8A0P//AHGL/wAAAP8AAAAAAAAAAADQ/2MA0P//AND//wDQ //8A0P//AND//wCr0t4A0P8gAND//wDQ//8AcYv/AAAA/wAAAIsA0P9AAND//wDQ//8ANED/AAAA/wAA AEAAAAAAAAAAAAAAAAAAAAAAAND/QADQ//8A0P//AND//wDQ//8AAAD/AAAAiwAAAAAA0P8gAND//wDQ //8A0P//AND//wCPr8oAAAAAAAAAAADQ/yAA0P//AND//wCCn94AAAD/AAAAtwDQ/0AA0P//AND//wA0 QP8AAAD/AAAAQAAAAAAAAAAAAAAAAAAAAAAA0P9AAND//wDQ//8A0P//AHGL/wAAAP8AAAD/AAAAQADQ /yAA0P//AND//wCPr8oAAAD/AAAA/wAAAAAAAAAAAAAAAACVt/8A0P//AL3oyQAAAP8AAAD/AHaRcADQ //8A0P//ADRA/wAAAP8AAABAAAAAAAAAAAAAAAAAAAAAAADQ/7cA0P//AND//wDQ//8A0P//ADRA/wAA AP8AAAD/AAAAAADQ/4sA0P//AND//wAAAGMAAAD/AAAA/wDQ//8AAAD/ADRA/wDQ//8A0P//AHaRcAAA AP8ANED/AND//wDQ//8ANED/AAAA/wAAAEAAAAAAAAAAAAAAAAAA0P9jAND//wDQ//8Albf/AND//wDQ //8A0P//AAAA/wAAAP8AAACLAAAAAADQ/2MA0P//AND//wDQ//8A0P//AND//wAAAAAAAAAAAND/QADQ //8A0P//AND//wDQ//8A0P//AND//wA0QP8AAAD/AAAAQAAAAAAAAAAAAND/IADQ//8A0P//AND//wAa IP8Ab4m4AND//wDQ//8Agp/eAAAA/wAAAP8AAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAND/QADQ//8A0P//ADRA/wAAAP8AAABAAAAAAAAAAAAA0P+LAND//wDQ //8AcYv/AAAA/wAAAAAA0P+3AND//wDQ//8ANED/AAAA/wAAAP8AAAAgAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0P9AAND//wDQ//8ANED/AAAA/wAAAEAAAAAAAND/YwDQ //8A0P//AND//wAAAAAAAAAAAAAAAADQ/yAA0P//AND//wDQ//8A0P8gAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ/0AA0P//AND//wA0QP8AAAD/AAAAQAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAND/QADQ//8A0P//AND/QAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA////////////4f///8D///8A////QP///2H//8N///+Bf/wfgH/4D4Fg YA/DQCwf/wAP///ALB//4GAP///4D//////nxB8TkwBsQ8EXoMPAH4DD5D4Aw/A4MMPwcPLD8DJyQ/AZ AQPgHBwDwk//w8MH/8OPH//D////z/////8= xsddiagram-0.16/XSDDiagram2010.sln0000644000175000017500000000565612077777700016433 0ustar mathieumathieu Microsoft Visual Studio Solution File, Format Version 11.00 # Visual C# Express 2010 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XSDDiagram2010", "XSDDiagram2010.csproj", "{B212CAFE-B4C8-44CB-B82D-AA32B55D2719}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XSDDiagramConsole2010", "XSDDiagramConsole\XSDDiagramConsole2010.csproj", "{1D732DFD-D631-4BFB-8057-C34B9327A08F}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XSDDiagrams2010", "XSDDiagrams\XSDDiagrams2010.csproj", "{6D3DACE7-D51B-4259-883A-6899BF4D52E2}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {B212CAFE-B4C8-44CB-B82D-AA32B55D2719}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B212CAFE-B4C8-44CB-B82D-AA32B55D2719}.Debug|Any CPU.Build.0 = Debug|Any CPU {B212CAFE-B4C8-44CB-B82D-AA32B55D2719}.Debug|x86.ActiveCfg = Debug|x86 {B212CAFE-B4C8-44CB-B82D-AA32B55D2719}.Debug|x86.Build.0 = Debug|x86 {B212CAFE-B4C8-44CB-B82D-AA32B55D2719}.Release|Any CPU.ActiveCfg = Release|Any CPU {B212CAFE-B4C8-44CB-B82D-AA32B55D2719}.Release|Any CPU.Build.0 = Release|Any CPU {B212CAFE-B4C8-44CB-B82D-AA32B55D2719}.Release|x86.ActiveCfg = Release|x86 {B212CAFE-B4C8-44CB-B82D-AA32B55D2719}.Release|x86.Build.0 = Release|x86 {1D732DFD-D631-4BFB-8057-C34B9327A08F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1D732DFD-D631-4BFB-8057-C34B9327A08F}.Debug|Any CPU.Build.0 = Debug|Any CPU {1D732DFD-D631-4BFB-8057-C34B9327A08F}.Debug|x86.ActiveCfg = Debug|x86 {1D732DFD-D631-4BFB-8057-C34B9327A08F}.Debug|x86.Build.0 = Debug|x86 {1D732DFD-D631-4BFB-8057-C34B9327A08F}.Release|Any CPU.ActiveCfg = Release|Any CPU {1D732DFD-D631-4BFB-8057-C34B9327A08F}.Release|Any CPU.Build.0 = Release|Any CPU {1D732DFD-D631-4BFB-8057-C34B9327A08F}.Release|x86.ActiveCfg = Release|x86 {1D732DFD-D631-4BFB-8057-C34B9327A08F}.Release|x86.Build.0 = Release|x86 {6D3DACE7-D51B-4259-883A-6899BF4D52E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6D3DACE7-D51B-4259-883A-6899BF4D52E2}.Debug|Any CPU.Build.0 = Debug|Any CPU {6D3DACE7-D51B-4259-883A-6899BF4D52E2}.Debug|x86.ActiveCfg = Debug|x86 {6D3DACE7-D51B-4259-883A-6899BF4D52E2}.Debug|x86.Build.0 = Debug|x86 {6D3DACE7-D51B-4259-883A-6899BF4D52E2}.Release|Any CPU.ActiveCfg = Release|Any CPU {6D3DACE7-D51B-4259-883A-6899BF4D52E2}.Release|Any CPU.Build.0 = Release|Any CPU {6D3DACE7-D51B-4259-883A-6899BF4D52E2}.Release|x86.ActiveCfg = Release|x86 {6D3DACE7-D51B-4259-883A-6899BF4D52E2}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(MonoDevelopProperties) = preSolution StartupItem = XSDDiagram.csproj EndGlobalSection EndGlobal xsddiagram-0.16/LICENSE-MS-PL.txt0000644000175000017500000000520511670473664016126 0ustar mathieumathieuMicrosoft Public License (Ms-PL) This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software. 1. Definitions The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law. A "contribution" is the original software, or any additions or changes to the software. A "contributor" is any person that distributes its contribution under this license. "Licensed patents" are a contributor's patent claims that read directly on its contribution. 2. Grant of Rights (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create. (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software. 3. Conditions and Limitations (A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks. (B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically. (C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software. (D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license. (E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement. xsddiagram-0.16/DiagramControl.cs0000644000175000017500000000252611531463334016701 0ustar mathieumathieu// XSDDiagram - A XML Schema Definition file viewer // Copyright (C) 2006-2011 Regis COSNIER // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System.Windows.Forms; namespace XSDDiagram { public partial class DiagramControl : UserControl { private static int WM_SETFOCUS = 0x0007; public DiagramControl() { InitializeComponent(); this.SetStyle( ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true); } protected override void WndProc(ref Message m) { if (m.Msg == WM_SETFOCUS) return; base.WndProc(ref m); } } } xsddiagram-0.16/test.bat0000644000175000017500000000173012074601602015103 0ustar mathieumathieustart "" /wait XSDDiagram.exe -r COLLADA -e 3 http://www.khronos.org/files/collada_schema_1_4_1.xsd start "" /wait XSDDiagram.exe Tests\COLLADASchema_141.xsd start "" /wait XSDDiagram.exe -r sphere -r COLLADA -e 3 Tests\COLLADASchema_141.xsd start "" /wait XSDDiagramConsole.exe -o Tests\file.png -r COLLADA -e 3 -z 200 Tests\COLLADASchema_141.xsd start "" /wait XSDDiagramConsole.exe -o Tests\file.jpg -r COLLADA -e 3 -z 200 Tests\COLLADASchema_141.xsd start "" /wait XSDDiagramConsole.exe -o Tests\file.emf -r COLLADA -e 3 Tests\COLLADASchema_141.xsd start "" /wait XSDDiagramConsole.exe -o Tests\file.svg -r COLLADA -e 3 Tests\COLLADASchema_141.xsd XSDDiagramConsole.exe -os png -r COLLADA -e 3 -y Tests\COLLADASchema_141.xsd > Tests\stdout.png XSDDiagramConsole.exe -os jpg -r COLLADA -e 3 -y Tests\COLLADASchema_141.xsd > Tests\stdout.jpg XSDDiagramConsole.exe -os svg -r COLLADA -e 3 -y Tests\COLLADASchema_141.xsd > Tests\stdout.svg XSDDiagramConsole.exe -h @pause xsddiagram-0.16/MainForm.cs0000644000175000017500000017707212077772656015535 0ustar mathieumathieu// XSDDiagram - A XML Schema Definition file viewer // Copyright (C) 2006-2011 Regis COSNIER // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Drawing.Imaging; using System.IO; using System.Net; using System.Text; using System.Text.RegularExpressions; using System.Windows.Forms; using System.Xml; using System.Xml.Serialization; // To generate the XMLSchema.cs file: // > xsd.exe XMLSchema.xsd /classes /l:cs /n:XMLSchema /order using XSDDiagram.Rendering; using System.Xml.Schema; using System.Diagnostics; namespace XSDDiagram { public partial class MainForm : Form { private DiagramPrinter _diagramPrinter; private Diagram diagram = new Diagram(); private Schema schema = new Schema(); private Dictionary hashtableTabPageByFilename = new Dictionary(); private string originalTitle = ""; private DiagramItem contextualMenuPointedElement = null; //private string currentLoadedSchemaFilename = ""; private TextBox textBoxAnnotation; private WebBrowser webBrowserDocumentation; private bool webBrowserSupported = true; private string backupUsername = "", backupPassword = ""; public MainForm() { InitializeComponent(); this.toolsToolStripMenuItem.Visible = !Options.IsRunningOnMono; this.originalTitle = Text; this.toolStripComboBoxSchemaElement.Sorted = true; this.toolStripComboBoxSchemaElement.Items.Add(""); this.diagram.RequestAnyElement += new Diagram.RequestAnyElementEventHandler(diagram_RequestAnyElement); this.panelDiagram.DiagramControl.ContextMenuStrip = this.contextMenuStripDiagram; this.panelDiagram.DiagramControl.MouseWheel += new MouseEventHandler(DiagramControl_MouseWheel); this.panelDiagram.DiagramControl.MouseClick += new MouseEventHandler(DiagramControl_MouseClick); this.panelDiagram.DiagramControl.MouseHover += new EventHandler(DiagramControl_MouseHover); this.panelDiagram.DiagramControl.MouseMove += new MouseEventHandler(DiagramControl_MouseMove); this.panelDiagram.VirtualSize = new Size(0, 0); this.panelDiagram.DiagramControl.Paint += new PaintEventHandler(DiagramControl_Paint); this.schema.RequestCredential += schema_RequestCredential; this.backupUsername = Options.Username; this.backupPassword = Options.Password; if (Options.IsRunningOnMono) { try { new WebBrowser().Navigate("about:blank"); } catch { webBrowserSupported = false; } } } bool schema_RequestCredential(string url, string realm, int attemptCount, out string username, out string password) { string label = "The file '" + url + "' requires a username and password."; LoginPromptForm dlg = new LoginPromptForm(label); dlg.Username = backupUsername; dlg.Password = backupPassword; if (dlg.ShowDialog(this) == DialogResult.OK) { backupUsername = username = dlg.Username; backupPassword = password = dlg.Password; return true; } username = password = ""; return false; } /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing) { if (components != null) { components.Dispose(); components = null; } if (_diagramPrinter != null) { _diagramPrinter.Dispose(); _diagramPrinter = null; } } base.Dispose(disposing); } private void MainForm_Load(object sender, EventArgs e) { this.toolStripComboBoxZoom.SelectedIndex = 8; this.toolStripComboBoxAlignement.SelectedIndex = 1; if (!string.IsNullOrEmpty(Options.InputFile)) { 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); } } } for (int i = 0; i < Options.ExpandLevel; i++) { diagram.ExpandOneLevel(); } UpdateDiagram(); } } private void openToolStripMenuItem_Click(object sender, EventArgs e) { OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "xsd files (*.xsd)|*.xsd|All files (*.*)|*.*"; openFileDialog.FilterIndex = 1; openFileDialog.RestoreDirectory = true; if (openFileDialog.ShowDialog() == DialogResult.OK) LoadSchema(openFileDialog.FileName); } private void openURLToolStripMenuItem_Click(object sender, EventArgs e) { OpenURLForm openURLForm = new OpenURLForm(""); if (openURLForm.ShowDialog() == DialogResult.OK) LoadSchema(openURLForm.URL); } private void MainForm_DragDrop(object sender, DragEventArgs e) { if (e.Data.GetDataPresent("UniformResourceLocator")) { string url = e.Data.GetData(DataFormats.Text, true) as string; if (!string.IsNullOrEmpty(url)) LoadSchema(url.Trim()); } else if (e.Data.GetDataPresent(DataFormats.FileDrop)) { string[] files = (string[])e.Data.GetData(DataFormats.FileDrop); if(files != null && files.Length > 0) LoadSchema(files[0]); } } private void MainForm_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop) || e.Data.GetDataPresent("UniformResourceLocator") ) e.Effect = DragDropEffects.Move; else e.Effect = DragDropEffects.None; } private void saveDiagramToolStripMenuItem_Click(object sender, EventArgs e) { SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = "SVG files (*.svg)|*.svg" + (Options.IsRunningOnMono ? "" : "|EMF files (*.emf)|*.emf") + "|PNG files (*.png)|*.png|JPG files (*.jpg)|*.jpg|All files (*.*)|*.*"; saveFileDialog.FilterIndex = 1; saveFileDialog.RestoreDirectory = true; if (saveFileDialog.ShowDialog() == DialogResult.OK) { string outputFilename = saveFileDialog.FileName; try { DiagramExporter exporter = new DiagramExporter(diagram); Graphics g1 = this.panelDiagram.DiagramControl.CreateGraphics(); exporter.Export(outputFilename, g1, new DiagramAlertHandler(SaveAlert)); g1.Dispose(); } catch (System.ArgumentException ex) { MessageBox.Show("You have reach the system limit.\r\nPlease remove some element from the diagram to make it smaller."); System.Diagnostics.Trace.WriteLine(ex.ToString()); } catch (System.Runtime.InteropServices.ExternalException ex) { MessageBox.Show("You have reach the system limit.\r\nPlease remove some element from the diagram to make it smaller."); System.Diagnostics.Trace.WriteLine(ex.ToString()); } catch (Exception ex) { MessageBox.Show(ex.Message); System.Diagnostics.Trace.WriteLine(ex.ToString()); } } } bool SaveAlert(string title, string message) { return MessageBox.Show(this, message, title, MessageBoxButtons.YesNo) == DialogResult.Yes; } private void exitToolStripMenuItem_Click(object sender, EventArgs e) { Close(); } private void aboutToolStripMenuItem_Click(object sender, EventArgs e) { AboutForm aboutForm = new AboutForm(); aboutForm.ShowDialog(this); } private void toolStripComboBoxSchemaElement_SelectedIndexChanged(object sender, EventArgs e) { if (this.toolStripComboBoxSchemaElement.SelectedItem != null) { XSDObject xsdObject = this.toolStripComboBoxSchemaElement.SelectedItem as XSDObject; if (xsdObject != null) SelectSchemaElement(xsdObject); } } private void toolStripButtonAddToDiagram_Click(object sender, EventArgs e) { if (this.toolStripComboBoxSchemaElement.SelectedItem != null) { XSDObject xsdObject = this.toolStripComboBoxSchemaElement.SelectedItem as XSDObject; if (xsdObject != null) this.diagram.Add(xsdObject.Tag, xsdObject.NameSpace); UpdateDiagram(); } } private void toolStripButtonAddAllToDiagram_Click(object sender, EventArgs e) { foreach (XSDObject xsdObject in this.schema.ElementsByName.Values) if (xsdObject != null) this.diagram.Add(xsdObject.Tag, xsdObject.NameSpace); UpdateDiagram(); } void DiagramControl_Paint(object sender, PaintEventArgs e) { Point virtualPoint = this.panelDiagram.VirtualPoint; e.Graphics.TranslateTransform(-(float)virtualPoint.X, -(float)virtualPoint.Y); e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; DiagramGdiRenderer.Draw(diagram, e.Graphics, new Rectangle(virtualPoint, this.panelDiagram.DiagramControl.ClientRectangle.Size)); } private void UpdateDiagram() { if (this.diagram.RootElements.Count != 0) { Graphics g = this.panelDiagram.DiagramControl.CreateGraphics(); this.diagram.Layout(g); g.Dispose(); Size bbSize = this.diagram.BoundingBox.Size + this.diagram.Padding + this.diagram.Padding; this.panelDiagram.VirtualSize = new Size((int)(bbSize.Width * this.diagram.Scale), (int)(bbSize.Height * this.diagram.Scale)); } else this.panelDiagram.VirtualSize = new Size(0, 0); } private void UpdateTitle(string filename) { if (filename.Length > 0) Text = this.originalTitle + " - " + filename; else Text = this.originalTitle; } private void LoadSchema(string schemaFilename) { Cursor = Cursors.WaitCursor; UpdateTitle(schemaFilename); this.diagram.Clear(); this.panelDiagram.VirtualSize = new Size(0, 0); this.panelDiagram.VirtualPoint = new Point(0, 0); this.panelDiagram.Clear(); this.hashtableTabPageByFilename.Clear(); this.listViewElements.Items.Clear(); this.toolStripComboBoxSchemaElement.Items.Clear(); this.toolStripComboBoxSchemaElement.Items.Add(""); this.propertyGridSchemaObject.SelectedObject = null; while (this.tabControlView.TabCount > 1) this.tabControlView.TabPages.RemoveAt(1); schema.LoadSchema(schemaFilename); foreach (XSDObject xsdObject in schema.Elements) { this.listViewElements.Items.Add(new ListViewItem(new string[] { xsdObject.Name, xsdObject.Type, xsdObject.NameSpace })).Tag = xsdObject; this.toolStripComboBoxSchemaElement.Items.Add(xsdObject); } Cursor = Cursors.Default; if (this.schema.LoadError.Count > 0) { ErrorReportForm errorReportForm = new ErrorReportForm(); errorReportForm.Errors = this.schema.LoadError; errorReportForm.ShowDialog(this); } this.diagram.ElementsByName = this.schema.ElementsByName; if (this.schema.FirstElement != null) this.toolStripComboBoxSchemaElement.SelectedItem = this.schema.FirstElement; else this.toolStripComboBoxSchemaElement.SelectedIndex = 0; tabControlView_Selected(null, null); this.tabControlView.SuspendLayout(); foreach (string filename in this.schema.XsdFilenames) { string fullPath = filename; Control browser = null; if(webBrowserSupported) browser = new WebBrowser(); else browser = new System.Windows.Forms.TextBox() { Multiline = true, ReadOnly = true, ScrollBars = ScrollBars.Both }; browser.Dock = DockStyle.Fill; browser.TabIndex = 0; try { new Uri(filename); } catch { fullPath = Path.GetFullPath(filename); } TabPage tabPage = new TabPage(Path.GetFileNameWithoutExtension(filename)); tabPage.Tag = fullPath; tabPage.ToolTipText = fullPath; tabPage.Controls.Add(browser); tabPage.UseVisualStyleBackColor = true; this.tabControlView.TabPages.Add(tabPage); this.hashtableTabPageByFilename[filename] = tabPage; } this.tabControlView.ResumeLayout(); //currentLoadedSchemaFilename = schemaFilename; } void DiagramControl_MouseClick(object sender, MouseEventArgs e) { Point location = e.Location; location.Offset(this.panelDiagram.VirtualPoint); DiagramItem resultElement; DiagramHitTestRegion resultRegion; this.diagram.HitTest(location, out resultElement, out resultRegion); if (resultRegion != DiagramHitTestRegion.None) { if (resultRegion == DiagramHitTestRegion.ChildExpandButton) { if (resultElement.HasChildElements) { if (resultElement.ChildElements.Count == 0) { this.diagram.ExpandChildren(resultElement); resultElement.ShowChildElements = true; } else resultElement.ShowChildElements ^= true; UpdateDiagram(); this.panelDiagram.ScrollTo(this.diagram.ScalePoint(resultElement.Location), true); } } else if (resultRegion == DiagramHitTestRegion.Element) { if ((ModifierKeys & (Keys.Control | Keys.Shift)) == (Keys.Control | Keys.Shift)) // For Debug { this.toolStripComboBoxSchemaElement.SelectedItem = ""; this.propertyGridSchemaObject.SelectedObject = resultElement; } else SelectDiagramElement(resultElement); } else SelectDiagramElement(null); } } private void SelectDiagramElement(DiagramItem element) { this.textBoxElementPath.Text = ""; if (element == null) { this.toolStripComboBoxSchemaElement.SelectedItem = ""; this.propertyGridSchemaObject.SelectedObject = null; this.listViewAttributes.Items.Clear(); return; } if (element is DiagramItem) { //if (this.schema.ElementsByName[element.FullName] != null) // this.toolStripComboBoxSchemaElement.SelectedItem = this.schema.ElementsByName[element.FullName]; XSDObject xsdObject; if (this.schema.ElementsByName.TryGetValue(element.FullName, out xsdObject) && xsdObject != null) this.toolStripComboBoxSchemaElement.SelectedItem = xsdObject; else this.toolStripComboBoxSchemaElement.SelectedItem = null; SelectSchemaElement(element); string path = '/' + element.Name; DiagramItem parentElement = element.Parent; while (parentElement != null) { if (parentElement.ItemType == DiagramItemType.element && !string.IsNullOrEmpty(parentElement.Name)) path = '/' + parentElement.Name + path; parentElement = parentElement.Parent; } this.textBoxElementPath.Text = path; } else { this.toolStripComboBoxSchemaElement.SelectedItem = ""; SelectSchemaElement(element); } } private void SelectSchemaElement(XSDObject xsdObject) { SelectSchemaElement(xsdObject.Tag, xsdObject.NameSpace); } private void SelectSchemaElement(DiagramItem diagramBase) { SelectSchemaElement(diagramBase.TabSchema, diagramBase.NameSpace); } private void SelectSchemaElement(XMLSchema.openAttrs openAttrs, string nameSpace) { this.propertyGridSchemaObject.SelectedObject = openAttrs; ShowDocumentation(null); XMLSchema.annotated annotated = openAttrs as XMLSchema.annotated; if (annotated != null) { // Element documentation if (annotated.annotation != null) ShowDocumentation(annotated.annotation); // Show the enumeration ShowEnumerate(annotated); // Attributes enumeration List listAttributes = new List(); if (annotated is XMLSchema.element) { XMLSchema.element element = annotated as XMLSchema.element; if (element.Item is XMLSchema.complexType) { XMLSchema.complexType complexType = element.Item as XMLSchema.complexType; listAttributes.AddRange(ShowAttributes(complexType, nameSpace)); } else if (element.type != null) { //XSDObject xsdObject = this.schema.ElementsByName[QualifiedNameToFullName("type", element.type)] as XSDObject; //if (xsdObject != null) XSDObject xsdObject; if (this.schema.ElementsByName.TryGetValue(QualifiedNameToFullName("type", element.type), out xsdObject) && xsdObject != null) { XMLSchema.annotated annotatedElement = xsdObject.Tag as XMLSchema.annotated; if (annotatedElement is XMLSchema.complexType) { XMLSchema.complexType complexType = annotatedElement as XMLSchema.complexType; listAttributes.AddRange(ShowAttributes(complexType, nameSpace)); } else { } } else { } } else { } } else if (annotated is XMLSchema.complexType) { XMLSchema.complexType complexType = annotated as XMLSchema.complexType; listAttributes.AddRange(ShowAttributes(complexType, nameSpace)); } //RC++ Original code //else //{ //} //this.listViewAttributes.Items.Clear(); //foreach (XSDAttribute attribute in listAttributes) // this.listViewAttributes.Items.Add(new ListViewItem(new string[] { attribute.Name, attribute.Type, attribute.Use, attribute.DefaultValue })).Tag = attribute; //RC-- //Adrian++ //This part i modify else if (annotated is XMLSchema.simpleType) { XMLSchema.attribute attr = new XMLSchema.attribute(); XMLSchema.localSimpleType def = new XMLSchema.localSimpleType(); def.Item = (annotated as XMLSchema.simpleType).Item; attr.simpleType = def; string type = ""; if (def.Item is XMLSchema.restriction) type = (def.Item as XMLSchema.restriction).@base.Name; XSDAttribute XSDattr = new XSDAttribute("filename", (annotated as XMLSchema.simpleType).name, "namespace", type, false, "", "", attr); listAttributes.Add(XSDattr); } //This part i modify this.listViewAttributes.Items.Clear(); listAttributes.Reverse(); foreach (XSDAttribute attribute in listAttributes) { string s = ""; //dgis fix github issue 2 (attribute.Tag == null ???) if (attribute.Tag != null && attribute.Tag.simpleType != null && attribute.Tag.simpleType.Item is XMLSchema.restriction) { XMLSchema.restriction r = attribute.Tag.simpleType.Item as XMLSchema.restriction; if (r.Items != null) { for (int i = 0; i < r.Items.Length; i++) { s += r.ItemsElementName[i].ToString() + "(" + r.Items[i].id + " " + r.Items[i].value + ");"; } } } this.listViewAttributes.Items.Add(new ListViewItem(new string[] { attribute.Name, attribute.Type, attribute.Use, attribute.DefaultValue, s })).Tag = attribute; } //Adrian-- } } private List ShowAttributes(XMLSchema.complexType complexType, string nameSpace) { List listAttributes = new List(); ParseComplexTypeAttributes(nameSpace, listAttributes, complexType, false); return listAttributes; } private void ParseComplexTypeAttributes(string nameSpace, List listAttributes, XMLSchema.complexType complexType, bool isRestriction) { if (complexType.ItemsElementName != null) { for (int i = 0; i < complexType.ItemsElementName.Length; i++) { switch (complexType.ItemsElementName[i]) { case XMLSchema.ItemsChoiceType4.attribute: { XMLSchema.attribute attribute = complexType.Items[i] as XMLSchema.attribute; ParseAttribute(nameSpace, listAttributes, attribute, false); } break; case XMLSchema.ItemsChoiceType4.attributeGroup: { XMLSchema.attributeGroup attributeGroup = complexType.Items[i] as XMLSchema.attributeGroup; ParseAttributeGroup(nameSpace, listAttributes, attributeGroup, false); } break; case XMLSchema.ItemsChoiceType4.anyAttribute: XMLSchema.wildcard wildcard = complexType.Items[i] as XMLSchema.wildcard; XSDAttribute xsdAttribute = new XSDAttribute("", "*", wildcard.@namespace, "", false, null, null, null); listAttributes.Add(xsdAttribute); break; case XMLSchema.ItemsChoiceType4.simpleContent: case XMLSchema.ItemsChoiceType4.complexContent: XMLSchema.annotated annotatedContent = null; if (complexType.Items[i] is XMLSchema.complexContent) { XMLSchema.complexContent complexContent = complexType.Items[i] as XMLSchema.complexContent; annotatedContent = complexContent.Item; } else if (complexType.Items[i] is XMLSchema.simpleContent) { XMLSchema.simpleContent simpleContent = complexType.Items[i] as XMLSchema.simpleContent; annotatedContent = simpleContent.Item; } if (annotatedContent is XMLSchema.extensionType) { XMLSchema.extensionType extensionType = annotatedContent as XMLSchema.extensionType; //XSDObject xsdExtensionType = this.schema.ElementsByName[QualifiedNameToFullName("type", extensionType.@base)] as XSDObject; //if (xsdExtensionType != null) XSDObject xsdExtensionType; if (this.schema.ElementsByName.TryGetValue(QualifiedNameToFullName("type", extensionType.@base), out xsdExtensionType) && xsdExtensionType != null) { XMLSchema.annotated annotatedExtension = xsdExtensionType.Tag as XMLSchema.annotated; if (annotatedExtension != null) { if (annotatedExtension is XMLSchema.complexType) ParseComplexTypeAttributes(extensionType.@base.Namespace, listAttributes, annotatedExtension as XMLSchema.complexType, false); } } if (extensionType.Items != null) { foreach (XMLSchema.annotated annotated in extensionType.Items) { if (annotated is XMLSchema.attribute) { ParseAttribute(nameSpace, listAttributes, annotated as XMLSchema.attribute, false); } else if (annotated is XMLSchema.attributeGroup) { ParseAttributeGroup(nameSpace, listAttributes, annotated as XMLSchema.attributeGroup, false); } } } } else if (annotatedContent is XMLSchema.restrictionType) { XMLSchema.restrictionType restrictionType = annotatedContent as XMLSchema.restrictionType; //XSDObject xsdRestrictionType = this.schema.ElementsByName[QualifiedNameToFullName("type", restrictionType.@base)] as XSDObject; //if (xsdRestrictionType != null) XSDObject xsdRestrictionType; if (this.schema.ElementsByName.TryGetValue(QualifiedNameToFullName("type", restrictionType.@base), out xsdRestrictionType) && xsdRestrictionType != null) { XMLSchema.annotated annotatedRestriction = xsdRestrictionType.Tag as XMLSchema.annotated; if (annotatedRestriction != null) { if (annotatedRestriction is XMLSchema.complexType) ParseComplexTypeAttributes(restrictionType.@base.Namespace, listAttributes, annotatedRestriction as XMLSchema.complexType, false); } } if (restrictionType.Items1 != null) { foreach (XMLSchema.annotated annotated in restrictionType.Items1) { if (annotated is XMLSchema.attribute) { ParseAttribute(nameSpace, listAttributes, annotated as XMLSchema.attribute, true); } else if (annotated is XMLSchema.attributeGroup) { ParseAttributeGroup(nameSpace, listAttributes, annotated as XMLSchema.attributeGroup, true); } } } } break; } } } else { } } private void ParseAttribute(string nameSpace, List listAttributes, XMLSchema.attribute attribute, bool isRestriction) { bool isReference = false; string filename = ""; string name = attribute.name; string type = ""; if (attribute.@ref != null) { object o = null; this.schema.AttributesByName.TryGetValue(QualifiedNameToFullName("attribute", attribute.@ref), out o); if (o is XSDAttribute) { XSDAttribute xsdAttributeInstance = o as XSDAttribute; ParseAttribute(nameSpace, listAttributes, xsdAttributeInstance.Tag, isRestriction); return; } else // Reference not found! { type = QualifiedNameToAttributeTypeName(attribute.@ref); name = attribute.@ref.Name; nameSpace = attribute.@ref.Namespace; isReference = true; } } else if (attribute.type != null) { type = QualifiedNameToAttributeTypeName(attribute.type); nameSpace = attribute.type.Namespace; } else if (attribute.simpleType != null) { XMLSchema.simpleType simpleType = attribute.simpleType as XMLSchema.simpleType; if (simpleType.Item is XMLSchema.restriction) { XMLSchema.restriction restriction = simpleType.Item as XMLSchema.restriction; type = QualifiedNameToAttributeTypeName(restriction.@base); nameSpace = restriction.@base.Namespace; } else if (simpleType.Item is XMLSchema.list) { XMLSchema.list list = simpleType.Item as XMLSchema.list; type = QualifiedNameToAttributeTypeName(list.itemType); nameSpace = list.itemType.Namespace; } else { } } else { } if (string.IsNullOrEmpty(attribute.name) && string.IsNullOrEmpty(name)) { } if (isRestriction) { if (attribute.use == XMLSchema.attributeUse.prohibited) { foreach (XSDAttribute xsdAttribute in listAttributes) { if (xsdAttribute.Name == name) { //listAttributes.Remove(xsdAttribute); xsdAttribute.Use = attribute.use.ToString(); break; } } } } else { XSDAttribute xsdAttribute = new XSDAttribute(filename, name, nameSpace, type, isReference, attribute.@default, attribute.use.ToString(), attribute); listAttributes.Insert(0, xsdAttribute); } } private void ParseAttributeGroup(string nameSpace, List listAttributes, XMLSchema.attributeGroup attributeGroup, bool isRestriction) { if (attributeGroup is XMLSchema.attributeGroupRef && attributeGroup.@ref != null) { object o = null; this.schema.AttributesByName.TryGetValue(QualifiedNameToFullName("attributeGroup", attributeGroup.@ref), out o); if (o is XSDAttributeGroup) { XSDAttributeGroup xsdAttributeGroup = o as XSDAttributeGroup; XMLSchema.attributeGroup attributeGroupInstance = xsdAttributeGroup.Tag; foreach (XMLSchema.annotated annotated in attributeGroupInstance.Items) { if (annotated is XMLSchema.attribute) { ParseAttribute(nameSpace, listAttributes, annotated as XMLSchema.attribute, isRestriction); } else if (annotated is XMLSchema.attributeGroup) { ParseAttributeGroup(nameSpace, listAttributes, annotated as XMLSchema.attributeGroup, isRestriction); } } } } else { } } private static string QualifiedNameToFullName(string type, System.Xml.XmlQualifiedName xmlQualifiedName) { return xmlQualifiedName.Namespace + ':' + type + ':' + xmlQualifiedName.Name; } private static string QualifiedNameToAttributeTypeName(System.Xml.XmlQualifiedName xmlQualifiedName) { return xmlQualifiedName.Name + " : " + xmlQualifiedName.Namespace; } private void ShowEnumerate(XMLSchema.attribute attribute) { this.listViewEnumerate.Items.Clear(); if (attribute != null) { if (attribute.type != null) { //XSDObject xsdObject = this.schema.ElementsByName[QualifiedNameToFullName("type", attribute.type)] as XSDObject; //if (xsdObject != null) XSDObject xsdObject; if (this.schema.ElementsByName.TryGetValue(QualifiedNameToFullName("type", attribute.type), out xsdObject) && xsdObject != null) { XMLSchema.annotated annotatedElement = xsdObject.Tag as XMLSchema.annotated; if (annotatedElement is XMLSchema.simpleType) ShowEnumerate(annotatedElement as XMLSchema.simpleType); } } else if (attribute.simpleType != null) { ShowEnumerate(attribute.simpleType); } } } private void ShowEnumerate(XMLSchema.annotated annotated) { this.listViewEnumerate.Items.Clear(); if (annotated != null) { XMLSchema.element element = annotated as XMLSchema.element; if (element != null && element.type != null) { //XSDObject xsdObject = this.schema.ElementsByName[QualifiedNameToFullName("type", element.type)] as XSDObject; //if (xsdObject != null) XSDObject xsdObject; if (this.schema.ElementsByName.TryGetValue(QualifiedNameToFullName("type", element.type), out xsdObject) && xsdObject != null) { XMLSchema.annotated annotatedElement = xsdObject.Tag as XMLSchema.annotated; if (annotatedElement is XMLSchema.simpleType) ShowEnumerate(annotatedElement as XMLSchema.simpleType); } } } } private void ShowEnumerate(XMLSchema.simpleType simpleType) { if (simpleType != null) { if (simpleType.Item != null) { XMLSchema.restriction restriction = simpleType.Item as XMLSchema.restriction; if (restriction != null && restriction.ItemsElementName != null) { for (int i = 0; i < restriction.ItemsElementName.Length; i++) { if (restriction.ItemsElementName[i] == XMLSchema.ItemsChoiceType.enumeration) { XMLSchema.facet facet = restriction.Items[i] as XMLSchema.facet; if (facet != null) this.listViewEnumerate.Items.Add(facet.value).Tag = facet; } } if (this.listViewEnumerate.Items.Count != 0) this.listViewEnumerate.Columns[0].Width = -1; } } } } private void ShowDocumentation(XMLSchema.annotation annotation) { if (this.textBoxAnnotation == null) { // // webBrowserDocumentation // if(webBrowserSupported) { this.webBrowserDocumentation = new System.Windows.Forms.WebBrowser(); this.webBrowserDocumentation.Dock = System.Windows.Forms.DockStyle.Fill; this.webBrowserDocumentation.Location = new System.Drawing.Point(0, 0); this.webBrowserDocumentation.MinimumSize = new System.Drawing.Size(20, 20); this.webBrowserDocumentation.Name = "webBrowserDocumentation"; this.webBrowserDocumentation.Size = new System.Drawing.Size(214, 117); this.webBrowserDocumentation.TabIndex = 1; this.splitContainerDiagramElement.Panel2.Controls.Add(this.webBrowserDocumentation); } else this.webBrowserDocumentation = null; // // textBoxAnnotation // this.textBoxAnnotation = new System.Windows.Forms.TextBox(); this.textBoxAnnotation.Dock = System.Windows.Forms.DockStyle.Fill; this.textBoxAnnotation.Location = new System.Drawing.Point(0, 0); this.textBoxAnnotation.Multiline = true; this.textBoxAnnotation.Name = "textBoxAnnotation"; this.textBoxAnnotation.ReadOnly = true; this.textBoxAnnotation.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; this.textBoxAnnotation.Size = new System.Drawing.Size(214, 117); this.textBoxAnnotation.TabIndex = 0; this.splitContainerDiagramElement.Panel2.Controls.Add(this.textBoxAnnotation); } if (annotation == null) { this.textBoxAnnotation.Text = ""; this.textBoxAnnotation.Visible = true; if (this.webBrowserDocumentation != null) this.webBrowserDocumentation.Visible = false; return; } foreach (object o in annotation.Items) { if (o is XMLSchema.documentation) { XMLSchema.documentation documentation = o as XMLSchema.documentation; if (documentation.Any != null && documentation.Any.Length > 0) { string text = documentation.Any[0].Value; text = text.Replace("\n", " "); text = text.Replace("\t", " "); text = text.Replace("\r", ""); text = Regex.Replace(text, " +", " "); text = text.Trim(); //text = text.Replace(, " "); //text = text.Trim('\n', '\t', '\r', ' '); //string[] textLines = text.Split(new char[] { '\n' }); //for (int i = 0; i < textLines.Length; i++) // textLines[i] = textLines[i].Trim('\n', '\t', '\r', ' '); //text = string.Join("\r\n", textLines); this.textBoxAnnotation.Text = text; this.textBoxAnnotation.Visible = true; if (this.webBrowserDocumentation != null) this.webBrowserDocumentation.Visible = false; } else if (documentation.source != null) { if (this.webBrowserDocumentation != null) { this.textBoxAnnotation.Visible = false; this.webBrowserDocumentation.Visible = true; this.webBrowserDocumentation.Navigate(documentation.source); } else { this.textBoxAnnotation.Text = documentation.source; this.textBoxAnnotation.Visible = true; } } break; } } } private void listViewAttributes_SelectedIndexChanged(object sender, EventArgs e) { if (this.listViewAttributes.SelectedItems.Count > 0) { XSDAttribute xsdAttribute = this.listViewAttributes.SelectedItems[0].Tag as XSDAttribute; XMLSchema.attribute attribute = xsdAttribute.Tag; if (attribute != null && attribute.annotation != null) ShowDocumentation(attribute.annotation); else ShowDocumentation(null); ShowEnumerate(attribute); } } private void listViewEnumerate_SelectedIndexChanged(object sender, EventArgs e) { if (this.listViewEnumerate.SelectedItems.Count > 0) { XMLSchema.facet facet = this.listViewEnumerate.SelectedItems[0].Tag as XMLSchema.facet; if (facet != null && facet.annotation != null) ShowDocumentation(facet.annotation); else ShowDocumentation(null); } } private void toolStripComboBoxZoom_SelectedIndexChanged(object sender, EventArgs e) { try { string zoomString = this.toolStripComboBoxZoom.SelectedItem as string; zoomString = zoomString.Replace("%", ""); float zoom = (float)int.Parse(zoomString) / 100.0f; if (zoom >= 0.10 && zoom <= 10) { //Point virtualCenter = this.panelDiagram.VirtualPoint; //virtualCenter.Offset(this.panelDiagram.DiagramControl.Width / 2, this.panelDiagram.DiagramControl.Height / 2); //Size oldSize = this.panelDiagram.VirtualSize; //this.diagram.Scale = zoom; //UpdateDiagram(); //Size newSize = this.panelDiagram.VirtualSize; //virtualCenter.X = (int)((float)newSize.Width / (float)oldSize.Width * (float)virtualCenter.X); //virtualCenter.Y = (int)((float)newSize.Height / (float)oldSize.Height * (float)virtualCenter.Y); //if (virtualCenter.X > this.diagram.BoundingBox.Right) // virtualCenter.X = this.diagram.BoundingBox.Right; //if (virtualCenter.Y > this.diagram.BoundingBox.Bottom) // virtualCenter.Y = this.diagram.BoundingBox.Bottom; //this.panelDiagram.ScrollTo(virtualCenter, true); Point virtualCenter = this.panelDiagram.VirtualPoint; virtualCenter.Offset(this.panelDiagram.DiagramControl.Width / 2, this.panelDiagram.DiagramControl.Height / 2); Size oldSize = this.panelDiagram.VirtualSize; this.diagram.Scale = zoom; UpdateDiagram(); Size newSize = this.panelDiagram.VirtualSize; Point newVirtualCenter = new Point(); newVirtualCenter.X = (int)((float)newSize.Width / (float)oldSize.Width * (float)virtualCenter.X); newVirtualCenter.Y = (int)((float)newSize.Height / (float)oldSize.Height * (float)virtualCenter.Y); if (newVirtualCenter.X > this.diagram.BoundingBox.Right) newVirtualCenter.X = this.diagram.BoundingBox.Right; if (newVirtualCenter.Y > this.diagram.BoundingBox.Bottom) newVirtualCenter.Y = this.diagram.BoundingBox.Bottom; this.panelDiagram.ScrollTo(newVirtualCenter, true); } } catch { } } private void toolStripComboBoxZoom_TextChanged(object sender, EventArgs e) { //try //{ // string zoomString = this.toolStripComboBoxZoom.SelectedItem as string; // zoomString = zoomString.Replace("%", ""); // float zoom = (float)int.Parse(zoomString) / 100.0f; // if (zoom >= 0.10 && zoom <= 10) // { // this.diagram.Scale = zoom; // UpdateDiagram(); // } //} //catch { } } void DiagramControl_MouseWheel(object sender, MouseEventArgs e) { if ((ModifierKeys & Keys.Control) == Keys.Control) { if (e.Delta > 0) { if (this.toolStripComboBoxZoom.SelectedIndex < this.toolStripComboBoxZoom.Items.Count - 1) this.toolStripComboBoxZoom.SelectedIndex++; } else { if (this.toolStripComboBoxZoom.SelectedIndex > 0) this.toolStripComboBoxZoom.SelectedIndex--; } } } private void pageToolStripMenuItem_Click(object sender, EventArgs e) { try { if (_diagramPrinter == null) { _diagramPrinter = new DiagramPrinter(); } _diagramPrinter.Diagram = diagram; _diagramPrinter.PageSetup(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void printPreviewToolStripMenuItem_Click(object sender, EventArgs e) { try { if (_diagramPrinter == null) { _diagramPrinter = new DiagramPrinter(); } _diagramPrinter.Diagram = diagram; _diagramPrinter.PrintPreview(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void printToolStripMenuItem_Click(object sender, EventArgs e) { try { if (_diagramPrinter == null) { _diagramPrinter = new DiagramPrinter(); } _diagramPrinter.Diagram = diagram; _diagramPrinter.Print(true, Options.IsRunningOnMono); } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void toolStripButtonTogglePanel_Click(object sender, EventArgs e) { this.splitContainerMain.Panel2Collapsed = !this.toolStripButtonTogglePanel.Checked; } private void contextMenuStripDiagram_Opened(object sender, EventArgs e) { this.gotoXSDFileToolStripMenuItem.Enabled = false; this.removeFromDiagramToolStripMenuItem.Enabled = false; Point contextualMenuMousePosition = this.panelDiagram.DiagramControl.PointToClient(MousePosition); contextualMenuMousePosition.Offset(this.panelDiagram.VirtualPoint); DiagramItem resultElement; DiagramHitTestRegion resultRegion; this.diagram.HitTest(contextualMenuMousePosition, out resultElement, out resultRegion); if (resultRegion != DiagramHitTestRegion.None) { if (resultRegion == DiagramHitTestRegion.Element) // && resultElement.Parent == null) { this.contextualMenuPointedElement = resultElement; this.gotoXSDFileToolStripMenuItem.Enabled = this.schema.ElementsByName.ContainsKey(this.contextualMenuPointedElement.FullName); this.removeFromDiagramToolStripMenuItem.Enabled = true; } } } private void gotoXSDFileToolStripMenuItem_Click(object sender, EventArgs e) { if (this.contextualMenuPointedElement != null) { //XSDObject xsdObject = this.schema.ElementsByName[this.contextualMenuPointedElement.FullName] as XSDObject; //if (xsdObject != null) XSDObject xsdObject; if (this.schema.ElementsByName.TryGetValue(this.contextualMenuPointedElement.FullName, out xsdObject) && xsdObject != null) { TabPage tabPage = null; if (this.hashtableTabPageByFilename.TryGetValue(xsdObject.Filename, out tabPage) && tabPage != null) this.tabControlView.SelectedTab = tabPage; } } this.contextualMenuPointedElement = null; } private void removeFromDiagramToolStripMenuItem_Click(object sender, EventArgs e) { if (this.contextualMenuPointedElement != null) { DiagramItem parentDiagram = this.contextualMenuPointedElement.Parent; this.diagram.Remove(this.contextualMenuPointedElement); UpdateDiagram(); if (parentDiagram != null) this.panelDiagram.ScrollTo(this.diagram.ScalePoint(parentDiagram.Location), true); else this.panelDiagram.ScrollTo(new Point(0, 0)); } this.contextualMenuPointedElement = null; } private void tabControlView_Selected(object sender, TabControlEventArgs e) { if (tabControlView.SelectedTab.Tag != null) { WebBrowser webBrowser = tabControlView.SelectedTab.Controls[0] as WebBrowser; if (webBrowser != null) { string url = tabControlView.SelectedTab.Tag as string; //if (webBrowser.Url == null || webBrowser.Url != new Uri(url)) if (webBrowser.Document == null) webBrowser.Navigate(url); webBrowser.Select(); } else { TextBox textBrowser = tabControlView.SelectedTab.Controls[0] as TextBox; if (textBrowser != null) { string url = tabControlView.SelectedTab.Tag as string; if (string.IsNullOrEmpty(textBrowser.Text)) { try { //HttpWebRequest webRequestObject = (HttpWebRequest)WebRequest.Create(url); ////WebRequestObject.UserAgent = ".NET Framework/2.0"; ////WebRequestObject.Referer = "http://www.example.com/"; //WebResponse response = webRequestObject.GetResponse(); //Stream webStream = response.GetResponseStream(); //StreamReader reader = new StreamReader(webStream); //textBrowser.Text = reader.ReadToEnd(); //reader.Close(); //webStream.Close(); //response.Close(); WebClient client = new WebClient(); client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)"); Stream data = client.OpenRead(url); StreamReader reader = new StreamReader(data); textBrowser.Text = reader.ReadToEnd().Replace("\r\n", "\n").Replace("\n", "\r\n"); data.Close(); reader.Close(); } catch (Exception ex) { textBrowser.Text = ex.Message; } } textBrowser.Select(); } } } } private void tabControlView_Click(object sender, EventArgs e) { if (tabControlView.SelectedTab.Tag != null) { Control webBrowser = tabControlView.SelectedTab.Controls[0] as Control; if (webBrowser != null) webBrowser.Select(); } } private void tabControlView_Enter(object sender, EventArgs e) { if (tabControlView.SelectedTab != null && tabControlView.SelectedTab.Tag != null) { Control webBrowser = tabControlView.SelectedTab.Controls[0] as Control; if (webBrowser != null) webBrowser.Focus(); } else this.panelDiagram.Focus(); } private void registerToolStripMenuItem_Click(object sender, EventArgs e) { FileShellExtension.Register(Microsoft.Win32.Registry.GetValue("HKEY_CLASSES_ROOT\\.xsd", null, "xsdfile") as string, "XSDDiagram", "XSD Diagram", string.Format("\"{0}\" \"%L\"", Application.ExecutablePath)); } private void unregisterToolStripMenuItem_Click(object sender, EventArgs e) { FileShellExtension.Unregister(Microsoft.Win32.Registry.GetValue("HKEY_CLASSES_ROOT\\.xsd", null, "xsdfile") as string, "XSDDiagram"); } private void toolStripButtonShowReferenceBoundingBox_Click(object sender, EventArgs e) { this.diagram.ShowBoundingBox = this.toolStripButtonShowReferenceBoundingBox.Checked; UpdateDiagram(); } private void toolStripComboBoxAlignement_SelectedIndexChanged(object sender, EventArgs e) { switch (this.toolStripComboBoxAlignement.SelectedItem as string) { case "Top": this.diagram.Alignement = DiagramAlignement.Near; break; case "Center": this.diagram.Alignement = DiagramAlignement.Center; break; case "Bottom": this.diagram.Alignement = DiagramAlignement.Far; break; } UpdateDiagram(); } void diagram_RequestAnyElement(DiagramItem diagramElement, out XMLSchema.element element, out string nameSpace) { element = null; nameSpace = ""; //ElementsForm elementsForm = new ElementsForm(); //elementsForm.Location = MousePosition; //diagramElement.Location //MousePosition; //elementsForm.ListBoxElements.Items.Clear(); //elementsForm.ListBoxElements.Items.Insert(0, "(Cancel)"); //foreach (XSDObject xsdObject in this.schema.ElementsByName.Values) // if (xsdObject != null && xsdObject.Type == "element") // elementsForm.ListBoxElements.Items.Add(xsdObject); //if (elementsForm.ShowDialog(this.diagramControl) == DialogResult.OK && (elementsForm.ListBoxElements.SelectedItem as XSDObject) != null) //{ // XSDObject xsdObject = elementsForm.ListBoxElements.SelectedItem as XSDObject; // element = xsdObject.Tag as XMLSchema.element; // nameSpace = xsdObject.NameSpace; //} } private void listViewElement_Click(object sender, EventArgs e) { if (this.listViewElements.SelectedItems.Count > 0) SelectSchemaElement(this.listViewElements.SelectedItems[0].Tag as XSDObject); } private void listViewElement_DoubleClick(object sender, EventArgs e) { if (this.listViewElements.SelectedItems.Count > 0) { foreach (ListViewItem lvi in this.listViewElements.SelectedItems) { XSDObject xsdObject = lvi.Tag as XSDObject; this.diagram.Add(xsdObject.Tag as XMLSchema.openAttrs, xsdObject.NameSpace); //switch (xsdObject.Type) //{ // case "element": // this.diagram.AddElement(xsdObject.Tag as XMLSchema.element, xsdObject.NameSpace); // break; // case "group": // this.diagram.AddCompositors(xsdObject.Tag as XMLSchema.group, xsdObject.NameSpace); // break; // case "complexType": // this.diagram.AddComplexType(xsdObject.Tag as XMLSchema.complexType, xsdObject.NameSpace); // break; // case "simpleType": // this.diagram.Add(xsdObject.Tag as XMLSchema.simpleType, xsdObject.NameSpace); // break; //} } UpdateDiagram(); } } private void expandOneLevelToolStripMenuItem_Click(object sender, EventArgs e) { this.diagram.ExpandOneLevel(); UpdateDiagram(); } // Implements the manual sorting of items by columns. class ListViewItemComparer : IComparer { private int column; private ListView listView; public ListViewItemComparer(int column, ListView listView) { this.column = column; this.listView = listView; switch (this.listView.Sorting) { case SortOrder.None: this.listView.Sorting = SortOrder.Ascending; break; case SortOrder.Ascending: this.listView.Sorting = SortOrder.Descending; break; case SortOrder.Descending: this.listView.Sorting = SortOrder.Ascending; break; } } public int Compare(object x, object y) { int result = 0; if (this.listView.Sorting == SortOrder.Ascending) result = String.Compare(((ListViewItem)x).SubItems[this.column].Text, ((ListViewItem)y).SubItems[column].Text); if (this.listView.Sorting == SortOrder.Descending) result = -String.Compare(((ListViewItem)x).SubItems[this.column].Text, ((ListViewItem)y).SubItems[column].Text); return result; } } private void listViewElement_ColumnClick(object sender, ColumnClickEventArgs e) { this.listViewElements.ListViewItemSorter = new ListViewItemComparer(e.Column, this.listViewElements); } private void listViewAttributes_ColumnClick(object sender, ColumnClickEventArgs e) { this.listViewAttributes.ListViewItemSorter = new ListViewItemComparer(e.Column, this.listViewAttributes); } private void toolStripButtonRemoveAllFromDiagram_Click(object sender, EventArgs e) { this.diagram.RemoveAll(); UpdateDiagram(); this.panelDiagram.VirtualPoint = new Point(0, 0); this.panelDiagram.Clear(); } private void listView_AfterLabelEdit(object sender, LabelEditEventArgs e) { e.CancelEdit = true; } private void nextTabToolStripMenuItem_Click(object sender, EventArgs e) { int index = this.tabControlView.SelectedIndex; ++index; this.tabControlView.SelectedIndex = index % this.tabControlView.TabCount; } private void previousTabToolStripMenuItem_Click(object sender, EventArgs e) { int index = this.tabControlView.SelectedIndex; --index; if (index < 0) index = this.tabControlView.TabCount - 1; this.tabControlView.SelectedIndex = index; } private void ListViewToString(ListView listView, bool selectedLineOnly) { string result = ""; if (selectedLineOnly) { if (listView.SelectedItems.Count > 0) { foreach (ColumnHeader columnHeader in listView.Columns) { if (columnHeader.Index > 0) result += "\t"; result += listView.SelectedItems[0].SubItems[columnHeader.Index].Text; } } } else { foreach (ListViewItem lvi in listView.Items) { foreach (ColumnHeader columnHeader in listView.Columns) { if (columnHeader.Index > 0) result += "\t"; result += lvi.SubItems[columnHeader.Index].Text; } result += "\r\n"; } } if (result.Length > 0) Clipboard.SetText(result); } private void toolStripMenuItemAttributesCopyLine_Click(object sender, EventArgs e) { ListViewToString(this.listViewAttributes, true); } private void toolStripMenuItemAttributesCopyList_Click(object sender, EventArgs e) { ListViewToString(this.listViewAttributes, false); } private void contextMenuStripAttributes_Opening(object sender, CancelEventArgs e) { this.toolStripMenuItemAttributesCopyLine.Enabled = (this.listViewAttributes.SelectedItems.Count == 1); this.toolStripMenuItemAttributesCopyList.Enabled = (this.listViewAttributes.Items.Count > 0); } private void toolStripMenuItemEnumerateCopyLine_Click(object sender, EventArgs e) { ListViewToString(this.listViewEnumerate, true); } private void toolStripMenuItemEnumerateCopyList_Click(object sender, EventArgs e) { ListViewToString(this.listViewEnumerate, false); } private void contextMenuStripEnumerate_Opening(object sender, CancelEventArgs e) { this.toolStripMenuItemEnumerateCopyLine.Enabled = (this.listViewEnumerate.SelectedItems.Count == 1); this.toolStripMenuItemEnumerateCopyList.Enabled = (this.listViewEnumerate.Items.Count > 0); } private void toolStripMenuItemElementsCopyLine_Click(object sender, EventArgs e) { ListViewToString(this.listViewElements, true); } private void toolStripMenuItemElementsCopyList_Click(object sender, EventArgs e) { ListViewToString(this.listViewElements, false); } private void contextMenuStripElements_Opening(object sender, CancelEventArgs e) { this.toolStripMenuItemElementsCopyLine.Enabled = (this.listViewElements.SelectedItems.Count == 1); this.toolStripMenuItemElementsCopyList.Enabled = (this.listViewElements.Items.Count > 0); } private void listViewElements_ItemDrag(object sender, ItemDragEventArgs e) { listViewElements.DoDragDrop(e.Item, DragDropEffects.Copy); } private void panelDiagram_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(typeof(ListViewItem))) { ListViewItem lvi = e.Data.GetData(typeof(ListViewItem)) as ListViewItem; if (lvi != null) { XSDObject xsdObject = lvi.Tag as XSDObject; switch (xsdObject.Type) { case "element": case "group": case "complexType": e.Effect = DragDropEffects.Copy; break; } } } else if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.Move; } private void panelDiagram_DragDrop(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(typeof(ListViewItem))) { ListViewItem lvi = e.Data.GetData(typeof(ListViewItem)) as ListViewItem; if (lvi != null) { listViewElement_DoubleClick(sender, e); } } else if (e.Data.GetDataPresent(DataFormats.FileDrop)) MainForm_DragDrop(sender, e); } void DiagramControl_MouseMove(object sender, MouseEventArgs e) { //toolTip.Show("Coucou", panelDiagram.DiagramControl, 200); } void DiagramControl_MouseHover(object sender, EventArgs e) { } //private void toolTip_Popup(object sender, PopupEventArgs e) //{ // //toolTip.SetToolTip(e.AssociatedControl, "AAAAAAAAAA"); //} private void toolTip_Draw(object sender, DrawToolTipEventArgs e) { Point diagramMousePosition = e.AssociatedControl.PointToClient(MousePosition); string text = string.Format("AAAA {0} {1}\nA Que\n\nCoucou", diagramMousePosition.X, diagramMousePosition.Y); Size textSize = TextRenderer.MeasureText(text, e.Font); Rectangle newBound = new Rectangle(e.Bounds.X + 20, e.Bounds.Y - 20, textSize.Width + 10, textSize.Height + 10); DrawToolTipEventArgs newArgs = new DrawToolTipEventArgs(e.Graphics, e.AssociatedWindow, e.AssociatedControl, newBound, text, this.BackColor, this.ForeColor, e.Font); newArgs.DrawBackground(); newArgs.DrawBorder(); newArgs.DrawText(TextFormatFlags.TextBoxControl); //e.DrawBackground(); //e.DrawBorder(); //using (StringFormat sf = new StringFormat()) //{ // sf.Alignment = StringAlignment.Center; // sf.LineAlignment = StringAlignment.Center; // sf.HotkeyPrefix = System.Drawing.Text.HotkeyPrefix.None; // sf.FormatFlags = StringFormatFlags.NoWrap; // using (Font f = new Font("Tahoma", 9)) // { // e.Graphics.DrawString(text, f, // SystemBrushes.ActiveCaptionText, e.Bounds, sf); // } //} //e.DrawText(); } private void validateXMLFileToolStripMenuItem_Click(object sender, EventArgs e) { OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "xml files (*.xml)|*.xml|All files (*.*)|*.*"; openFileDialog.FilterIndex = 2; openFileDialog.RestoreDirectory = true; if (openFileDialog.ShowDialog() == DialogResult.OK) { try { Cursor = Cursors.WaitCursor; validationErrorMessages.Clear(); StreamReader streamReader = new StreamReader(openFileDialog.FileName); string xmlSource = streamReader.ReadToEnd(); streamReader.Close(); //XmlDocument x = new XmlDocument(); //x.LoadXml(xmlSource); XmlReaderSettings settings = new XmlReaderSettings(); settings.CloseInput = true; settings.ValidationType = ValidationType.Schema; settings.ProhibitDtd = false; settings.XmlResolver = null; settings.ValidationEventHandler += new ValidationEventHandler(ValidationHandler); settings.ValidationFlags = XmlSchemaValidationFlags.ReportValidationWarnings | XmlSchemaValidationFlags.ProcessIdentityConstraints | XmlSchemaValidationFlags.ProcessInlineSchema | XmlSchemaValidationFlags.ProcessSchemaLocation ; //| XmlSchemaValidationFlags.AllowXmlAttributes; //settings.Schemas.Add("http://www.collada.org/2005/11/COLLADASchema", currentLoadedSchemaFilename); //settings.Schemas.Add(null, currentLoadedSchemaFilename); // = sc; List schemas = new List(schema.XsdFilenames); schemas.Reverse(); foreach (string schemaFilename in schemas) { try { settings.Schemas.Add(null, schemaFilename); } catch (Exception ex) { validationErrorMessages.Add(string.Format("Error while parsing {0}, Message: {1}", schemaFilename, ex.Message)); } } StringReader r = new StringReader(xmlSource); using (XmlReader validatingReader = XmlReader.Create(r, settings)) { while (validatingReader.Read()) { /* just loop through document */ } } Cursor = Cursors.Default; ErrorReportForm errorReportForm = new ErrorReportForm(); errorReportForm.Errors = validationErrorMessages; errorReportForm.ShowDialog(this); } catch (Exception ex) { Cursor = Cursors.Default; validationErrorMessages.Add(string.Format("Error while validating {0}, Message: {1}", openFileDialog.FileName, ex.Message)); //MessageBox.Show("Cannot validate: " + ex.Message); ErrorReportForm errorReportForm = new ErrorReportForm(); errorReportForm.Errors = validationErrorMessages; errorReportForm.ShowDialog(this); } Cursor = Cursors.Default; if (validationErrorMessages.Count == 0) MessageBox.Show("No issue found"); } } static List validationErrorMessages = new List(); public static void ValidationHandler(object sender, ValidationEventArgs e) { //if (e.Severity == XmlSeverityType.Error || e.Severity == XmlSeverityType.Warning) validationErrorMessages.Add(string.Format("{4}: [{3}] Line: {0}, Position: {1} \"{2}\"", e.Exception.LineNumber, e.Exception.LinePosition, e.Exception.Message, validationErrorMessages.Count, e.Severity)); } private void toolsToolStripMenuItem_DropDownOpening(object sender, EventArgs e) { validateXMLFileToolStripMenuItem.Enabled = (schema != null && schema.XsdFilenames.Count != 0); } private void MainForm_KeyUp(object sender, KeyEventArgs e) { if (e.Control && (e.KeyCode == Keys.D0 || e.KeyCode == Keys.NumPad0)) { this.toolStripComboBoxZoom.SelectedIndex = 8; } } //void DiagramControl_MouseMove(object sender, MouseEventArgs e) //{ //System.Diagnostics.Trace.WriteLine("toolTipDiagramElement_Popup"); //Point contextualMenuMousePosition = this.panelDiagram.DiagramControl.PointToClient(MousePosition); //contextualMenuMousePosition.Offset(this.panelDiagram.VirtualPoint); //DiagramBase resultElement; //DiagramBase.HitTestRegion resultRegion; //this.diagram.HitTest(contextualMenuMousePosition, out resultElement, out resultRegion); //if (resultRegion != DiagramBase.HitTestRegion.None) //{ // if (resultRegion == DiagramBase.HitTestRegion.Element) // && resultElement.Parent == null) // { // //this.contextualMenuPointedElement = resultElement; // //toolTipDiagramElement.SetToolTip(this.panelDiagram.DiagramControl, "coucou"); // e.Cancel = true; // toolTipElement.Show("Coucou", this); // } //} //} } }xsddiagram-0.16/ElementsForm.resx0000644000175000017500000001326611531463334016753 0ustar mathieumathieu text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 xsddiagram-0.16/XSDDiagram2008.sln0000644000175000017500000000565612077777700016442 0ustar mathieumathieu Microsoft Visual Studio Solution File, Format Version 10.00 # Visual C# Express 2008 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XSDDiagram2008", "XSDDiagram2008.csproj", "{B212CAFE-B4C8-44CB-B82D-AA32B55D2719}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XSDDiagramConsole2008", "XSDDiagramConsole\XSDDiagramConsole2008.csproj", "{1D732DFD-D631-4BFB-8057-C34B9327A08F}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XSDDiagrams2008", "XSDDiagrams\XSDDiagrams2008.csproj", "{6D3DACE7-D51B-4259-883A-6899BF4D52E2}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {B212CAFE-B4C8-44CB-B82D-AA32B55D2719}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B212CAFE-B4C8-44CB-B82D-AA32B55D2719}.Debug|Any CPU.Build.0 = Debug|Any CPU {B212CAFE-B4C8-44CB-B82D-AA32B55D2719}.Debug|x86.ActiveCfg = Debug|x86 {B212CAFE-B4C8-44CB-B82D-AA32B55D2719}.Debug|x86.Build.0 = Debug|x86 {B212CAFE-B4C8-44CB-B82D-AA32B55D2719}.Release|Any CPU.ActiveCfg = Release|Any CPU {B212CAFE-B4C8-44CB-B82D-AA32B55D2719}.Release|Any CPU.Build.0 = Release|Any CPU {B212CAFE-B4C8-44CB-B82D-AA32B55D2719}.Release|x86.ActiveCfg = Release|x86 {B212CAFE-B4C8-44CB-B82D-AA32B55D2719}.Release|x86.Build.0 = Release|x86 {1D732DFD-D631-4BFB-8057-C34B9327A08F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1D732DFD-D631-4BFB-8057-C34B9327A08F}.Debug|Any CPU.Build.0 = Debug|Any CPU {1D732DFD-D631-4BFB-8057-C34B9327A08F}.Debug|x86.ActiveCfg = Debug|x86 {1D732DFD-D631-4BFB-8057-C34B9327A08F}.Debug|x86.Build.0 = Debug|x86 {1D732DFD-D631-4BFB-8057-C34B9327A08F}.Release|Any CPU.ActiveCfg = Release|Any CPU {1D732DFD-D631-4BFB-8057-C34B9327A08F}.Release|Any CPU.Build.0 = Release|Any CPU {1D732DFD-D631-4BFB-8057-C34B9327A08F}.Release|x86.ActiveCfg = Release|x86 {1D732DFD-D631-4BFB-8057-C34B9327A08F}.Release|x86.Build.0 = Release|x86 {6D3DACE7-D51B-4259-883A-6899BF4D52E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6D3DACE7-D51B-4259-883A-6899BF4D52E2}.Debug|Any CPU.Build.0 = Debug|Any CPU {6D3DACE7-D51B-4259-883A-6899BF4D52E2}.Debug|x86.ActiveCfg = Debug|x86 {6D3DACE7-D51B-4259-883A-6899BF4D52E2}.Debug|x86.Build.0 = Debug|x86 {6D3DACE7-D51B-4259-883A-6899BF4D52E2}.Release|Any CPU.ActiveCfg = Release|Any CPU {6D3DACE7-D51B-4259-883A-6899BF4D52E2}.Release|Any CPU.Build.0 = Release|Any CPU {6D3DACE7-D51B-4259-883A-6899BF4D52E2}.Release|x86.ActiveCfg = Release|x86 {6D3DACE7-D51B-4259-883A-6899BF4D52E2}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(MonoDevelopProperties) = preSolution StartupItem = XSDDiagram.csproj EndGlobalSection EndGlobal xsddiagram-0.16/LICENSE-GPL.txt0000644000175000017500000004365511670473664015733 0ustar mathieumathieu GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. xsddiagram-0.16/DiagramControl.resx0000644000175000017500000001326611531463334017260 0ustar mathieumathieu text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 xsddiagram-0.16/LoginPromptForm.Designer.cs0000644000175000017500000001515112056405026020624 0ustar mathieumathieunamespace XSDDiagram { partial class LoginPromptForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LoginPromptForm)); this.buttonOK = new System.Windows.Forms.Button(); this.buttonCancel = new System.Windows.Forms.Button(); this.textBoxUsername = new System.Windows.Forms.TextBox(); this.textBoxPassword = new System.Windows.Forms.TextBox(); this.labelUsername = new System.Windows.Forms.Label(); this.labelPassword = new System.Windows.Forms.Label(); this.textBoxLabel = new System.Windows.Forms.TextBox(); this.SuspendLayout(); // // buttonOK // this.buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.buttonOK.DialogResult = System.Windows.Forms.DialogResult.OK; this.buttonOK.Location = new System.Drawing.Point(64, 152); this.buttonOK.Name = "buttonOK"; this.buttonOK.Size = new System.Drawing.Size(75, 23); this.buttonOK.TabIndex = 4; this.buttonOK.Text = "&OK"; this.buttonOK.UseVisualStyleBackColor = true; // // buttonCancel // this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; this.buttonCancel.Location = new System.Drawing.Point(145, 152); this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.Size = new System.Drawing.Size(75, 23); this.buttonCancel.TabIndex = 5; this.buttonCancel.Text = "&Cancel"; this.buttonCancel.UseVisualStyleBackColor = true; // // textBoxUsername // this.textBoxUsername.Location = new System.Drawing.Point(98, 90); this.textBoxUsername.Name = "textBoxUsername"; this.textBoxUsername.Size = new System.Drawing.Size(174, 20); this.textBoxUsername.TabIndex = 1; // // textBoxPassword // this.textBoxPassword.Location = new System.Drawing.Point(98, 116); this.textBoxPassword.Name = "textBoxPassword"; this.textBoxPassword.Size = new System.Drawing.Size(174, 20); this.textBoxPassword.TabIndex = 3; this.textBoxPassword.UseSystemPasswordChar = true; // // labelUsername // this.labelUsername.AutoSize = true; this.labelUsername.Location = new System.Drawing.Point(12, 93); this.labelUsername.Name = "labelUsername"; this.labelUsername.Size = new System.Drawing.Size(55, 13); this.labelUsername.TabIndex = 0; this.labelUsername.Text = "&Username"; // // labelPassword // this.labelPassword.AutoSize = true; this.labelPassword.Location = new System.Drawing.Point(12, 119); this.labelPassword.Name = "labelPassword"; this.labelPassword.Size = new System.Drawing.Size(53, 13); this.labelPassword.TabIndex = 2; this.labelPassword.Text = "&Password"; // // textBoxLabel // this.textBoxLabel.BorderStyle = System.Windows.Forms.BorderStyle.None; this.textBoxLabel.Location = new System.Drawing.Point(15, 13); this.textBoxLabel.Multiline = true; this.textBoxLabel.Name = "textBoxLabel"; this.textBoxLabel.ReadOnly = true; this.textBoxLabel.Size = new System.Drawing.Size(257, 71); this.textBoxLabel.TabIndex = 6; this.textBoxLabel.TabStop = false; // // LoginPromptForm // this.AcceptButton = this.buttonOK; this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.CancelButton = this.buttonCancel; this.ClientSize = new System.Drawing.Size(284, 187); this.Controls.Add(this.textBoxLabel); this.Controls.Add(this.labelPassword); this.Controls.Add(this.labelUsername); this.Controls.Add(this.textBoxPassword); this.Controls.Add(this.textBoxUsername); this.Controls.Add(this.buttonCancel); this.Controls.Add(this.buttonOK); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "LoginPromptForm"; this.ShowInTaskbar = false; this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "Authentication Required"; this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.Button buttonOK; private System.Windows.Forms.Button buttonCancel; private System.Windows.Forms.TextBox textBoxUsername; private System.Windows.Forms.TextBox textBoxPassword; private System.Windows.Forms.Label labelUsername; private System.Windows.Forms.Label labelPassword; private System.Windows.Forms.TextBox textBoxLabel; } }xsddiagram-0.16/ReadMe.txt0000644000175000017500000002120312077773422015344 0ustar mathieumathieuXSD Diagram is a free xml schema definition diagram viewer (http://regis.cosnier.free.fr). Version 0.16 Copyright (c) 2006-2013 Regis Cosnier, All Rights Reserved. This program is free software and may be distributed according to the terms of the GNU General Public License (GPL). FEATURES: - GPL (Part of the source code are dual licensed with LGPL and MS-PL) - Need of the Microsoft Framework.NET 2.0 (if not already install) or Mono - Display the elements, the groups and the attributes - Show the text/HTML documentation of element and attribute when available - Print the diagram - Export the diagram to SVG, PNG, JPG and EMF (EMF only with Windows) - Zoom the diagram with the mouse wheel while holding the control key - XML validation based on the loaded XSD file - Registration in the Windows Explorer contextual menu - Drag'n drop a xsd file or url on the main window header - Command line image generation QUICK START: - Open an xsd file. - The xsd file and all its dependencies files are loaded in tab pages. - Either: - Select a toplevel element in the toolbar (The first one is already selected). - Push the add button to put the element on the diagram - Or double click in the right panel list. - Then, on the diagram element, click on the + box. COMMAND LINE USAGE: > XSDDiagram.exe [-o output.svg] [-os EXTENSION] [-r RootElement]* [-e N] [-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] [-z N] [-y] [-u USERNAME] [-p PASSWORD] [file.xsd or URL] Options: -o FILE specifies the output image. '.png','.jpg', '.svg' ('.emf' on Windows) are allowed. If not present, the GUI is shown. -os EXTENSION specifies the output image is streamed through the standard output. EXTENSION can be: png, jpg, svg. If not present, the GUI is shown. -r ELEMENT specifies the root element of the tree. You can put several -r options = several root elements in the tree. -e N specifies the expand level (from 0 to what you want). Be carefull, the result image can be huge. -z N specifies the zoom percentage from 10% to 1000% (only for .png image). Work only with the '-o', '-os png' or '-os jpg' option. -y force huge image generation without user prompt. -u USERNAME specifies a username to authenticate when a xsd dependency (import or include) is a secured url. -p PASSWORD specifies a password to authenticate when a xsd dependency (import or include) is a secured url. Example 1: > XSDDiagramConsole.exe -o file.png -r TotoRoot -e 3 -z 200 ./folder1/toto.xsd will generate a PNG image from a diagram with a root element 'TotoRoot' and expanding the tree from the root until the 3rd level. Example 2: > XSDDiagram.exe ./folder1/toto.xsd will load the xsd file in the GUI window. Example 3: > XSDDiagram.exe -r TotoRoot -e 2 ./folder1/toto.xsd will load the xsd file in the GUI window with a root element 'TotoRoot' and expanding the tree from the root until the 2nd level. Example 4: > XSDDiagramConsole.exe -os svg -r TotoRoot -e 3 ./folder1/toto.xsd will write a SVG image in the standard output from a diagram with a root element 'TotoRoot' and expanding the tree from the root until the 3rd level. TODO LIST: - BUG: Cascading substitution groups may appear weird. - BUG: There is a bug when printing with margin! - BUG: On Linux, the horizontal and vertical scrollbars don't appear correctly. - From AlexM: oh, and allow the specification of a complex type in the command line as a root... for the same component used in multiple schemas from one library. - Add the attributes to the element in the diagram (suggested by bob) - Tooltips above the diagram element with a summary (xpath/attributes/doc) (display 200ms after the mouse move -> avoid 100 %CPU) o The optional display of attributes inside the diagram - Columns in the element/attributes tabs for restrictions (length/pattern/enumerations) - Element selection in the diagram + move from one element to another with the arrow key - Multi-selection (i.e.: to remove several element at once) - Save the current UI state (open file/diagram/zoom/...) - XML sample (skeleton) generation (the ability to generate random test XML files complying with the open schema) - Download .dtd dependency file CHANGES: version 0.16 (2013-01-23) - Fix an issue to prevent the cylcles in the imported files. - Add a dialog to download a xsd file with its URL. version 0.15 (2013-01-13) - Show the enumerates documentation. - Add Ctrl+0 to reset the zoom version 0.14 (2012-12-01) - Accept all kind of https certificates when the xsd dependencies (import or include) point to a TLS/SSL url. - Prompt the user to authenticate when the xsd dependencies (import or include) point toward a secured url. - Add the corresponding command line "-u USERNAME" and "-p PASSWORD" options to authenticate the url download. - It is now possible to drag'n drop an url pointing to a xsd file on the main window. version 0.13 version 0.12 (2012-09-19) - Improve the error message in case the image is too big to be generated. - Some element (complex type derived from a restriction) could cause an exception. These element are now display but can not be expanded. version 0.11 (2012-07-22) - Remove the "Order" attributes in the source file XmlSchema.cs which are imcompatible with mono > 2.6! - Add the option "-y" to force huge image generation without user prompt. - Fix some hashtable to dictionary issues due to the previous refactoring. version 0.10 (2011-12-18) - Refactor within a core library "XSDDiagrams.dll" under the LGPL/MS-PL license. - Add the XSD Diagrams core library, thanks to Paul's refactoring ! - Add the XML validation operation using the currently loaded XSD schema in the Tools menu. - When the WebBrowser is not available, use a TextBox instead (For Mono without WebBrowser support). - Mono version 2.10 does not work anymore with XML deserialization :-( version 0.9 (2011-05-17) - Allow to expand restriction type (Thanks to Hermann). - Fix an unicode issue with infinity character when building xsd diagram on linux. version 0.8 (2010-10-31) - Add support for JPG. - Add command line options to generate PNG, JPG or SVG image without the GUI window. version 0.7 (2010-07-14) - Inversion of the mouse wheel direction to zoom - Add the SVG diagram export - Add the Tiago Daitx's code about the PNG diagram export - Improve the diagram quality version 0.6 (2010-06-27) - Fix the print function. - Add as much as possible the support for Mono 2.6.3 on Linux. - Fix the import/include opening on Linux. - Fix the print font clipping bug on Linux. - Fix the tab page selection corruption on Linux. - On Linux, the export to EMF does not work because it seems the libgdiplus does not support this feature. version 0.5 (2008-11-11) - The element panel has been added again. This is not very user friendly because this should not be editable. - The contextual menu in element list has an entry: "Add to diagramm" + drag'n drop on the diagram. version 0.4 (2007-03-10) - Add contextual menu in the panels to copy the list/selected line in the clipboard - Displays enumerate type in a new panel - The element panel has been removed - The combobox must be wider or the same size as the widest element - Fix an exception if no printer install when clicking on print setup/preview - Fix an exception if selecting the attribute '*' in the XMLSchema.xsd schema file - Fix a bug about bad simple content element displays - Fix Ctrl+Tab that did not work in the browser view - Fix some attributes not display - Fix an exception on loading a dependent xml document - Fix when selecting a browser view, the browser should have the focus - Fix some zoom bound issues version 0.3 (2006-11-20) - Allow to edit the attributes label in order to copy a label in the clipboard - Put *.xsd as default load extension - Put xpath (/) instead of chevrons in the path - Add the abstract element support - Zoom accuracy - Fix some bugs (sequence/choice/group not always display in complexType) version 0.2 (2006-10-09) - Automatic download of non local import - Print per page - Vast virtual scrolling diagram - Top/Center/Bottom alignments - Put chevrons in the path - Fix some bugs (simple type and documentation space) version 0.1 (2006-09-14) - First version LICENSE: Copyright (c) 2006-2013 Regis COSNIER, All Rights Reserved. This program is free software and may be distributed according to the terms of the GNU General Public License (GPL). xsddiagram-0.16/DiagramControlContainer.resx0000644000175000017500000001326611531463334021123 0ustar mathieumathieu text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 xsddiagram-0.16/Options.cs0000644000175000017500000001120012056376744015427 0ustar mathieumathieu// XSDDiagram - A XML Schema Definition file viewer // Copyright (C) 2006-2011 Regis COSNIER // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System; using System.Collections.Generic; namespace XSDDiagram { public class Options { public static string[] Arguments { get; private set; } public static string InputFile { get; private set; } public static string OutputFile { get; private set; } public static bool OutputOnStdOut { get; private set; } public static string OutputOnStdOutExtension { get; private set; } public static IList RootElements { get; private set; } public static int ExpandLevel { get; private set; } public static float Zoom { get; private set; } public static bool ForceHugeImageGeneration { get; private set; } public static bool RequestHelp { get; private set; } public static bool IsRunningOnMono { get; private set; } public static string Username { get; private set; } public static string Password { get; private set; } static Options() { InputFile = null; OutputFile = null; OutputOnStdOut = false; OutputOnStdOutExtension = "png"; RootElements = new List(); ExpandLevel = 0; Zoom = 100.0f; ForceHugeImageGeneration = false; RequestHelp = false; IsRunningOnMono = Type.GetType("Mono.Runtime") != null; string[] args = Environment.GetCommandLineArgs(); List arguments = new List(); // Convert "--option:params" or "/option params" to "-option params" foreach (var argument in args) { string command = null; if (/*argument.StartsWith("/") ||*/ argument.StartsWith("-")) command = argument.Substring(1); else if (argument.StartsWith("--")) command = argument.Substring(2); if (!string.IsNullOrEmpty(command)) { int indexOfColon = command.IndexOf(':'); if (indexOfColon > 0) { string parameter = command.Substring(indexOfColon + 1); command = command.Substring(0, indexOfColon); arguments.Add("-" + command); arguments.Add(parameter); } else arguments.Add("-" + command); } else arguments.Add(argument); } Arguments = arguments.ToArray(); int currentArgument = 1; while (currentArgument < arguments.Count) { string argument = arguments[currentArgument++]; if (string.Compare("-h", argument, true) == 0) { RequestHelp = true; } else if (string.Compare("-o", argument, true) == 0) { if (currentArgument < arguments.Count) OutputFile = args[currentArgument++]; } else if (string.Compare("-os", argument, true) == 0) { OutputOnStdOut = true; if (currentArgument < arguments.Count) OutputOnStdOutExtension = args[currentArgument++]; } else if (string.Compare("-r", argument, true) == 0) { if (currentArgument < arguments.Count) RootElements.Add(args[currentArgument++]); } else if (string.Compare("-e", argument, true) == 0) { if (currentArgument < arguments.Count) { try { ExpandLevel = int.Parse(args[currentArgument++]); } catch { } } } else if (string.Compare("-z", argument, true) == 0) { if (currentArgument < arguments.Count) { try { Zoom = (float)int.Parse(args[currentArgument++]); } catch { } } } else if (string.Compare("-y", argument, true) == 0) { ForceHugeImageGeneration = true; } else if (string.Compare("-u", argument, true) == 0) { if (currentArgument < arguments.Count) Username = args[currentArgument++]; } else if (string.Compare("-p", argument, true) == 0) { if (currentArgument < arguments.Count) Password = args[currentArgument++]; } else InputFile = argument; } } } } xsddiagram-0.16/XSDDiagram2010.csproj0000644000175000017500000002556612077773462017142 0ustar mathieumathieu bin\x86\Release\ TRACE true pdbonly x86 true GlobalSuppressions.cs prompt 4 true bin\x86\Debug\ DEBUG;TRACE full x86 true GlobalSuppressions.cs prompt 4 false Debug AnyCPU 9.0.30729 2.0 {B212CAFE-B4C8-44CB-B82D-AA32B55D2719} WinExe Properties XSDDiagram XSDDiagram Icons\XSDDiagram.ico 3.5 v2.0 http://localhost/XSDDiagram/ true Web true Foreground 7 Days false false true 0 1.0.0.%2a true false true true full false bin\Debug\ DEBUG;TRACE prompt 4 pdbonly true bin\Release\ TRACE prompt 4 Form AboutForm.cs UserControl DiagramControl.cs UserControl Form ElementsForm.cs Form ErrorReportForm.cs Form LoginPromptForm.cs Form MainForm.cs Form OpenURLForm.cs Designer AboutForm.cs DiagramControl.cs Designer DiagramControlContainer.cs Designer ElementsForm.cs Designer ErrorReportForm.cs LoginPromptForm.cs Designer MainForm.cs OpenURLForm.cs ResXFileCodeGenerator Resources.Designer.cs Designer True Resources.resx True SettingsSingleFileGenerator Settings.Designer.cs True Settings.settings True XMLSchema.xsd False .NET Framework Client Profile false False .NET Framework 2.0 %28x86%29 false False .NET Framework 3.0 %28x86%29 false False .NET Framework 3.5 false False .NET Framework 3.5 SP1 true False Windows Installer 3.1 true {6D3DACE7-D51B-4259-883A-6899BF4D52E2} XSDDiagrams2010 xsddiagram-0.16/Resources/0000755000175000017500000000000011531463334015412 5ustar mathieumathieuxsddiagram-0.16/Resources/Views.png0000644000175000017500000000073611531463334017223 0ustar mathieumathieuPNG  IHDRa pHYs  gAMA|Q cHRMz%u0`:o_FTIDATxڤJCAݻ1" 66! 6 ($>A@RJ I#hP?!0眝9F += > X'-zL..TagIsxBA D/¿Bl!j.]rgi7\ 0׏{?Al;q 4jm]r؏'Њa]M@JKkxTev6ݖdod~f59YڣEA| U| EȀq_&K[ TBJt{-#p3IENDB`xsddiagram-0.16/Resources/Move.png0000644000175000017500000000122511531463334017026 0ustar mathieumathieuPNG  IHDRa pHYs  gAMA|Q cHRMz%u0`:o_F IDATxڤMkQ$@!~TFԖ(ٸD(t? Ѝ,V(`#.Ֆ"w.2VA';"_ xp]==GSJ?atBu)'KitrKA?/!Q\ X!0A8tBx zbSoe"yxGlXjPk :C`5㇙IN&o 1X V"b@ԀX*L|~rk@4GGT{)4 KXaFW>uORG6Hd}d/x1,JxUŎ Ѡ&ggf Q={rW]ORmS@yf372lRY \ϣeS|2ynal2J6z. Fg^Uv?`g}g^ęy[EyPt@R٪R>/hoG8,Ҥ3:L^jߺ IENDB`xsddiagram-0.16/Resources/Save.png0000644000175000017500000000071511531463334017021 0ustar mathieumathieuPNG  IHDRa pHYs  gAMA|Q cHRMz%u0`:o_FCIDATxēN1UrHL`rq @o8܍3O`3/ &$&ĐrwmJtho+s" Q##sa0j,i|߾l~z}eMmcM@ 'w/W(+@kXDIP>8dGJde蓥8yiB}sNexCAyZ=D!Z=+ $At} Z+c0yR{H)W@ ƒ| 7;BŴZ5KJY@s|5*OIENDB`xsddiagram-0.16/Resources/Forward.png0000644000175000017500000000163511531463334017531 0ustar mathieumathieuPNG  IHDRa pHYs  gAMA|Q cHRMz%u0`:o_FIDATxtk\Uǿss>&IX`)&Qp$PvntSWATKW⣈n* !$Q'3iy{J?a5ȅf{@K=O3| U'YK"hI$ud} t^W6<Ns eݙ|ޏ,H3s;E㽯n$OGg^'f31o7$18ӎ ]I D:djKի*@]fKW*_\ @^?q7l,,<̥S8,9ߵHCH36ЂKqӇ[a(I?Duqh񤋊k<.^{,n܋8=k\4W rBR"@-˛q*x o~?AJ{BIŅG V PZ`)PU  BjURn >~+oRGp?| on^ߐ@f-SXwUAmP: ?O\x=(iɇ-w܅i2;*A`TOx6MVֳLNNP{9.~>6M܃UVs[W?A.7Q0!ղ,íAV΄pީ2gR^UG)3Di,1,)0<]3NםwqhxKǮϖIQB+Qb+U/ξFw􏝫[aX4݆3xMW4O#0J8zIENDB`xsddiagram-0.16/Resources/SaveGreen.png0000644000175000017500000000055611531463334020005 0ustar mathieumathieuPNG  IHDRa pHYs  gAMA|Q cHRMz%u0`:o_FIDATxē=j1Y@ ҆%s [XHLa\) ,WۙdIoT{OC3#EJ%ALLO9WZ??/(=O ֛uZuWEOo3Ds? ^ Fex0<{YbTm~Ǡ3FmPo". JRpQIENDB`xsddiagram-0.16/Resources/Minus.png0000644000175000017500000000167211531463334017221 0ustar mathieumathieuPNG  IHDRa pHYs  gAMA|Q cHRMz%u0`:o_F0IDATx\S;l[e=׹$v.VRJJ:wؑ: l Db%@ %$m4;~ J'}9:OUZT8yn:j[wM[yr %YYt)SJ-!aottFbn~~V3PE'Hlixu~.Vοo !{qo`4NV,L&-VQZl b΄(<)!#O6urO\q^;5=z< AM!~(Y6<Æ8k: $3eMf<_t2o2~p]0x]|tgBMP*OH)`1EC\xP!A@ n 0drgK$B!C O尼#Wp(\E:L$NԳ"l[mwJ^@&` |'_v]fIkTt5En>qB Ϋ!v({G.] o!`lߐhc[*]sa_}bnj5t-'KUSHf 946Ϥ h4quZBZM:y--,L2&9?rcӖ@t#D8Ѧ+&wnOz䦉Ds`.IENDB`xsddiagram-0.16/Resources/Help.png0000644000175000017500000000047411531463334017015 0ustar mathieumathieuPNG  IHDRagAMA|Q cHRMz%u0`:o_FtEXtSoftwarePaint.NET v2.72rZ]IDAT8Oc`a;GDۅnȁ5 ;Ԝ 3@A?P K gXӓ# X- C\oF ,p/u]E`" 9.%g{# 4}J zGg`>Fޅ0ljkhBeB]/DSomy@b`_݊cH~!{MCsO"(mr8͜S-Lp\V{vÓ[,Yd˦D_,m _r ;#%*3ٛhxRP#:hM*› 3sjZpPJw,Q5F_'ױq.#|3Qu&t^ *:E(珧9dM9BEb"VN:hB(+!#Y_bMY_9tK>9^~C:fn~z)l I+W6cɺD3giNV,vj'X?JIENDB`xsddiagram-0.16/Resources/Search.png0000644000175000017500000000126711531463334017333 0ustar mathieumathieuPNG  IHDRa pHYs  gAMA|Q cHRMz%u0`:o_F-IDATxڔKHTa#ZV0Q.ZH H"IܷpVn#hQ0H6ѢE "e4ТGty-6Π8}$\@Kw .˲Gp(? gŃCL+6݅ fH%fJBJ v>ĕ.̓M7r oI>|6V[.}Oy5ee%;TV G-EW`VOE4h @{wOKvP( ] &unZ o>V(USPP nUR&Fubd$-#K[b8aeMnߚ;D"0Yf/`:+Xd;7I G`:KE׼gR`:GB 'HT+pOvIENDB`xsddiagram-0.16/Resources/Print.png0000644000175000017500000000163511531463334017221 0ustar mathieumathieuPNG  IHDRa pHYs  gAMA|Q cHRMz%u0`:o_FIDATxdk[u?m֝,]ބnnEqM;zL;/ ܟ CQ+Zz%"BiG:ݚ6v$1Ҽ,=isNK~^[x^=<|+oJi|Eđ@Q&:Nx,DaGGt;/*86#QiKK B#CFvﲁnnau=fww!Utp;s?wo&ohL mBӡ  !>tT#92\:P+ɯ!Y v^p JuY!@s6woߦӪsxxDk;_Rrsn8>/W+\8N@睷 BAR)AL^5Q}H)9& RIǡ6jlmUдQT<40r(3>>N`{5vh[m `y'n\a*]b`[6'O$`&Bl&ˑ _ȓmJ89>  gp7^[;s4ɩIuΕ+2==ͥKAUUa\?T+g äl:jҿ;E븮K8~ z43#V6r_Ə<~tiiVkٖ(,>>1< 0b10 V3,Q ,@s#  (AIENDB`xsddiagram-0.16/Resources/Open.png0000644000175000017500000000134311531463334017022 0ustar mathieumathieuPNG  IHDRa pHYs  gAMA|Q cHRMz%u0`:o_FYIDATxڄOHq??RK]XQ4DNeC c.5/¨ԥV K024z/|QDRc@Љб7c ؤV f\l=hIDATx|MHTQ8ڐh(n… "El6%m065f (, E>$`ЙG-rwWb`(T&%FF^ `Abe'®T#0z7GG&8>?5OsC sɅh4PVaLMs8Y2FD 8;;IO\?;̑ڃzM\d< 6e-L.2꽡:|5Jũ3TTW lRhM^$f{|҂ж /wy &WIUX[߹g@04aOY9Ǜ-pn\2qV+tj\ †S\Gµ jʇ\Kxv**l~SJx^()5UaWߝZ)C?Krv<{y=l:݀*pzELfƤūS vwi@j ͊_@.&1ގ1d'0IENDB`xsddiagram-0.16/Resources/New.png0000644000175000017500000000037211531463334016653 0ustar mathieumathieuPNG  IHDRaIDATxcd%gb stl1ܹ|AZTaɲC„af Z2 X]b &]-S CPb1,ZE ;(`1AXX g?ÿ/8\I) OqxkD10(+)g ޤ D 3r/| ;`#$. IENDB`xsddiagram-0.16/Resources/Stop.png0000644000175000017500000000170011531463334017043 0ustar mathieumathieuPNG  IHDRa pHYs  gAMA|Q cHRMz%u0`:o_F6IDATxdMh\e}̝4dL5t鏭ih;".Vp#tUMw6 AAPH%Pp")JBL &ߦ3y]T= N*Q2`Q5!X uuU!]N)o,jonkԝ3+6s0 '2g {>!> ɣfdMC`-`^O[['Jz80lz( yXO(ō6W,sIW–YԖXC'/tfہc>?D6 KLpnz;*LSȗo;u9y4NO)E ҭR}ѭE7m9WJ)(}u15>׊df-߽ s^ҋ^^- 1e}k5_GsjARQ*w1ÃPbmዟX€eֈ1bA|cݐZ"./$^ǽX <ل-Fv_;n9Xa4qZ bjbmpNh~&6ce_jgV8xy`.%f`5 Gv8B6k% } vx1Z/$B.[ɉ5hVKv.?%[/sh xP'k塝y pu>8&˕fƘw :کuڐa~CĖY];kŢSތ]͐9Z)wwcc_";7yIENDB`xsddiagram-0.16/Resources/Panel.png0000644000175000017500000000076611531463334017170 0ustar mathieumathieuPNG  IHDRagAMA|Q cHRMz%u0`:o_FtEXtSoftwarePaint.NET v2.72rZ]]IDAT8OJQNj6=BDZE׉eoֶG(+jU-ض *rhQ &PD,}il93}@]MT9yhh sV9TZ_8~MVϕ=;buNýC`c*:u!aT}?"f" s L $8z.H-VZ+<+e!)|,/9Lg 7˔!81-Co=&'Bc!HhFUZȽȂ,Y Ջygpl鷢'C\*rԭ{eh C ^PSH <$tIENDB`xsddiagram-0.16/Resources/Delete.png0000644000175000017500000000075611531463334017332 0ustar mathieumathieuPNG  IHDRa pHYs  gAMA|Q cHRMz%u0`:o_FdIDATxڤMPDڎK: 1gt`w@ tT`w,IP: D rHDPwv珨*bE9ŁdEdYUg6PWvA y])B.p>pP!B!m'>BH+rT""O@lg%ud>@$VT,6zP( 0AxW\$/T=K7pgRA^(k^z"u -KHvz - l?N3ȁC#̘J|F@{-u?x7WGwokzIENDB`xsddiagram-0.16/Resources/Plus.png0000644000175000017500000000174611531463334017053 0ustar mathieumathieuPNG  IHDRa pHYs  gAMA|Q cHRMz%u0`:o_F\IDATx\Ile3;^&ҤMRR@ 8U+ Pل@P$PM+*eiBMH8{fg(;I ̌2$BZk BΧdI#z`[$WUmHp<-挼˭2耸:q$1>875<KA¦rP]7 Oo]˃$ Nxa/4b{g-tWj(Śoܹ釿&-yf*O :C2F'.|ZTkSԬ_+r`PH$¯'Aő|σ_SiˡKR)"w&ѧD1u ՠ\&֬C^hHcqկR5m3Mx]2\^ fӰg05Iעa7d`:\X_W1{T[Vyג)r\74Hp!T,^GLQnd7׭z\eŚӿ'Җ,%{α4}=(unzYUkǝZTj~B84!o{؞zj}D]H&s@bD14&qt >wlQ?ѽt2vO_rҙ05A9_Rڠ/` D.-,u@/w/rQ>2PaE*DQ,[H\cF|ZA,Onl hz';u y -8s+*g `| S篋.י2cz:HSerbG/? \xƮ7W+Q}dOe->~ߖuk4/޴=wήnjK^`IENDB`xsddiagram-0.16/ErrorReportForm.resx0000644000175000017500000003040212056405120017443 0ustar mathieumathieu text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AO8AAAD/AAAA/wAAAP8AAAD/AAAA7wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA/5T/AP+U/wD/lP8A/5T/AP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA/wAAAP8AAAD/lP8A/5T/AP+U/wD/lP8A/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAD/AAAAAAAAAP+U/wD/lP8A/5T/AP+U/wD/AAAA/wAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAzwAAAP8AAAD/AAAA/wAAAP8AAADPAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAADvAAAA/wAAAP8AAAD/AAAA/wAAAO8AAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAP//DAD//wwA//8MAP//DAD/AAAA/wAAAAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA7wAA AAAAAAAAAAAAAAAAAAAAAAAAAAAA//8MAP//DAD//wwA//8MAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//Pz///z8///8/P///Pz///z8 //8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wwA//8MAP//DAD//wwA/wAAAP8AAAAAAAAA/wAA AAAAAADvAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA7wAAAAAAAAD/AAAA/wAAAP/8/P///Pz///z8 ///8/P///Pz//wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM8AAAD/AAAA/wAAAP8AAAD/AAAAzwAA AAAAAAD/AAAAAAAAAP+5t7z/ube8/7m3vP+5t7z/ube8/7m3vP8AAAD/AAAAAAAAAP8AAAAAAAAAzwAA AP8AAAD/AAAA/wAAAP8AAAD/AAAAzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAP8AAAD/AAAA/7m3vP+5t7z/ube8/7m3vP+5t7z/ube8/wAAAP8AAAD/AAAA/wAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/ube8/7m3vP+5t7z/ube8/7m3vP+5t7z/AAAA/wAA AAAAAAD/AAAAAAAAAO8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAO8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAADPAAAAAAAAAP8AAAD/AAAA//+OBf//jgX//44F//+OBf//jgX/AAAA/wAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//44F//+OBf//jgX//44F//+OBf8AAAD/AAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACLAAAA/wAAAP8AAACLAAAAAAAAAAAAAAAAAAAAQAAA AP8AAAD/AAAA/wAAAEAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIsAAAAAAAAAAAAAAAAAAACLAAAA/wAA AP8AAAD/AAAAiwAAAP8AAAD/AAAAQAAAAAAA0P+LAND//wDQ//8Agp/eAAAA/wAAAP8AAABAAND/QADQ //8A0P//AND//wA0QP8A0P//AND//wDQ//8A0P//AND//wDQ/4sAAAC3AAAA/wAAALcA0P+LAND//wDQ //8A0P//ALvmmgDQ//8A0P//ADRA/wAAAP8AAABAAAAAAAAAAAAA0P+3AND//wDQ//8ANED/AAAA/wAA AP8A0P+3AND//wDQ//8AUGP/ACIqwADQ//8AAAAAAAAAAAAAAAAA0P+3AND//wC03dMAAAD/AFBj/wDQ //8A0P//ABog/wAAAIsA0P+LAND//wDQ//8ANED/AAAA/wAAAEAAAAAAAAAAAADQ/yAA0P//AND//wDQ //8AAAD/AFBj/wDQ//8A0P//AJW3/wAAAP8AAAAgAAAAAAAAAAAAAAAAAAAAAACAnaAA0P//AND//wA0 QP8A0P//AND//wBxi/8AAAD/AAAAiwDQ/0AA0P//AND//wA0QP8AAAD/AAAAQAAAAAAAAAAAAAAAAADQ /2MA0P//AND//wBhd9MA0P//AND//wDQ//8AGiD/AAAAiwAAAAAAAAAAAAAAAACAnaAA0P//AND//wDQ //8A0P//AFBj/wDQ//8A0P//AHGL/wAAAP8AAACLAND/QADQ//8A0P//ADRA/wAAAP8AAABAAAAAAAAA AAAAAAAAAAAAAADQ/7cA0P//AND//wDQ//8A0P//AHGL/wAAAP8AAAAAAAAAAADQ/2MA0P//AND//wDQ //8A0P//AND//wCr0t4A0P8gAND//wDQ//8AcYv/AAAA/wAAAIsA0P9AAND//wDQ//8ANED/AAAA/wAA AEAAAAAAAAAAAAAAAAAAAAAAAND/QADQ//8A0P//AND//wDQ//8AAAD/AAAAiwAAAAAA0P8gAND//wDQ //8A0P//AND//wCPr8oAAAAAAAAAAADQ/yAA0P//AND//wCCn94AAAD/AAAAtwDQ/0AA0P//AND//wA0 QP8AAAD/AAAAQAAAAAAAAAAAAAAAAAAAAAAA0P9AAND//wDQ//8A0P//AHGL/wAAAP8AAAD/AAAAQADQ /yAA0P//AND//wCPr8oAAAD/AAAA/wAAAAAAAAAAAAAAAACVt/8A0P//AL3oyQAAAP8AAAD/AHaRcADQ //8A0P//ADRA/wAAAP8AAABAAAAAAAAAAAAAAAAAAAAAAADQ/7cA0P//AND//wDQ//8A0P//ADRA/wAA AP8AAAD/AAAAAADQ/4sA0P//AND//wAAAGMAAAD/AAAA/wDQ//8AAAD/ADRA/wDQ//8A0P//AHaRcAAA AP8ANED/AND//wDQ//8ANED/AAAA/wAAAEAAAAAAAAAAAAAAAAAA0P9jAND//wDQ//8Albf/AND//wDQ //8A0P//AAAA/wAAAP8AAACLAAAAAADQ/2MA0P//AND//wDQ//8A0P//AND//wAAAAAAAAAAAND/QADQ //8A0P//AND//wDQ//8A0P//AND//wA0QP8AAAD/AAAAQAAAAAAAAAAAAND/IADQ//8A0P//AND//wAa IP8Ab4m4AND//wDQ//8Agp/eAAAA/wAAAP8AAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAND/QADQ//8A0P//ADRA/wAAAP8AAABAAAAAAAAAAAAA0P+LAND//wDQ //8AcYv/AAAA/wAAAAAA0P+3AND//wDQ//8ANED/AAAA/wAAAP8AAAAgAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0P9AAND//wDQ//8ANED/AAAA/wAAAEAAAAAAAND/YwDQ //8A0P//AND//wAAAAAAAAAAAAAAAADQ/yAA0P//AND//wDQ//8A0P8gAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ/0AA0P//AND//wA0QP8AAAD/AAAAQAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAND/QADQ//8A0P//AND/QAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA////////////4f///8D///8A////QP///2H//8N///+Bf/wfgH/4D4Fg YA/DQCwf/wAP///ALB//4GAP///4D//////nxB8TkwBsQ8EXoMPAH4DD5D4Aw/A4MMPwcPLD8DJyQ/AZ AQPgHBwDwk//w8MH/8OPH//D////z/////8= xsddiagram-0.16/ErrorReportForm.Designer.cs0000644000175000017500000000665212056405120020640 0ustar mathieumathieunamespace XSDDiagram { partial class ErrorReportForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ErrorReportForm)); this.textBoxReport = new System.Windows.Forms.TextBox(); this.buttonOK = new System.Windows.Forms.Button(); this.SuspendLayout(); // // textBoxReport // this.textBoxReport.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.textBoxReport.Location = new System.Drawing.Point(12, 12); this.textBoxReport.Multiline = true; this.textBoxReport.Name = "textBoxReport"; this.textBoxReport.ReadOnly = true; this.textBoxReport.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; this.textBoxReport.Size = new System.Drawing.Size(495, 332); this.textBoxReport.TabIndex = 0; // // buttonOK // this.buttonOK.Anchor = System.Windows.Forms.AnchorStyles.Bottom; this.buttonOK.DialogResult = System.Windows.Forms.DialogResult.OK; this.buttonOK.Location = new System.Drawing.Point(222, 350); this.buttonOK.Name = "buttonOK"; this.buttonOK.Size = new System.Drawing.Size(75, 23); this.buttonOK.TabIndex = 1; this.buttonOK.Text = "OK"; this.buttonOK.UseVisualStyleBackColor = true; // // ErrorReportForm // this.AcceptButton = this.buttonOK; this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.CancelButton = this.buttonOK; this.ClientSize = new System.Drawing.Size(519, 385); this.Controls.Add(this.buttonOK); this.Controls.Add(this.textBoxReport); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MinimizeBox = false; this.Name = "ErrorReportForm"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "Error Report"; this.Load += new System.EventHandler(this.ErrorReportForm_Load); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.TextBox textBoxReport; private System.Windows.Forms.Button buttonOK; } }xsddiagram-0.16/XSDDiagram2008.csproj0000644000175000017500000002556512077777700017147 0ustar mathieumathieu bin\x86\Release\ TRACE true pdbonly x86 true GlobalSuppressions.cs prompt true bin\x86\Debug\ DEBUG;TRACE full x86 true GlobalSuppressions.cs prompt Debug AnyCPU 9.0.30729 2.0 {B212CAFE-B4C8-44CB-B82D-AA32B55D2719} WinExe Properties XSDDiagram XSDDiagram Icons\XSDDiagram.ico 2.0 v2.0 http://localhost/XSDDiagram/ true Web true Foreground 7 Days false false true 0 1.0.0.%2a true false true true full false bin\Debug\ DEBUG;TRACE prompt 4 pdbonly true bin\Release\ TRACE prompt 4 Form AboutForm.cs UserControl DiagramControl.cs UserControl Form ElementsForm.cs Form ErrorReportForm.cs Form LoginPromptForm.cs Form MainForm.cs Form OpenURLForm.cs Designer AboutForm.cs DiagramControl.cs Designer DiagramControlContainer.cs Designer ElementsForm.cs Designer ErrorReportForm.cs LoginPromptForm.cs Designer MainForm.cs OpenURLForm.cs ResXFileCodeGenerator Resources.Designer.cs Designer True Resources.resx True SettingsSingleFileGenerator Settings.Designer.cs True Settings.settings True XMLSchema.xsd False .NET Framework Client Profile false False .NET Framework 2.0 %28x86%29 false False .NET Framework 3.0 %28x86%29 false False .NET Framework 3.5 false False .NET Framework 3.5 SP1 true False Windows Installer 3.1 true {6D3DACE7-D51B-4259-883A-6899BF4D52E2} XSDDiagrams2008 xsddiagram-0.16/IlMerge.bat0000644000175000017500000000024611673403774015467 0ustar mathieumathieuilmerge /target:winexe /out:XSDDiagram.exe bin\Release\XSDDiagram.exe bin\Release\XSDDiagrams.dll copy XSDDiagramConsole\bin\Release\XSDDiagramConsole.exe . pause xsddiagram-0.16/MainForm.Designer.cs0000644000175000017500000020415512077772656017265 0ustar mathieumathieunamespace XSDDiagram { partial class MainForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); this.menuStripMain = new System.Windows.Forms.MenuStrip(); this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.saveDiagramToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.validateXMLFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator(); this.pageToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.printPreviewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.printToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.windowsExplorerRegistrationToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.registerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.unregisterToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.windowToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.nextTabToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.previousTabToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.statusStripMain = new System.Windows.Forms.StatusStrip(); this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel(); this.toolStripMain = new System.Windows.Forms.ToolStrip(); this.toolStripButtonOpen = new System.Windows.Forms.ToolStripButton(); this.toolStripButtonSaveDiagram = new System.Windows.Forms.ToolStripButton(); this.toolStripButtonPrint = new System.Windows.Forms.ToolStripButton(); this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); this.toolStripComboBoxSchemaElement = new System.Windows.Forms.ToolStripComboBox(); this.toolStripButtonAddToDiagram = new System.Windows.Forms.ToolStripButton(); this.toolStripButtonAddAllToDiagram = new System.Windows.Forms.ToolStripButton(); this.toolStripButtonRemoveAllFromDiagram = new System.Windows.Forms.ToolStripButton(); this.toolStripButtonExpandOneLevel = new System.Windows.Forms.ToolStripButton(); this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); this.toolStripComboBoxZoom = new System.Windows.Forms.ToolStripComboBox(); this.toolStripComboBoxAlignement = new System.Windows.Forms.ToolStripComboBox(); this.toolStripButtonShowReferenceBoundingBox = new System.Windows.Forms.ToolStripButton(); this.toolStripButtonTogglePanel = new System.Windows.Forms.ToolStripButton(); this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator(); this.toolStripButtonAbout = new System.Windows.Forms.ToolStripButton(); this.splitContainerMain = new System.Windows.Forms.SplitContainer(); this.tabControlView = new System.Windows.Forms.TabControl(); this.tabPageDiagram = new System.Windows.Forms.TabPage(); this.panelDiagram = new XSDDiagram.DiagramControlContainer(); this.splitContainerDiagramElement = new System.Windows.Forms.SplitContainer(); this.tabControlElement = new System.Windows.Forms.TabControl(); this.tabPageElementAttibutes = new System.Windows.Forms.TabPage(); this.listViewAttributes = new System.Windows.Forms.ListView(); this.columnHeaderAttributesName = new System.Windows.Forms.ColumnHeader(); this.columnHeaderAttributesType = new System.Windows.Forms.ColumnHeader(); this.columnHeaderAttributesUse = new System.Windows.Forms.ColumnHeader(); this.columnHeaderAttributesDefault = new System.Windows.Forms.ColumnHeader(); this.contextMenuStripAttributes = new System.Windows.Forms.ContextMenuStrip(this.components); this.toolStripMenuItemAttributesCopyLine = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItemAttributesCopyList = new System.Windows.Forms.ToolStripMenuItem(); this.tabPageElement = new System.Windows.Forms.TabPage(); this.propertyGridSchemaObject = new System.Windows.Forms.PropertyGrid(); this.splitter1 = new System.Windows.Forms.Splitter(); this.listViewEnumerate = new System.Windows.Forms.ListView(); this.columnHeaderAttributeEnumerateName = new System.Windows.Forms.ColumnHeader(); this.contextMenuStripEnumerate = new System.Windows.Forms.ContextMenuStrip(this.components); this.toolStripMenuItemEnumerateCopyLine = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItemEnumerateCopyList = new System.Windows.Forms.ToolStripMenuItem(); this.splitterElementList = new System.Windows.Forms.Splitter(); this.listViewElements = new System.Windows.Forms.ListView(); this.columnHeaderElementListName = new System.Windows.Forms.ColumnHeader(); this.columnHeaderElementListType = new System.Windows.Forms.ColumnHeader(); this.columnHeaderElementListNamespace = new System.Windows.Forms.ColumnHeader(); this.contextMenuStripElements = new System.Windows.Forms.ContextMenuStrip(this.components); this.addToDiagrammToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItem4 = new System.Windows.Forms.ToolStripSeparator(); this.toolStripMenuItemElementsCopyLine = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItemElementsCopyList = new System.Windows.Forms.ToolStripMenuItem(); this.contextMenuStripDiagram = new System.Windows.Forms.ContextMenuStrip(this.components); this.gotoXSDFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.removeFromDiagramToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator(); this.addAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.removeAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.expandOneLevelToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.textBoxElementPath = new System.Windows.Forms.TextBox(); this.toolTip = new System.Windows.Forms.ToolTip(this.components); this.openURLToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.menuStripMain.SuspendLayout(); this.statusStripMain.SuspendLayout(); this.toolStripMain.SuspendLayout(); this.splitContainerMain.Panel1.SuspendLayout(); this.splitContainerMain.Panel2.SuspendLayout(); this.splitContainerMain.SuspendLayout(); this.tabControlView.SuspendLayout(); this.tabPageDiagram.SuspendLayout(); this.splitContainerDiagramElement.Panel1.SuspendLayout(); this.splitContainerDiagramElement.SuspendLayout(); this.tabControlElement.SuspendLayout(); this.tabPageElementAttibutes.SuspendLayout(); this.contextMenuStripAttributes.SuspendLayout(); this.tabPageElement.SuspendLayout(); this.contextMenuStripEnumerate.SuspendLayout(); this.contextMenuStripElements.SuspendLayout(); this.contextMenuStripDiagram.SuspendLayout(); this.SuspendLayout(); // // menuStripMain // this.menuStripMain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.fileToolStripMenuItem, this.toolsToolStripMenuItem, this.windowToolStripMenuItem, this.helpToolStripMenuItem}); this.menuStripMain.Location = new System.Drawing.Point(0, 0); this.menuStripMain.Name = "menuStripMain"; this.menuStripMain.Size = new System.Drawing.Size(876, 24); this.menuStripMain.TabIndex = 0; this.menuStripMain.Text = "menuStripMain"; // // fileToolStripMenuItem // this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.openToolStripMenuItem, this.openURLToolStripMenuItem, this.saveDiagramToolStripMenuItem, this.validateXMLFileToolStripMenuItem, this.toolStripMenuItem2, this.pageToolStripMenuItem, this.printPreviewToolStripMenuItem, this.printToolStripMenuItem, this.toolStripMenuItem1, this.exitToolStripMenuItem}); this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); this.fileToolStripMenuItem.Text = "&File"; this.fileToolStripMenuItem.DropDownOpening += new System.EventHandler(this.toolsToolStripMenuItem_DropDownOpening); // // openToolStripMenuItem // this.openToolStripMenuItem.Image = global::XSDDiagram.Properties.Resources.Open; this.openToolStripMenuItem.Name = "openToolStripMenuItem"; this.openToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O))); this.openToolStripMenuItem.Size = new System.Drawing.Size(204, 22); this.openToolStripMenuItem.Text = "&Open..."; this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click); // // saveDiagramToolStripMenuItem // this.saveDiagramToolStripMenuItem.Image = global::XSDDiagram.Properties.Resources.SaveGreen; this.saveDiagramToolStripMenuItem.Name = "saveDiagramToolStripMenuItem"; this.saveDiagramToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.E))); this.saveDiagramToolStripMenuItem.Size = new System.Drawing.Size(204, 22); this.saveDiagramToolStripMenuItem.Text = "&Export Diagram..."; this.saveDiagramToolStripMenuItem.Click += new System.EventHandler(this.saveDiagramToolStripMenuItem_Click); // // validateXMLFileToolStripMenuItem // this.validateXMLFileToolStripMenuItem.Name = "validateXMLFileToolStripMenuItem"; this.validateXMLFileToolStripMenuItem.Size = new System.Drawing.Size(204, 22); this.validateXMLFileToolStripMenuItem.Text = "&Validate XML File..."; this.validateXMLFileToolStripMenuItem.Click += new System.EventHandler(this.validateXMLFileToolStripMenuItem_Click); // // toolStripMenuItem2 // this.toolStripMenuItem2.Name = "toolStripMenuItem2"; this.toolStripMenuItem2.Size = new System.Drawing.Size(201, 6); // // pageToolStripMenuItem // this.pageToolStripMenuItem.Name = "pageToolStripMenuItem"; this.pageToolStripMenuItem.Size = new System.Drawing.Size(204, 22); this.pageToolStripMenuItem.Text = "Page Set&up..."; this.pageToolStripMenuItem.Click += new System.EventHandler(this.pageToolStripMenuItem_Click); // // printPreviewToolStripMenuItem // this.printPreviewToolStripMenuItem.Image = global::XSDDiagram.Properties.Resources.PrintPreview; this.printPreviewToolStripMenuItem.Name = "printPreviewToolStripMenuItem"; this.printPreviewToolStripMenuItem.Size = new System.Drawing.Size(204, 22); this.printPreviewToolStripMenuItem.Text = "Print Pre&view..."; this.printPreviewToolStripMenuItem.Click += new System.EventHandler(this.printPreviewToolStripMenuItem_Click); // // printToolStripMenuItem // this.printToolStripMenuItem.Image = global::XSDDiagram.Properties.Resources.Print; this.printToolStripMenuItem.Name = "printToolStripMenuItem"; this.printToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.P))); this.printToolStripMenuItem.Size = new System.Drawing.Size(204, 22); this.printToolStripMenuItem.Text = "&Print..."; this.printToolStripMenuItem.Click += new System.EventHandler(this.printToolStripMenuItem_Click); // // toolStripMenuItem1 // this.toolStripMenuItem1.Name = "toolStripMenuItem1"; this.toolStripMenuItem1.Size = new System.Drawing.Size(201, 6); // // exitToolStripMenuItem // this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; this.exitToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.F4))); this.exitToolStripMenuItem.Size = new System.Drawing.Size(204, 22); this.exitToolStripMenuItem.Text = "E&xit"; this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click); // // toolsToolStripMenuItem // this.toolsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.windowsExplorerRegistrationToolStripMenuItem}); this.toolsToolStripMenuItem.Name = "toolsToolStripMenuItem"; this.toolsToolStripMenuItem.Size = new System.Drawing.Size(48, 20); this.toolsToolStripMenuItem.Text = "&Tools"; // // windowsExplorerRegistrationToolStripMenuItem // this.windowsExplorerRegistrationToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.registerToolStripMenuItem, this.unregisterToolStripMenuItem}); this.windowsExplorerRegistrationToolStripMenuItem.Image = global::XSDDiagram.Properties.Resources.Properties; this.windowsExplorerRegistrationToolStripMenuItem.Name = "windowsExplorerRegistrationToolStripMenuItem"; this.windowsExplorerRegistrationToolStripMenuItem.Size = new System.Drawing.Size(262, 22); this.windowsExplorerRegistrationToolStripMenuItem.Text = "&Windows Explorer Contextual Menu"; // // registerToolStripMenuItem // this.registerToolStripMenuItem.Image = global::XSDDiagram.Properties.Resources.Forward; this.registerToolStripMenuItem.Name = "registerToolStripMenuItem"; this.registerToolStripMenuItem.Size = new System.Drawing.Size(128, 22); this.registerToolStripMenuItem.Text = "&Register"; this.registerToolStripMenuItem.Click += new System.EventHandler(this.registerToolStripMenuItem_Click); // // unregisterToolStripMenuItem // this.unregisterToolStripMenuItem.Image = global::XSDDiagram.Properties.Resources.Stop; this.unregisterToolStripMenuItem.Name = "unregisterToolStripMenuItem"; this.unregisterToolStripMenuItem.Size = new System.Drawing.Size(128, 22); this.unregisterToolStripMenuItem.Text = "&Unregister"; this.unregisterToolStripMenuItem.Click += new System.EventHandler(this.unregisterToolStripMenuItem_Click); // // windowToolStripMenuItem // this.windowToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.nextTabToolStripMenuItem, this.previousTabToolStripMenuItem}); this.windowToolStripMenuItem.Name = "windowToolStripMenuItem"; this.windowToolStripMenuItem.Size = new System.Drawing.Size(63, 20); this.windowToolStripMenuItem.Text = "&Window"; // // nextTabToolStripMenuItem // this.nextTabToolStripMenuItem.Name = "nextTabToolStripMenuItem"; this.nextTabToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Tab))); this.nextTabToolStripMenuItem.Size = new System.Drawing.Size(228, 22); this.nextTabToolStripMenuItem.Text = "&Next Tab"; this.nextTabToolStripMenuItem.Click += new System.EventHandler(this.nextTabToolStripMenuItem_Click); // // previousTabToolStripMenuItem // this.previousTabToolStripMenuItem.Name = "previousTabToolStripMenuItem"; this.previousTabToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.Tab))); this.previousTabToolStripMenuItem.Size = new System.Drawing.Size(228, 22); this.previousTabToolStripMenuItem.Text = "&Previous Tab"; this.previousTabToolStripMenuItem.Click += new System.EventHandler(this.previousTabToolStripMenuItem_Click); // // helpToolStripMenuItem // this.helpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.aboutToolStripMenuItem}); this.helpToolStripMenuItem.Name = "helpToolStripMenuItem"; this.helpToolStripMenuItem.Size = new System.Drawing.Size(44, 20); this.helpToolStripMenuItem.Text = "&Help"; // // aboutToolStripMenuItem // this.aboutToolStripMenuItem.Image = global::XSDDiagram.Properties.Resources.Help; this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem"; this.aboutToolStripMenuItem.Size = new System.Drawing.Size(116, 22); this.aboutToolStripMenuItem.Text = "&About..."; this.aboutToolStripMenuItem.Click += new System.EventHandler(this.aboutToolStripMenuItem_Click); // // statusStripMain // this.statusStripMain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.toolStripStatusLabel1}); this.statusStripMain.Location = new System.Drawing.Point(0, 594); this.statusStripMain.Name = "statusStripMain"; this.statusStripMain.RenderMode = System.Windows.Forms.ToolStripRenderMode.ManagerRenderMode; this.statusStripMain.Size = new System.Drawing.Size(876, 22); this.statusStripMain.TabIndex = 1; this.statusStripMain.Text = "statusStripMain"; // // toolStripStatusLabel1 // this.toolStripStatusLabel1.Name = "toolStripStatusLabel1"; this.toolStripStatusLabel1.Size = new System.Drawing.Size(39, 17); this.toolStripStatusLabel1.Text = "Ready"; // // toolStripMain // this.toolStripMain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.toolStripButtonOpen, this.toolStripButtonSaveDiagram, this.toolStripButtonPrint, this.toolStripSeparator2, this.toolStripComboBoxSchemaElement, this.toolStripButtonAddToDiagram, this.toolStripButtonAddAllToDiagram, this.toolStripButtonRemoveAllFromDiagram, this.toolStripButtonExpandOneLevel, this.toolStripSeparator1, this.toolStripComboBoxZoom, this.toolStripComboBoxAlignement, this.toolStripButtonShowReferenceBoundingBox, this.toolStripButtonTogglePanel, this.toolStripSeparator4, this.toolStripButtonAbout}); this.toolStripMain.Location = new System.Drawing.Point(0, 24); this.toolStripMain.Name = "toolStripMain"; this.toolStripMain.Size = new System.Drawing.Size(876, 25); this.toolStripMain.TabIndex = 2; this.toolStripMain.Text = "toolStrip1"; // // toolStripButtonOpen // this.toolStripButtonOpen.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.toolStripButtonOpen.Image = global::XSDDiagram.Properties.Resources.Open; this.toolStripButtonOpen.ImageTransparentColor = System.Drawing.Color.Magenta; this.toolStripButtonOpen.Name = "toolStripButtonOpen"; this.toolStripButtonOpen.Size = new System.Drawing.Size(23, 22); this.toolStripButtonOpen.Text = "&Open"; this.toolStripButtonOpen.ToolTipText = "Open and load a new XSD (XML Schema Definition) file"; this.toolStripButtonOpen.Click += new System.EventHandler(this.openToolStripMenuItem_Click); // // toolStripButtonSaveDiagram // this.toolStripButtonSaveDiagram.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.toolStripButtonSaveDiagram.Image = global::XSDDiagram.Properties.Resources.SaveGreen; this.toolStripButtonSaveDiagram.ImageTransparentColor = System.Drawing.Color.Magenta; this.toolStripButtonSaveDiagram.Name = "toolStripButtonSaveDiagram"; this.toolStripButtonSaveDiagram.Size = new System.Drawing.Size(23, 22); this.toolStripButtonSaveDiagram.Text = "Export"; this.toolStripButtonSaveDiagram.ToolTipText = "Export the current diagram"; this.toolStripButtonSaveDiagram.Click += new System.EventHandler(this.saveDiagramToolStripMenuItem_Click); // // toolStripButtonPrint // this.toolStripButtonPrint.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.toolStripButtonPrint.Image = global::XSDDiagram.Properties.Resources.Print; this.toolStripButtonPrint.ImageTransparentColor = System.Drawing.Color.Magenta; this.toolStripButtonPrint.Name = "toolStripButtonPrint"; this.toolStripButtonPrint.Size = new System.Drawing.Size(23, 22); this.toolStripButtonPrint.Text = "Print"; this.toolStripButtonPrint.ToolTipText = "Print the current diagram"; this.toolStripButtonPrint.Click += new System.EventHandler(this.printToolStripMenuItem_Click); // // toolStripSeparator2 // this.toolStripSeparator2.Name = "toolStripSeparator2"; this.toolStripSeparator2.Size = new System.Drawing.Size(6, 25); // // toolStripComboBoxSchemaElement // this.toolStripComboBoxSchemaElement.DropDownHeight = 200; this.toolStripComboBoxSchemaElement.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.toolStripComboBoxSchemaElement.DropDownWidth = 300; this.toolStripComboBoxSchemaElement.FlatStyle = System.Windows.Forms.FlatStyle.System; this.toolStripComboBoxSchemaElement.IntegralHeight = false; this.toolStripComboBoxSchemaElement.Name = "toolStripComboBoxSchemaElement"; this.toolStripComboBoxSchemaElement.Size = new System.Drawing.Size(200, 25); this.toolStripComboBoxSchemaElement.ToolTipText = "List of toplevel element"; this.toolStripComboBoxSchemaElement.SelectedIndexChanged += new System.EventHandler(this.toolStripComboBoxSchemaElement_SelectedIndexChanged); // // toolStripButtonAddToDiagram // this.toolStripButtonAddToDiagram.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.toolStripButtonAddToDiagram.Image = global::XSDDiagram.Properties.Resources.Plus; this.toolStripButtonAddToDiagram.ImageTransparentColor = System.Drawing.Color.Magenta; this.toolStripButtonAddToDiagram.Name = "toolStripButtonAddToDiagram"; this.toolStripButtonAddToDiagram.Size = new System.Drawing.Size(23, 22); this.toolStripButtonAddToDiagram.Text = "Add"; this.toolStripButtonAddToDiagram.ToolTipText = "Add selected toplevel element"; this.toolStripButtonAddToDiagram.Click += new System.EventHandler(this.toolStripButtonAddToDiagram_Click); // // toolStripButtonAddAllToDiagram // this.toolStripButtonAddAllToDiagram.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.toolStripButtonAddAllToDiagram.Image = global::XSDDiagram.Properties.Resources.PlusPlus; this.toolStripButtonAddAllToDiagram.ImageTransparentColor = System.Drawing.Color.Magenta; this.toolStripButtonAddAllToDiagram.Name = "toolStripButtonAddAllToDiagram"; this.toolStripButtonAddAllToDiagram.Size = new System.Drawing.Size(23, 22); this.toolStripButtonAddAllToDiagram.Text = "Add All"; this.toolStripButtonAddAllToDiagram.ToolTipText = "Add all toplevel elements"; this.toolStripButtonAddAllToDiagram.Click += new System.EventHandler(this.toolStripButtonAddAllToDiagram_Click); // // toolStripButtonRemoveAllFromDiagram // this.toolStripButtonRemoveAllFromDiagram.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.toolStripButtonRemoveAllFromDiagram.Image = global::XSDDiagram.Properties.Resources.Delete; this.toolStripButtonRemoveAllFromDiagram.ImageTransparentColor = System.Drawing.Color.Magenta; this.toolStripButtonRemoveAllFromDiagram.Name = "toolStripButtonRemoveAllFromDiagram"; this.toolStripButtonRemoveAllFromDiagram.Size = new System.Drawing.Size(23, 22); this.toolStripButtonRemoveAllFromDiagram.Text = "Remove All"; this.toolStripButtonRemoveAllFromDiagram.Click += new System.EventHandler(this.toolStripButtonRemoveAllFromDiagram_Click); // // toolStripButtonExpandOneLevel // this.toolStripButtonExpandOneLevel.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.toolStripButtonExpandOneLevel.Image = global::XSDDiagram.Properties.Resources.Expand; this.toolStripButtonExpandOneLevel.ImageTransparentColor = System.Drawing.Color.Magenta; this.toolStripButtonExpandOneLevel.Name = "toolStripButtonExpandOneLevel"; this.toolStripButtonExpandOneLevel.Size = new System.Drawing.Size(23, 22); this.toolStripButtonExpandOneLevel.Text = "Expand"; this.toolStripButtonExpandOneLevel.ToolTipText = "Expand one level"; this.toolStripButtonExpandOneLevel.Click += new System.EventHandler(this.expandOneLevelToolStripMenuItem_Click); // // toolStripSeparator1 // this.toolStripSeparator1.Name = "toolStripSeparator1"; this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25); // // toolStripComboBoxZoom // this.toolStripComboBoxZoom.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.toolStripComboBoxZoom.DropDownWidth = 40; this.toolStripComboBoxZoom.FlatStyle = System.Windows.Forms.FlatStyle.System; this.toolStripComboBoxZoom.Items.AddRange(new object[] { "10%", "50%", "60%", "75%", "80%", "85%", "90%", "95%", "100%", "105%", "110%", "115%", "120%", "125%", "140%", "150%", "175%", "200%", "300%"}); this.toolStripComboBoxZoom.Name = "toolStripComboBoxZoom"; this.toolStripComboBoxZoom.Size = new System.Drawing.Size(75, 25); this.toolStripComboBoxZoom.ToolTipText = "Zoom"; this.toolStripComboBoxZoom.SelectedIndexChanged += new System.EventHandler(this.toolStripComboBoxZoom_SelectedIndexChanged); this.toolStripComboBoxZoom.TextChanged += new System.EventHandler(this.toolStripComboBoxZoom_TextChanged); // // toolStripComboBoxAlignement // this.toolStripComboBoxAlignement.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.toolStripComboBoxAlignement.DropDownWidth = 50; this.toolStripComboBoxAlignement.FlatStyle = System.Windows.Forms.FlatStyle.System; this.toolStripComboBoxAlignement.Items.AddRange(new object[] { "Top", "Center", "Bottom"}); this.toolStripComboBoxAlignement.Name = "toolStripComboBoxAlignement"; this.toolStripComboBoxAlignement.Size = new System.Drawing.Size(75, 25); this.toolStripComboBoxAlignement.ToolTipText = "Alignment"; this.toolStripComboBoxAlignement.SelectedIndexChanged += new System.EventHandler(this.toolStripComboBoxAlignement_SelectedIndexChanged); // // toolStripButtonShowReferenceBoundingBox // this.toolStripButtonShowReferenceBoundingBox.CheckOnClick = true; this.toolStripButtonShowReferenceBoundingBox.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.toolStripButtonShowReferenceBoundingBox.Image = global::XSDDiagram.Properties.Resources.Reference; this.toolStripButtonShowReferenceBoundingBox.ImageTransparentColor = System.Drawing.Color.Magenta; this.toolStripButtonShowReferenceBoundingBox.Name = "toolStripButtonShowReferenceBoundingBox"; this.toolStripButtonShowReferenceBoundingBox.Size = new System.Drawing.Size(23, 22); this.toolStripButtonShowReferenceBoundingBox.Text = "References"; this.toolStripButtonShowReferenceBoundingBox.ToolTipText = "Show the bounding box for the referenced elements"; this.toolStripButtonShowReferenceBoundingBox.Visible = false; this.toolStripButtonShowReferenceBoundingBox.Click += new System.EventHandler(this.toolStripButtonShowReferenceBoundingBox_Click); // // toolStripButtonTogglePanel // this.toolStripButtonTogglePanel.Checked = true; this.toolStripButtonTogglePanel.CheckOnClick = true; this.toolStripButtonTogglePanel.CheckState = System.Windows.Forms.CheckState.Checked; this.toolStripButtonTogglePanel.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.toolStripButtonTogglePanel.Image = global::XSDDiagram.Properties.Resources.Panel; this.toolStripButtonTogglePanel.ImageTransparentColor = System.Drawing.Color.Magenta; this.toolStripButtonTogglePanel.Name = "toolStripButtonTogglePanel"; this.toolStripButtonTogglePanel.Size = new System.Drawing.Size(23, 22); this.toolStripButtonTogglePanel.Text = "Toggle Panel"; this.toolStripButtonTogglePanel.Click += new System.EventHandler(this.toolStripButtonTogglePanel_Click); // // toolStripSeparator4 // this.toolStripSeparator4.Name = "toolStripSeparator4"; this.toolStripSeparator4.Size = new System.Drawing.Size(6, 25); // // toolStripButtonAbout // this.toolStripButtonAbout.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.toolStripButtonAbout.Image = global::XSDDiagram.Properties.Resources.Help; this.toolStripButtonAbout.ImageTransparentColor = System.Drawing.Color.Magenta; this.toolStripButtonAbout.Name = "toolStripButtonAbout"; this.toolStripButtonAbout.Size = new System.Drawing.Size(23, 22); this.toolStripButtonAbout.Text = "About"; this.toolStripButtonAbout.Click += new System.EventHandler(this.aboutToolStripMenuItem_Click); // // splitContainerMain // this.splitContainerMain.Dock = System.Windows.Forms.DockStyle.Fill; this.splitContainerMain.Location = new System.Drawing.Point(0, 49); this.splitContainerMain.Name = "splitContainerMain"; // // splitContainerMain.Panel1 // this.splitContainerMain.Panel1.Controls.Add(this.tabControlView); // // splitContainerMain.Panel2 // this.splitContainerMain.Panel2.Controls.Add(this.splitContainerDiagramElement); this.splitContainerMain.Size = new System.Drawing.Size(876, 525); this.splitContainerMain.SplitterDistance = 658; this.splitContainerMain.TabIndex = 4; // // tabControlView // this.tabControlView.CausesValidation = false; this.tabControlView.Controls.Add(this.tabPageDiagram); this.tabControlView.Dock = System.Windows.Forms.DockStyle.Fill; this.tabControlView.Location = new System.Drawing.Point(0, 0); this.tabControlView.Name = "tabControlView"; this.tabControlView.SelectedIndex = 0; this.tabControlView.Size = new System.Drawing.Size(658, 525); this.tabControlView.TabIndex = 1; this.tabControlView.TabStop = false; this.tabControlView.Selected += new System.Windows.Forms.TabControlEventHandler(this.tabControlView_Selected); this.tabControlView.Click += new System.EventHandler(this.tabControlView_Click); this.tabControlView.Enter += new System.EventHandler(this.tabControlView_Enter); // // tabPageDiagram // this.tabPageDiagram.Controls.Add(this.panelDiagram); this.tabPageDiagram.Location = new System.Drawing.Point(4, 22); this.tabPageDiagram.Margin = new System.Windows.Forms.Padding(0); this.tabPageDiagram.Name = "tabPageDiagram"; this.tabPageDiagram.Size = new System.Drawing.Size(650, 499); this.tabPageDiagram.TabIndex = 0; this.tabPageDiagram.Text = "Diagram"; this.tabPageDiagram.UseVisualStyleBackColor = true; // // panelDiagram // this.panelDiagram.AllowDrop = true; this.panelDiagram.AutoScroll = true; this.panelDiagram.BackColor = System.Drawing.Color.WhiteSmoke; this.panelDiagram.CausesValidation = false; this.panelDiagram.Dock = System.Windows.Forms.DockStyle.Fill; this.panelDiagram.Location = new System.Drawing.Point(0, 0); this.panelDiagram.Margin = new System.Windows.Forms.Padding(0); this.panelDiagram.Name = "panelDiagram"; this.panelDiagram.Size = new System.Drawing.Size(650, 499); this.panelDiagram.TabIndex = 0; this.panelDiagram.VirtualPoint = new System.Drawing.Point(0, 0); this.panelDiagram.VirtualSize = new System.Drawing.Size(10, 10); this.panelDiagram.DragDrop += new System.Windows.Forms.DragEventHandler(this.panelDiagram_DragDrop); this.panelDiagram.DragEnter += new System.Windows.Forms.DragEventHandler(this.panelDiagram_DragEnter); // // splitContainerDiagramElement // this.splitContainerDiagramElement.Dock = System.Windows.Forms.DockStyle.Fill; this.splitContainerDiagramElement.Location = new System.Drawing.Point(0, 0); this.splitContainerDiagramElement.Name = "splitContainerDiagramElement"; this.splitContainerDiagramElement.Orientation = System.Windows.Forms.Orientation.Horizontal; // // splitContainerDiagramElement.Panel1 // this.splitContainerDiagramElement.Panel1.Controls.Add(this.tabControlElement); this.splitContainerDiagramElement.Panel1.Controls.Add(this.splitter1); this.splitContainerDiagramElement.Panel1.Controls.Add(this.listViewEnumerate); this.splitContainerDiagramElement.Panel1.Controls.Add(this.splitterElementList); this.splitContainerDiagramElement.Panel1.Controls.Add(this.listViewElements); this.splitContainerDiagramElement.Size = new System.Drawing.Size(214, 525); this.splitContainerDiagramElement.SplitterDistance = 404; this.splitContainerDiagramElement.TabIndex = 4; // // tabControlElement // this.tabControlElement.Controls.Add(this.tabPageElementAttibutes); this.tabControlElement.Controls.Add(this.tabPageElement); this.tabControlElement.Dock = System.Windows.Forms.DockStyle.Fill; this.tabControlElement.Location = new System.Drawing.Point(0, 155); this.tabControlElement.Name = "tabControlElement"; this.tabControlElement.SelectedIndex = 0; this.tabControlElement.Size = new System.Drawing.Size(214, 153); this.tabControlElement.TabIndex = 8; // // tabPageElementAttibutes // this.tabPageElementAttibutes.Controls.Add(this.listViewAttributes); this.tabPageElementAttibutes.Location = new System.Drawing.Point(4, 22); this.tabPageElementAttibutes.Name = "tabPageElementAttibutes"; this.tabPageElementAttibutes.Padding = new System.Windows.Forms.Padding(3); this.tabPageElementAttibutes.Size = new System.Drawing.Size(206, 127); this.tabPageElementAttibutes.TabIndex = 0; this.tabPageElementAttibutes.Text = "Attibutes"; this.tabPageElementAttibutes.UseVisualStyleBackColor = true; // // listViewAttributes // this.listViewAttributes.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { this.columnHeaderAttributesName, this.columnHeaderAttributesType, this.columnHeaderAttributesUse, this.columnHeaderAttributesDefault}); this.listViewAttributes.ContextMenuStrip = this.contextMenuStripAttributes; this.listViewAttributes.Dock = System.Windows.Forms.DockStyle.Fill; this.listViewAttributes.FullRowSelect = true; this.listViewAttributes.GridLines = true; this.listViewAttributes.LabelEdit = true; this.listViewAttributes.Location = new System.Drawing.Point(3, 3); this.listViewAttributes.MultiSelect = false; this.listViewAttributes.Name = "listViewAttributes"; this.listViewAttributes.Size = new System.Drawing.Size(200, 121); this.listViewAttributes.TabIndex = 0; this.listViewAttributes.UseCompatibleStateImageBehavior = false; this.listViewAttributes.View = System.Windows.Forms.View.Details; this.listViewAttributes.AfterLabelEdit += new System.Windows.Forms.LabelEditEventHandler(this.listView_AfterLabelEdit); this.listViewAttributes.SelectedIndexChanged += new System.EventHandler(this.listViewAttributes_SelectedIndexChanged); this.listViewAttributes.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.listViewAttributes_ColumnClick); // // columnHeaderAttributesName // this.columnHeaderAttributesName.Text = "Name"; // // columnHeaderAttributesType // this.columnHeaderAttributesType.Text = "Type"; // // columnHeaderAttributesUse // this.columnHeaderAttributesUse.DisplayIndex = 3; this.columnHeaderAttributesUse.Text = "Use"; // // columnHeaderAttributesDefault // this.columnHeaderAttributesDefault.DisplayIndex = 2; this.columnHeaderAttributesDefault.Text = "Default"; // // contextMenuStripAttributes // this.contextMenuStripAttributes.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.toolStripMenuItemAttributesCopyLine, this.toolStripMenuItemAttributesCopyList}); this.contextMenuStripAttributes.Name = "contextMenuStripAttributes"; this.contextMenuStripAttributes.Size = new System.Drawing.Size(128, 48); this.contextMenuStripAttributes.Opening += new System.ComponentModel.CancelEventHandler(this.contextMenuStripAttributes_Opening); // // toolStripMenuItemAttributesCopyLine // this.toolStripMenuItemAttributesCopyLine.Name = "toolStripMenuItemAttributesCopyLine"; this.toolStripMenuItemAttributesCopyLine.Size = new System.Drawing.Size(127, 22); this.toolStripMenuItemAttributesCopyLine.Text = "Copy Line"; this.toolStripMenuItemAttributesCopyLine.Click += new System.EventHandler(this.toolStripMenuItemAttributesCopyLine_Click); // // toolStripMenuItemAttributesCopyList // this.toolStripMenuItemAttributesCopyList.Name = "toolStripMenuItemAttributesCopyList"; this.toolStripMenuItemAttributesCopyList.Size = new System.Drawing.Size(127, 22); this.toolStripMenuItemAttributesCopyList.Text = "Copy List"; this.toolStripMenuItemAttributesCopyList.Click += new System.EventHandler(this.toolStripMenuItemAttributesCopyList_Click); // // tabPageElement // this.tabPageElement.Controls.Add(this.propertyGridSchemaObject); this.tabPageElement.Location = new System.Drawing.Point(4, 22); this.tabPageElement.Name = "tabPageElement"; this.tabPageElement.Padding = new System.Windows.Forms.Padding(3); this.tabPageElement.Size = new System.Drawing.Size(206, 127); this.tabPageElement.TabIndex = 1; this.tabPageElement.Text = "Element"; this.tabPageElement.UseVisualStyleBackColor = true; // // propertyGridSchemaObject // this.propertyGridSchemaObject.Dock = System.Windows.Forms.DockStyle.Fill; this.propertyGridSchemaObject.HelpVisible = false; this.propertyGridSchemaObject.Location = new System.Drawing.Point(3, 3); this.propertyGridSchemaObject.Name = "propertyGridSchemaObject"; this.propertyGridSchemaObject.PropertySort = System.Windows.Forms.PropertySort.Alphabetical; this.propertyGridSchemaObject.Size = new System.Drawing.Size(200, 121); this.propertyGridSchemaObject.TabIndex = 0; this.propertyGridSchemaObject.ToolbarVisible = false; // // splitter1 // this.splitter1.Dock = System.Windows.Forms.DockStyle.Bottom; this.splitter1.Location = new System.Drawing.Point(0, 308); this.splitter1.Name = "splitter1"; this.splitter1.Size = new System.Drawing.Size(214, 5); this.splitter1.TabIndex = 7; this.splitter1.TabStop = false; // // listViewEnumerate // this.listViewEnumerate.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { this.columnHeaderAttributeEnumerateName}); this.listViewEnumerate.ContextMenuStrip = this.contextMenuStripEnumerate; this.listViewEnumerate.Dock = System.Windows.Forms.DockStyle.Bottom; this.listViewEnumerate.FullRowSelect = true; this.listViewEnumerate.GridLines = true; this.listViewEnumerate.Location = new System.Drawing.Point(0, 313); this.listViewEnumerate.Name = "listViewEnumerate"; this.listViewEnumerate.Size = new System.Drawing.Size(214, 91); this.listViewEnumerate.TabIndex = 6; this.listViewEnumerate.UseCompatibleStateImageBehavior = false; this.listViewEnumerate.View = System.Windows.Forms.View.Details; this.listViewEnumerate.SelectedIndexChanged += new System.EventHandler(this.listViewEnumerate_SelectedIndexChanged); // // columnHeaderAttributeEnumerateName // this.columnHeaderAttributeEnumerateName.Text = "Name"; this.columnHeaderAttributeEnumerateName.Width = 142; // // contextMenuStripEnumerate // this.contextMenuStripEnumerate.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.toolStripMenuItemEnumerateCopyLine, this.toolStripMenuItemEnumerateCopyList}); this.contextMenuStripEnumerate.Name = "contextMenuStripAttributes"; this.contextMenuStripEnumerate.Size = new System.Drawing.Size(128, 48); this.contextMenuStripEnumerate.Opening += new System.ComponentModel.CancelEventHandler(this.contextMenuStripEnumerate_Opening); // // toolStripMenuItemEnumerateCopyLine // this.toolStripMenuItemEnumerateCopyLine.Name = "toolStripMenuItemEnumerateCopyLine"; this.toolStripMenuItemEnumerateCopyLine.Size = new System.Drawing.Size(127, 22); this.toolStripMenuItemEnumerateCopyLine.Text = "Copy Line"; this.toolStripMenuItemEnumerateCopyLine.Click += new System.EventHandler(this.toolStripMenuItemEnumerateCopyLine_Click); // // toolStripMenuItemEnumerateCopyList // this.toolStripMenuItemEnumerateCopyList.Name = "toolStripMenuItemEnumerateCopyList"; this.toolStripMenuItemEnumerateCopyList.Size = new System.Drawing.Size(127, 22); this.toolStripMenuItemEnumerateCopyList.Text = "Copy List"; this.toolStripMenuItemEnumerateCopyList.Click += new System.EventHandler(this.toolStripMenuItemEnumerateCopyList_Click); // // splitterElementList // this.splitterElementList.Dock = System.Windows.Forms.DockStyle.Top; this.splitterElementList.Location = new System.Drawing.Point(0, 150); this.splitterElementList.Name = "splitterElementList"; this.splitterElementList.Size = new System.Drawing.Size(214, 5); this.splitterElementList.TabIndex = 5; this.splitterElementList.TabStop = false; // // listViewElements // this.listViewElements.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { this.columnHeaderElementListName, this.columnHeaderElementListType, this.columnHeaderElementListNamespace}); this.listViewElements.ContextMenuStrip = this.contextMenuStripElements; this.listViewElements.Dock = System.Windows.Forms.DockStyle.Top; this.listViewElements.FullRowSelect = true; this.listViewElements.GridLines = true; this.listViewElements.HideSelection = false; this.listViewElements.LabelEdit = true; this.listViewElements.Location = new System.Drawing.Point(0, 0); this.listViewElements.MultiSelect = false; this.listViewElements.Name = "listViewElements"; this.listViewElements.Size = new System.Drawing.Size(214, 150); this.listViewElements.TabIndex = 4; this.listViewElements.UseCompatibleStateImageBehavior = false; this.listViewElements.View = System.Windows.Forms.View.Details; this.listViewElements.AfterLabelEdit += new System.Windows.Forms.LabelEditEventHandler(this.listView_AfterLabelEdit); this.listViewElements.DoubleClick += new System.EventHandler(this.listViewElement_DoubleClick); this.listViewElements.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.listViewElement_ColumnClick); this.listViewElements.ItemDrag += new System.Windows.Forms.ItemDragEventHandler(this.listViewElements_ItemDrag); this.listViewElements.Click += new System.EventHandler(this.listViewElement_Click); // // columnHeaderElementListName // this.columnHeaderElementListName.Text = "Name"; this.columnHeaderElementListName.Width = 113; // // columnHeaderElementListType // this.columnHeaderElementListType.Text = "Type"; this.columnHeaderElementListType.Width = 81; // // columnHeaderElementListNamespace // this.columnHeaderElementListNamespace.Text = "Namespace"; // // contextMenuStripElements // this.contextMenuStripElements.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.addToDiagrammToolStripMenuItem, this.toolStripMenuItem4, this.toolStripMenuItemElementsCopyLine, this.toolStripMenuItemElementsCopyList}); this.contextMenuStripElements.Name = "contextMenuStripAttributes"; this.contextMenuStripElements.Size = new System.Drawing.Size(163, 76); this.contextMenuStripElements.Opening += new System.ComponentModel.CancelEventHandler(this.contextMenuStripElements_Opening); // // addToDiagrammToolStripMenuItem // this.addToDiagrammToolStripMenuItem.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold); this.addToDiagrammToolStripMenuItem.Image = global::XSDDiagram.Properties.Resources.Plus; this.addToDiagrammToolStripMenuItem.Name = "addToDiagrammToolStripMenuItem"; this.addToDiagrammToolStripMenuItem.Size = new System.Drawing.Size(162, 22); this.addToDiagrammToolStripMenuItem.Text = "&Add to Diagram"; this.addToDiagrammToolStripMenuItem.Click += new System.EventHandler(this.listViewElement_DoubleClick); // // toolStripMenuItem4 // this.toolStripMenuItem4.Name = "toolStripMenuItem4"; this.toolStripMenuItem4.Size = new System.Drawing.Size(159, 6); // // toolStripMenuItemElementsCopyLine // this.toolStripMenuItemElementsCopyLine.Name = "toolStripMenuItemElementsCopyLine"; this.toolStripMenuItemElementsCopyLine.Size = new System.Drawing.Size(162, 22); this.toolStripMenuItemElementsCopyLine.Text = "&Copy Line"; this.toolStripMenuItemElementsCopyLine.Click += new System.EventHandler(this.toolStripMenuItemElementsCopyLine_Click); // // toolStripMenuItemElementsCopyList // this.toolStripMenuItemElementsCopyList.Name = "toolStripMenuItemElementsCopyList"; this.toolStripMenuItemElementsCopyList.Size = new System.Drawing.Size(162, 22); this.toolStripMenuItemElementsCopyList.Text = "Copy &List"; this.toolStripMenuItemElementsCopyList.Click += new System.EventHandler(this.toolStripMenuItemElementsCopyList_Click); // // contextMenuStripDiagram // this.contextMenuStripDiagram.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.gotoXSDFileToolStripMenuItem, this.removeFromDiagramToolStripMenuItem, this.toolStripMenuItem3, this.addAllToolStripMenuItem, this.removeAllToolStripMenuItem, this.expandOneLevelToolStripMenuItem}); this.contextMenuStripDiagram.Name = "contextMenuStripDiagram"; this.contextMenuStripDiagram.Size = new System.Drawing.Size(197, 120); this.contextMenuStripDiagram.Opened += new System.EventHandler(this.contextMenuStripDiagram_Opened); // // gotoXSDFileToolStripMenuItem // this.gotoXSDFileToolStripMenuItem.Image = global::XSDDiagram.Properties.Resources.Move; this.gotoXSDFileToolStripMenuItem.Name = "gotoXSDFileToolStripMenuItem"; this.gotoXSDFileToolStripMenuItem.Size = new System.Drawing.Size(196, 22); this.gotoXSDFileToolStripMenuItem.Text = "&Goto XSD File"; this.gotoXSDFileToolStripMenuItem.Click += new System.EventHandler(this.gotoXSDFileToolStripMenuItem_Click); // // removeFromDiagramToolStripMenuItem // this.removeFromDiagramToolStripMenuItem.Image = global::XSDDiagram.Properties.Resources.Minus; this.removeFromDiagramToolStripMenuItem.Name = "removeFromDiagramToolStripMenuItem"; this.removeFromDiagramToolStripMenuItem.Size = new System.Drawing.Size(196, 22); this.removeFromDiagramToolStripMenuItem.Text = "&Remove From Diagram"; this.removeFromDiagramToolStripMenuItem.Click += new System.EventHandler(this.removeFromDiagramToolStripMenuItem_Click); // // toolStripMenuItem3 // this.toolStripMenuItem3.Name = "toolStripMenuItem3"; this.toolStripMenuItem3.Size = new System.Drawing.Size(193, 6); // // addAllToolStripMenuItem // this.addAllToolStripMenuItem.Image = global::XSDDiagram.Properties.Resources.PlusPlus; this.addAllToolStripMenuItem.Name = "addAllToolStripMenuItem"; this.addAllToolStripMenuItem.Size = new System.Drawing.Size(196, 22); this.addAllToolStripMenuItem.Text = "Add &All"; this.addAllToolStripMenuItem.Click += new System.EventHandler(this.toolStripButtonAddAllToDiagram_Click); // // removeAllToolStripMenuItem // this.removeAllToolStripMenuItem.Image = global::XSDDiagram.Properties.Resources.Delete; this.removeAllToolStripMenuItem.Name = "removeAllToolStripMenuItem"; this.removeAllToolStripMenuItem.Size = new System.Drawing.Size(196, 22); this.removeAllToolStripMenuItem.Text = "&Remove All"; this.removeAllToolStripMenuItem.Click += new System.EventHandler(this.toolStripButtonRemoveAllFromDiagram_Click); // // expandOneLevelToolStripMenuItem // this.expandOneLevelToolStripMenuItem.Image = global::XSDDiagram.Properties.Resources.Expand; this.expandOneLevelToolStripMenuItem.Name = "expandOneLevelToolStripMenuItem"; this.expandOneLevelToolStripMenuItem.Size = new System.Drawing.Size(196, 22); this.expandOneLevelToolStripMenuItem.Text = "&Expand One Level"; this.expandOneLevelToolStripMenuItem.Click += new System.EventHandler(this.expandOneLevelToolStripMenuItem_Click); // // textBoxElementPath // this.textBoxElementPath.Dock = System.Windows.Forms.DockStyle.Bottom; this.textBoxElementPath.Location = new System.Drawing.Point(0, 574); this.textBoxElementPath.Name = "textBoxElementPath"; this.textBoxElementPath.ReadOnly = true; this.textBoxElementPath.Size = new System.Drawing.Size(876, 20); this.textBoxElementPath.TabIndex = 5; // // toolTip // this.toolTip.AutomaticDelay = 0; this.toolTip.OwnerDraw = true; this.toolTip.ShowAlways = true; // // openURLToolStripMenuItem // this.openURLToolStripMenuItem.Image = global::XSDDiagram.Properties.Resources.Open; this.openURLToolStripMenuItem.Name = "openURLToolStripMenuItem"; this.openURLToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.U))); this.openURLToolStripMenuItem.Size = new System.Drawing.Size(204, 22); this.openURLToolStripMenuItem.Text = "Open &URL..."; this.openURLToolStripMenuItem.Click += new System.EventHandler(this.openURLToolStripMenuItem_Click); // // MainForm // this.AllowDrop = true; this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(876, 616); this.Controls.Add(this.splitContainerMain); this.Controls.Add(this.textBoxElementPath); this.Controls.Add(this.statusStripMain); this.Controls.Add(this.toolStripMain); this.Controls.Add(this.menuStripMain); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.KeyPreview = true; this.MainMenuStrip = this.menuStripMain; this.Name = "MainForm"; this.Text = "XSD Diagram"; this.Load += new System.EventHandler(this.MainForm_Load); this.DragDrop += new System.Windows.Forms.DragEventHandler(this.MainForm_DragDrop); this.DragEnter += new System.Windows.Forms.DragEventHandler(this.MainForm_DragEnter); this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.MainForm_KeyUp); this.menuStripMain.ResumeLayout(false); this.menuStripMain.PerformLayout(); this.statusStripMain.ResumeLayout(false); this.statusStripMain.PerformLayout(); this.toolStripMain.ResumeLayout(false); this.toolStripMain.PerformLayout(); this.splitContainerMain.Panel1.ResumeLayout(false); this.splitContainerMain.Panel2.ResumeLayout(false); this.splitContainerMain.ResumeLayout(false); this.tabControlView.ResumeLayout(false); this.tabPageDiagram.ResumeLayout(false); this.splitContainerDiagramElement.Panel1.ResumeLayout(false); this.splitContainerDiagramElement.ResumeLayout(false); this.tabControlElement.ResumeLayout(false); this.tabPageElementAttibutes.ResumeLayout(false); this.contextMenuStripAttributes.ResumeLayout(false); this.tabPageElement.ResumeLayout(false); this.contextMenuStripEnumerate.ResumeLayout(false); this.contextMenuStripElements.ResumeLayout(false); this.contextMenuStripDiagram.ResumeLayout(false); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.MenuStrip menuStripMain; private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem openToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1; private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem helpToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuItem; private System.Windows.Forms.StatusStrip statusStripMain; private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel1; private System.Windows.Forms.ToolStrip toolStripMain; private System.Windows.Forms.ToolStripButton toolStripButtonOpen; private System.Windows.Forms.ToolStripComboBox toolStripComboBoxSchemaElement; private System.Windows.Forms.SplitContainer splitContainerMain; private System.Windows.Forms.ToolStripButton toolStripButtonAddToDiagram; private System.Windows.Forms.ToolStripComboBox toolStripComboBoxZoom; private System.Windows.Forms.ToolStripMenuItem saveDiagramToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripMenuItem2; private System.Windows.Forms.ToolStripMenuItem pageToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem printPreviewToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem printToolStripMenuItem; private System.Windows.Forms.ToolStripButton toolStripButtonTogglePanel; private System.Windows.Forms.ToolStripSeparator toolStripSeparator2; private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; private System.Windows.Forms.ToolStripButton toolStripButtonAbout; private System.Windows.Forms.ToolStripButton toolStripButtonSaveDiagram; private System.Windows.Forms.ToolStripButton toolStripButtonPrint; private System.Windows.Forms.ContextMenuStrip contextMenuStripDiagram; private System.Windows.Forms.ToolStripMenuItem removeFromDiagramToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem toolsToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem windowsExplorerRegistrationToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem registerToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem unregisterToolStripMenuItem; private System.Windows.Forms.SplitContainer splitContainerDiagramElement; //private System.Windows.Forms.TextBox textBoxAnnotation; private System.Windows.Forms.ToolStripSeparator toolStripSeparator4; private System.Windows.Forms.ToolStripButton toolStripButtonShowReferenceBoundingBox; private System.Windows.Forms.ToolStripButton toolStripButtonAddAllToDiagram; //private System.Windows.Forms.WebBrowser webBrowserDocumentation; private System.Windows.Forms.Splitter splitterElementList; private System.Windows.Forms.ListView listViewElements; private System.Windows.Forms.ColumnHeader columnHeaderElementListType; private System.Windows.Forms.ColumnHeader columnHeaderElementListName; private System.Windows.Forms.ToolStripMenuItem expandOneLevelToolStripMenuItem; private System.Windows.Forms.ToolStripButton toolStripButtonRemoveAllFromDiagram; private System.Windows.Forms.ToolStripButton toolStripButtonExpandOneLevel; private System.Windows.Forms.ToolStripMenuItem addAllToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem removeAllToolStripMenuItem; private System.Windows.Forms.TextBox textBoxElementPath; private System.Windows.Forms.ListView listViewAttributes; private System.Windows.Forms.ColumnHeader columnHeaderAttributesName; private System.Windows.Forms.ColumnHeader columnHeaderAttributesType; private System.Windows.Forms.ColumnHeader columnHeaderAttributesDefault; private System.Windows.Forms.ColumnHeader columnHeaderElementListNamespace; private System.Windows.Forms.ColumnHeader columnHeaderAttributesUse; private System.Windows.Forms.TabControl tabControlView; private System.Windows.Forms.TabPage tabPageDiagram; private DiagramControlContainer panelDiagram; private System.Windows.Forms.ToolStripMenuItem gotoXSDFileToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripMenuItem3; private System.Windows.Forms.ToolStripComboBox toolStripComboBoxAlignement; private System.Windows.Forms.ToolStripMenuItem windowToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem nextTabToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem previousTabToolStripMenuItem; private System.Windows.Forms.ListView listViewEnumerate; private System.Windows.Forms.Splitter splitter1; private System.Windows.Forms.ColumnHeader columnHeaderAttributeEnumerateName; private System.Windows.Forms.ContextMenuStrip contextMenuStripAttributes; private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemAttributesCopyLine; private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemAttributesCopyList; private System.Windows.Forms.ContextMenuStrip contextMenuStripEnumerate; private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemEnumerateCopyLine; private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemEnumerateCopyList; private System.Windows.Forms.ContextMenuStrip contextMenuStripElements; private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemElementsCopyLine; private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemElementsCopyList; private System.Windows.Forms.TabControl tabControlElement; private System.Windows.Forms.TabPage tabPageElementAttibutes; private System.Windows.Forms.TabPage tabPageElement; private System.Windows.Forms.PropertyGrid propertyGridSchemaObject; private System.Windows.Forms.ToolStripMenuItem addToDiagrammToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripMenuItem4; private System.Windows.Forms.ToolTip toolTip; private System.Windows.Forms.ToolStripMenuItem validateXMLFileToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem openURLToolStripMenuItem; } } xsddiagram-0.16/test-mono.sh0000644000175000017500000000307712077774414015742 0ustar mathieumathieuecho XSDDiagram.exe -r COLLADA -e 3 http://www.khronos.org/files/collada_schema_1_4_1.xsd mono XSDDiagram.exe -r COLLADA -e 3 http://www.khronos.org/files/collada_schema_1_4_1.xsd echo echo XSDDiagram.exe Tests/COLLADASchema_141.xsd mono XSDDiagram.exe Tests/COLLADASchema_141.xsd echo echo XSDDiagram.exe -r sphere -r COLLADA -e 3 Tests/COLLADASchema_141.xsd mono XSDDiagram.exe -r sphere -r COLLADA -e 3 Tests/COLLADASchema_141.xsd echo echo XSDDiagram.exe -o Tests/file.png -r COLLADA -e 3 -z 200 Tests/COLLADASchema_141.xsd mono XSDDiagram.exe -o Tests/file.png -r COLLADA -e 3 -z 200 Tests/COLLADASchema_141.xsd echo echo XSDDiagram.exe -o Tests/file.jpg -r COLLADA -e 3 -z 200 Tests/COLLADASchema_141.xsd mono XSDDiagram.exe -o Tests/file.jpg -r COLLADA -e 3 -z 200 Tests/COLLADASchema_141.xsd echo echo XSDDiagram.exe -o Tests/file.svg -r COLLADA -e 3 Tests/COLLADASchema_141.xsd mono XSDDiagram.exe -o Tests/file.svg -r COLLADA -e 3 Tests/COLLADASchema_141.xsd echo echo XSDDiagram.exe -os png -r COLLADA -e 3 -y Tests/COLLADASchema_141.xsd > Tests/stdout.png mono XSDDiagram.exe -os png -r COLLADA -e 3 -y Tests/COLLADASchema_141.xsd > Tests/stdout.png echo echo XSDDiagram.exe -os jpg -r COLLADA -e 3 -y Tests/COLLADASchema_141.xsd > Tests/stdout.jpg mono XSDDiagram.exe -os jpg -r COLLADA -e 3 -y Tests/COLLADASchema_141.xsd > Tests/stdout.jpg echo echo XSDDiagram.exe -os svg -r COLLADA -e 3 -y Tests/COLLADASchema_141.xsd > Tests/stdout.svg mono XSDDiagram.exe -os svg -r COLLADA -e 3 -y Tests/COLLADASchema_141.xsd > Tests/stdout.svg echo echo XSDDiagram.exe -h mono XSDDiagram.exe -h xsddiagram-0.16/Properties/0000755000175000017500000000000012077772656015614 5ustar mathieumathieuxsddiagram-0.16/Properties/Settings.settings0000644000175000017500000000037111531463334021157 0ustar mathieumathieu xsddiagram-0.16/Properties/Resources.Designer.cs0000644000175000017500000002217611673402560021645 0ustar mathieumathieu//------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:4.0.30319.239 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // //------------------------------------------------------------------------------ namespace XSDDiagram.Properties { using System; /// /// A strongly-typed resource class, for looking up localized strings, etc. /// // This class was auto-generated by the StronglyTypedResourceBuilder // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { private static global::System.Resources.ResourceManager resourceMan; private static global::System.Globalization.CultureInfo resourceCulture; [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] internal Resources() { } /// /// Returns the cached ResourceManager instance used by this class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("XSDDiagram.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; } } /// /// Overrides the current thread's CurrentUICulture property for all /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } set { resourceCulture = value; } } internal static System.Drawing.Bitmap Delete { get { object obj = ResourceManager.GetObject("Delete", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } internal static System.Drawing.Bitmap Expand { get { object obj = ResourceManager.GetObject("Expand", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } internal static System.Drawing.Bitmap Forward { get { object obj = ResourceManager.GetObject("Forward", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } internal static System.Drawing.Bitmap Help { get { object obj = ResourceManager.GetObject("Help", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } internal static System.Drawing.Icon Icon32 { get { object obj = ResourceManager.GetObject("Icon32", resourceCulture); return ((System.Drawing.Icon)(obj)); } } internal static System.Drawing.Bitmap Minus { get { object obj = ResourceManager.GetObject("Minus", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } internal static System.Drawing.Bitmap Move { get { object obj = ResourceManager.GetObject("Move", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } internal static System.Drawing.Bitmap New { get { object obj = ResourceManager.GetObject("New", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } internal static System.Drawing.Bitmap Open { get { object obj = ResourceManager.GetObject("Open", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } internal static System.Drawing.Bitmap Panel { get { object obj = ResourceManager.GetObject("Panel", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } internal static System.Drawing.Bitmap Plus { get { object obj = ResourceManager.GetObject("Plus", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } internal static System.Drawing.Bitmap PlusPlus { get { object obj = ResourceManager.GetObject("PlusPlus", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } internal static System.Drawing.Bitmap Print { get { object obj = ResourceManager.GetObject("Print", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } internal static System.Drawing.Bitmap PrintPreview { get { object obj = ResourceManager.GetObject("PrintPreview", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } internal static System.Drawing.Bitmap Properties { get { object obj = ResourceManager.GetObject("Properties", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// Looks up a localized string similar to XSD Diagram is a free xml schema definition diagram viewer (http://regis.cosnier.free.fr). /// ///Version 0.10 Copyright (c) 2006-2011 Regis Cosnier, All Rights Reserved. /// ///This program is free software and may be distributed ///according to the terms of the GNU General Public License (GPL). /// /// ///FEATURES: /// ///- GPL (Part of the source code are dual licensed with LGPL and MS-PL) ///- Need of the Microsoft Framework.NET 2.0 (if not already install) or Mono ///- Display the elements, the groups and the attributes ///- Sh [rest of string was truncated]";. /// internal static string ReadMe { get { return ResourceManager.GetString("ReadMe", resourceCulture); } } internal static System.Drawing.Bitmap Reference { get { object obj = ResourceManager.GetObject("Reference", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } internal static System.Drawing.Bitmap Save { get { object obj = ResourceManager.GetObject("Save", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } internal static System.Drawing.Bitmap SaveGreen { get { object obj = ResourceManager.GetObject("SaveGreen", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } internal static System.Drawing.Bitmap Search { get { object obj = ResourceManager.GetObject("Search", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } internal static System.Drawing.Bitmap Stop { get { object obj = ResourceManager.GetObject("Stop", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } internal static System.Drawing.Bitmap Views { get { object obj = ResourceManager.GetObject("Views", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } internal static System.Drawing.Bitmap XSDDiagram { get { object obj = ResourceManager.GetObject("XSDDiagram", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } } } xsddiagram-0.16/Properties/Settings.Designer.cs0000644000175000017500000000210311673402560021457 0ustar mathieumathieu//------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:4.0.30319.239 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // //------------------------------------------------------------------------------ namespace XSDDiagram.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); public static Settings Default { get { return defaultInstance; } } } } xsddiagram-0.16/Properties/Resources.resx0000644000175000017500000002637211531463334020463 0ustar mathieumathieu text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ..\Icons\XSDDiagram.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\PrintPreview.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Minus.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Search.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\PlusPlus.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Properties.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Help.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Panel.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\SaveGreen.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Print.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Plus.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Expand.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\New.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Open.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Save.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Reference.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Forward.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Views.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Move.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Delete.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Icons\XSDDiagram.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Stop.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\ReadMe.txt;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252 xsddiagram-0.16/Properties/AssemblyInfo.cs0000644000175000017500000000252712077772656020544 0ustar mathieumathieuusing System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("XSD Diagram")] [assembly: AssemblyDescription("XSD Diagram is a free Xml Schema Definition diagram viewer")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("XSD Diagram")] [assembly: AssemblyCopyright("Copyright © 2006-2013 Regis Cosnier, All Rights Reserved.")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // Setting ComVisible to false makes the types in this assembly not visible // to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type. [assembly: ComVisible(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("d9e98494-5509-488f-b4a7-36c4a2ea9071")] // Version information for an assembly consists of the following four values: // // Major Version // Minor Version // Build Number // Revision // [assembly: AssemblyVersion("0.16.0.0")] [assembly: AssemblyFileVersion("0.16.0.0")] xsddiagram-0.16/LoginPromptForm.resx0000644000175000017500000003040512056405026017440 0ustar mathieumathieu text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AO8AAAD/AAAA/wAAAP8AAAD/AAAA7wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA/5T/AP+U/wD/lP8A/5T/AP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA/wAAAP8AAAD/lP8A/5T/AP+U/wD/lP8A/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAD/AAAAAAAAAP+U/wD/lP8A/5T/AP+U/wD/AAAA/wAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAzwAAAP8AAAD/AAAA/wAAAP8AAADPAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAADvAAAA/wAAAP8AAAD/AAAA/wAAAO8AAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAP//DAD//wwA//8MAP//DAD/AAAA/wAAAAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA7wAA AAAAAAAAAAAAAAAAAAAAAAAAAAAA//8MAP//DAD//wwA//8MAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//Pz///z8///8/P///Pz///z8 //8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wwA//8MAP//DAD//wwA/wAAAP8AAAAAAAAA/wAA AAAAAADvAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA7wAAAAAAAAD/AAAA/wAAAP/8/P///Pz///z8 ///8/P///Pz//wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM8AAAD/AAAA/wAAAP8AAAD/AAAAzwAA AAAAAAD/AAAAAAAAAP+5t7z/ube8/7m3vP+5t7z/ube8/7m3vP8AAAD/AAAAAAAAAP8AAAAAAAAAzwAA AP8AAAD/AAAA/wAAAP8AAAD/AAAAzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAP8AAAD/AAAA/7m3vP+5t7z/ube8/7m3vP+5t7z/ube8/wAAAP8AAAD/AAAA/wAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/ube8/7m3vP+5t7z/ube8/7m3vP+5t7z/AAAA/wAA AAAAAAD/AAAAAAAAAO8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAO8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAADPAAAAAAAAAP8AAAD/AAAA//+OBf//jgX//44F//+OBf//jgX/AAAA/wAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//44F//+OBf//jgX//44F//+OBf8AAAD/AAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACLAAAA/wAAAP8AAACLAAAAAAAAAAAAAAAAAAAAQAAA AP8AAAD/AAAA/wAAAEAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIsAAAAAAAAAAAAAAAAAAACLAAAA/wAA AP8AAAD/AAAAiwAAAP8AAAD/AAAAQAAAAAAA0P+LAND//wDQ//8Agp/eAAAA/wAAAP8AAABAAND/QADQ //8A0P//AND//wA0QP8A0P//AND//wDQ//8A0P//AND//wDQ/4sAAAC3AAAA/wAAALcA0P+LAND//wDQ //8A0P//ALvmmgDQ//8A0P//ADRA/wAAAP8AAABAAAAAAAAAAAAA0P+3AND//wDQ//8ANED/AAAA/wAA AP8A0P+3AND//wDQ//8AUGP/ACIqwADQ//8AAAAAAAAAAAAAAAAA0P+3AND//wC03dMAAAD/AFBj/wDQ //8A0P//ABog/wAAAIsA0P+LAND//wDQ//8ANED/AAAA/wAAAEAAAAAAAAAAAADQ/yAA0P//AND//wDQ //8AAAD/AFBj/wDQ//8A0P//AJW3/wAAAP8AAAAgAAAAAAAAAAAAAAAAAAAAAACAnaAA0P//AND//wA0 QP8A0P//AND//wBxi/8AAAD/AAAAiwDQ/0AA0P//AND//wA0QP8AAAD/AAAAQAAAAAAAAAAAAAAAAADQ /2MA0P//AND//wBhd9MA0P//AND//wDQ//8AGiD/AAAAiwAAAAAAAAAAAAAAAACAnaAA0P//AND//wDQ //8A0P//AFBj/wDQ//8A0P//AHGL/wAAAP8AAACLAND/QADQ//8A0P//ADRA/wAAAP8AAABAAAAAAAAA AAAAAAAAAAAAAADQ/7cA0P//AND//wDQ//8A0P//AHGL/wAAAP8AAAAAAAAAAADQ/2MA0P//AND//wDQ //8A0P//AND//wCr0t4A0P8gAND//wDQ//8AcYv/AAAA/wAAAIsA0P9AAND//wDQ//8ANED/AAAA/wAA AEAAAAAAAAAAAAAAAAAAAAAAAND/QADQ//8A0P//AND//wDQ//8AAAD/AAAAiwAAAAAA0P8gAND//wDQ //8A0P//AND//wCPr8oAAAAAAAAAAADQ/yAA0P//AND//wCCn94AAAD/AAAAtwDQ/0AA0P//AND//wA0 QP8AAAD/AAAAQAAAAAAAAAAAAAAAAAAAAAAA0P9AAND//wDQ//8A0P//AHGL/wAAAP8AAAD/AAAAQADQ /yAA0P//AND//wCPr8oAAAD/AAAA/wAAAAAAAAAAAAAAAACVt/8A0P//AL3oyQAAAP8AAAD/AHaRcADQ //8A0P//ADRA/wAAAP8AAABAAAAAAAAAAAAAAAAAAAAAAADQ/7cA0P//AND//wDQ//8A0P//ADRA/wAA AP8AAAD/AAAAAADQ/4sA0P//AND//wAAAGMAAAD/AAAA/wDQ//8AAAD/ADRA/wDQ//8A0P//AHaRcAAA AP8ANED/AND//wDQ//8ANED/AAAA/wAAAEAAAAAAAAAAAAAAAAAA0P9jAND//wDQ//8Albf/AND//wDQ //8A0P//AAAA/wAAAP8AAACLAAAAAADQ/2MA0P//AND//wDQ//8A0P//AND//wAAAAAAAAAAAND/QADQ //8A0P//AND//wDQ//8A0P//AND//wA0QP8AAAD/AAAAQAAAAAAAAAAAAND/IADQ//8A0P//AND//wAa IP8Ab4m4AND//wDQ//8Agp/eAAAA/wAAAP8AAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAND/QADQ//8A0P//ADRA/wAAAP8AAABAAAAAAAAAAAAA0P+LAND//wDQ //8AcYv/AAAA/wAAAAAA0P+3AND//wDQ//8ANED/AAAA/wAAAP8AAAAgAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0P9AAND//wDQ//8ANED/AAAA/wAAAEAAAAAAAND/YwDQ //8A0P//AND//wAAAAAAAAAAAAAAAADQ/yAA0P//AND//wDQ//8A0P8gAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ/0AA0P//AND//wA0QP8AAAD/AAAAQAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAND/QADQ//8A0P//AND/QAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA////////////4f///8D///8A////QP///2H//8N///+Bf/wfgH/4D4Fg YA/DQCwf/wAP///ALB//4GAP///4D//////nxB8TkwBsQ8EXoMPAH4DD5D4Aw/A4MMPwcPLD8DJyQ/AZ AQPgHBwDwk//w8MH/8OPH//D////z/////8= xsddiagram-0.16/MainForm.resx0000644000175000017500000003405012063163074016054 0ustar mathieumathieu text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 17, 17 143, 17 271, 17 197, 61 384, 61 577, 61 17, 61 761, 61 102 AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AO8AAAD/AAAA/wAAAP8AAAD/AAAA7wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA/5T/AP+U/wD/lP8A/5T/AP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA/wAAAP8AAAD/lP8A/5T/AP+U/wD/lP8A/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAD/AAAAAAAAAP+U/wD/lP8A/5T/AP+U/wD/AAAA/wAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAzwAAAP8AAAD/AAAA/wAAAP8AAADPAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAADvAAAA/wAAAP8AAAD/AAAA/wAAAO8AAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAP//DAD//wwA//8MAP//DAD/AAAA/wAAAAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA7wAA AAAAAAAAAAAAAAAAAAAAAAAAAAAA//8MAP//DAD//wwA//8MAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//Pz///z8///8/P///Pz///z8 //8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wwA//8MAP//DAD//wwA/wAAAP8AAAAAAAAA/wAA AAAAAADvAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA7wAAAAAAAAD/AAAA/wAAAP/8/P///Pz///z8 ///8/P///Pz//wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM8AAAD/AAAA/wAAAP8AAAD/AAAAzwAA AAAAAAD/AAAAAAAAAP+5t7z/ube8/7m3vP+5t7z/ube8/7m3vP8AAAD/AAAAAAAAAP8AAAAAAAAAzwAA AP8AAAD/AAAA/wAAAP8AAAD/AAAAzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAP8AAAD/AAAA/7m3vP+5t7z/ube8/7m3vP+5t7z/ube8/wAAAP8AAAD/AAAA/wAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/ube8/7m3vP+5t7z/ube8/7m3vP+5t7z/AAAA/wAA AAAAAAD/AAAAAAAAAO8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAO8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAADPAAAAAAAAAP8AAAD/AAAA//+OBf//jgX//44F//+OBf//jgX/AAAA/wAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//44F//+OBf//jgX//44F//+OBf8AAAD/AAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACLAAAA/wAAAP8AAACLAAAAAAAAAAAAAAAAAAAAQAAA AP8AAAD/AAAA/wAAAEAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIsAAAAAAAAAAAAAAAAAAACLAAAA/wAA AP8AAAD/AAAAiwAAAP8AAAD/AAAAQAAAAAAA0P+LAND//wDQ//8Agp/eAAAA/wAAAP8AAABAAND/QADQ //8A0P//AND//wA0QP8A0P//AND//wDQ//8A0P//AND//wDQ/4sAAAC3AAAA/wAAALcA0P+LAND//wDQ //8A0P//ALvmmgDQ//8A0P//ADRA/wAAAP8AAABAAAAAAAAAAAAA0P+3AND//wDQ//8ANED/AAAA/wAA AP8A0P+3AND//wDQ//8AUGP/ACIqwADQ//8AAAAAAAAAAAAAAAAA0P+3AND//wC03dMAAAD/AFBj/wDQ //8A0P//ABog/wAAAIsA0P+LAND//wDQ//8ANED/AAAA/wAAAEAAAAAAAAAAAADQ/yAA0P//AND//wDQ //8AAAD/AFBj/wDQ//8A0P//AJW3/wAAAP8AAAAgAAAAAAAAAAAAAAAAAAAAAACAnaAA0P//AND//wA0 QP8A0P//AND//wBxi/8AAAD/AAAAiwDQ/0AA0P//AND//wA0QP8AAAD/AAAAQAAAAAAAAAAAAAAAAADQ /2MA0P//AND//wBhd9MA0P//AND//wDQ//8AGiD/AAAAiwAAAAAAAAAAAAAAAACAnaAA0P//AND//wDQ //8A0P//AFBj/wDQ//8A0P//AHGL/wAAAP8AAACLAND/QADQ//8A0P//ADRA/wAAAP8AAABAAAAAAAAA AAAAAAAAAAAAAADQ/7cA0P//AND//wDQ//8A0P//AHGL/wAAAP8AAAAAAAAAAADQ/2MA0P//AND//wDQ //8A0P//AND//wCr0t4A0P8gAND//wDQ//8AcYv/AAAA/wAAAIsA0P9AAND//wDQ//8ANED/AAAA/wAA AEAAAAAAAAAAAAAAAAAAAAAAAND/QADQ//8A0P//AND//wDQ//8AAAD/AAAAiwAAAAAA0P8gAND//wDQ //8A0P//AND//wCPr8oAAAAAAAAAAADQ/yAA0P//AND//wCCn94AAAD/AAAAtwDQ/0AA0P//AND//wA0 QP8AAAD/AAAAQAAAAAAAAAAAAAAAAAAAAAAA0P9AAND//wDQ//8A0P//AHGL/wAAAP8AAAD/AAAAQADQ /yAA0P//AND//wCPr8oAAAD/AAAA/wAAAAAAAAAAAAAAAACVt/8A0P//AL3oyQAAAP8AAAD/AHaRcADQ //8A0P//ADRA/wAAAP8AAABAAAAAAAAAAAAAAAAAAAAAAADQ/7cA0P//AND//wDQ//8A0P//ADRA/wAA AP8AAAD/AAAAAADQ/4sA0P//AND//wAAAGMAAAD/AAAA/wDQ//8AAAD/ADRA/wDQ//8A0P//AHaRcAAA AP8ANED/AND//wDQ//8ANED/AAAA/wAAAEAAAAAAAAAAAAAAAAAA0P9jAND//wDQ//8Albf/AND//wDQ //8A0P//AAAA/wAAAP8AAACLAAAAAADQ/2MA0P//AND//wDQ//8A0P//AND//wAAAAAAAAAAAND/QADQ //8A0P//AND//wDQ//8A0P//AND//wA0QP8AAAD/AAAAQAAAAAAAAAAAAND/IADQ//8A0P//AND//wAa IP8Ab4m4AND//wDQ//8Agp/eAAAA/wAAAP8AAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAND/QADQ//8A0P//ADRA/wAAAP8AAABAAAAAAAAAAAAA0P+LAND//wDQ //8AcYv/AAAA/wAAAAAA0P+3AND//wDQ//8ANED/AAAA/wAAAP8AAAAgAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0P9AAND//wDQ//8ANED/AAAA/wAAAEAAAAAAAND/YwDQ //8A0P//AND//wAAAAAAAAAAAAAAAADQ/yAA0P//AND//wDQ//8A0P8gAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ/0AA0P//AND//wA0QP8AAAD/AAAAQAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAND/QADQ//8A0P//AND/QAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA////////////4f///8D///8A////QP///2H//8N///+Bf/wfgH/4D4Fg YA/DQCwf/wAP///ALB//4GAP///4D//////nxB8TkwBsQ8EXoMPAH4DD5D4Aw/A4MMPwcPLD8DJyQ/AZ AQPgHBwDwk//w8MH/8OPH//D////z/////8= xsddiagram-0.16/LICENSE-LGPL.txt0000644000175000017500000001721012056373716016027 0ustar mathieumathieu GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. 0. Additional Definitions. As used herein, "this License" refers to version 3 of the GNU Lesser General Public License, and the "GNU GPL" refers to version 3 of the GNU General Public License. "The Library" refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. An "Application" is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. A "Combined Work" is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the "Linked Version". The "Minimal Corresponding Source" for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. The "Corresponding Application Code" for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. 1. Exception to Section 3 of the GNU GPL. You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. 2. Conveying Modified Versions. If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. 3. Object Code Incorporating Material from Library Header Files. The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the object code with a copy of the GNU GPL and this license document. 4. Combined Works. You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the Combined Work with a copy of the GNU GPL and this license document. c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. d) Do one of the following: 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) 5. Combined Libraries. You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 6. Revised Versions of the GNU Lesser General Public License. The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. xsddiagram-0.16/XSDDiagram2012.sln0000644000175000017500000000565612077777700016435 0ustar mathieumathieu Microsoft Visual Studio Solution File, Format Version 12.00 # Visual C# Express 2010 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XSDDiagram2010", "XSDDiagram2010.csproj", "{B212CAFE-B4C8-44CB-B82D-AA32B55D2719}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XSDDiagramConsole2010", "XSDDiagramConsole\XSDDiagramConsole2010.csproj", "{1D732DFD-D631-4BFB-8057-C34B9327A08F}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XSDDiagrams2010", "XSDDiagrams\XSDDiagrams2010.csproj", "{6D3DACE7-D51B-4259-883A-6899BF4D52E2}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {B212CAFE-B4C8-44CB-B82D-AA32B55D2719}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B212CAFE-B4C8-44CB-B82D-AA32B55D2719}.Debug|Any CPU.Build.0 = Debug|Any CPU {B212CAFE-B4C8-44CB-B82D-AA32B55D2719}.Debug|x86.ActiveCfg = Debug|x86 {B212CAFE-B4C8-44CB-B82D-AA32B55D2719}.Debug|x86.Build.0 = Debug|x86 {B212CAFE-B4C8-44CB-B82D-AA32B55D2719}.Release|Any CPU.ActiveCfg = Release|Any CPU {B212CAFE-B4C8-44CB-B82D-AA32B55D2719}.Release|Any CPU.Build.0 = Release|Any CPU {B212CAFE-B4C8-44CB-B82D-AA32B55D2719}.Release|x86.ActiveCfg = Release|x86 {B212CAFE-B4C8-44CB-B82D-AA32B55D2719}.Release|x86.Build.0 = Release|x86 {1D732DFD-D631-4BFB-8057-C34B9327A08F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1D732DFD-D631-4BFB-8057-C34B9327A08F}.Debug|Any CPU.Build.0 = Debug|Any CPU {1D732DFD-D631-4BFB-8057-C34B9327A08F}.Debug|x86.ActiveCfg = Debug|x86 {1D732DFD-D631-4BFB-8057-C34B9327A08F}.Debug|x86.Build.0 = Debug|x86 {1D732DFD-D631-4BFB-8057-C34B9327A08F}.Release|Any CPU.ActiveCfg = Release|Any CPU {1D732DFD-D631-4BFB-8057-C34B9327A08F}.Release|Any CPU.Build.0 = Release|Any CPU {1D732DFD-D631-4BFB-8057-C34B9327A08F}.Release|x86.ActiveCfg = Release|x86 {1D732DFD-D631-4BFB-8057-C34B9327A08F}.Release|x86.Build.0 = Release|x86 {6D3DACE7-D51B-4259-883A-6899BF4D52E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6D3DACE7-D51B-4259-883A-6899BF4D52E2}.Debug|Any CPU.Build.0 = Debug|Any CPU {6D3DACE7-D51B-4259-883A-6899BF4D52E2}.Debug|x86.ActiveCfg = Debug|x86 {6D3DACE7-D51B-4259-883A-6899BF4D52E2}.Debug|x86.Build.0 = Debug|x86 {6D3DACE7-D51B-4259-883A-6899BF4D52E2}.Release|Any CPU.ActiveCfg = Release|Any CPU {6D3DACE7-D51B-4259-883A-6899BF4D52E2}.Release|Any CPU.Build.0 = Release|Any CPU {6D3DACE7-D51B-4259-883A-6899BF4D52E2}.Release|x86.ActiveCfg = Release|x86 {6D3DACE7-D51B-4259-883A-6899BF4D52E2}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(MonoDevelopProperties) = preSolution StartupItem = XSDDiagram.csproj EndGlobalSection EndGlobal xsddiagram-0.16/OpenURLForm.cs0000644000175000017500000000133212077772656016116 0ustar mathieumathieuusing System; using System.Windows.Forms; namespace XSDDiagram { public partial class OpenURLForm : Form { public OpenURLForm(string url) { InitializeComponent(); this.textBoxURL.Text = url; } public string URL { get; set; } protected override void OnLoad(EventArgs e) { base.OnLoad(e); this.textBoxURL.Text = URL; } protected override void OnClosed(EventArgs e) { if (this.DialogResult == System.Windows.Forms.DialogResult.OK) { URL = this.textBoxURL.Text; } base.OnClosed(e); } } }