Skip to content

Instantly share code, notes, and snippets.

@EddieDemon
Created April 17, 2020 15:37
Show Gist options
  • Save EddieDemon/d666e524d279269edd42860414a56410 to your computer and use it in GitHub Desktop.
Save EddieDemon/d666e524d279269edd42860414a56410 to your computer and use it in GitHub Desktop.
LinqToXsd double output
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="C" targetNamespace="C">
<xs:complexType name="FirstAbstractBase" abstract="true">
<xs:annotation>
<xs:documentation>
Doc, doc, doc
</xs:documentation>
</xs:annotation>
<xs:sequence/>
<xs:attribute name="echo" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>
Doc, doc, doc
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="SecondAbstractBase" abstract="true">
<xs:annotation>
<xs:documentation>
Doc, doc doc
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="FirstAbstractBase">
<xs:sequence/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
LinqToXsd gen Child1.xsd,Child2.xsd -o Output -c Build.config
<?xml version="1.0" encoding="utf-8"?>
<Configuration xmlns="http://www.microsoft.com/xml/schema/linq">
<Namespaces>
<Namespace DefaultVisibility="public" Schema="C" Clr="DemoNamespace" />
</Namespaces>
<Validation>
<VerifyRequired>false</VerifyRequired>
</Validation>
<Transformation>
<Deanonymize strict="false" />
</Transformation>
</Configuration>
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs = "http://www.w3.org/2001/XMLSchema"
xmlns:core = "C"
xmlns = ""
attributeFormDefault = "qualified"
elementFormDefault = "qualified">
<xs:import namespace = "C"
schemaLocation = "Base.xsd"/>
<xs:include schemaLocation="Types.xsd"/>
<xs:complexType name="ChildType10">
<xs:annotation>
<xs:documentation>
Doc, doc, doc
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="core:SecondAbstractBase">
<xs:sequence/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ChildType11">
<xs:annotation>
<xs:appinfo>
<asDataModeSupported>true</asDataModeSupported>
<hssDataModeSupported>false</hssDataModeSupported>
</xs:appinfo>
<xs:documentation>
Doc, doc, doc
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="core:SecondAbstractBase">
<xs:sequence>
<xs:element name="userId" type="UserId"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs = "http://www.w3.org/2001/XMLSchema"
xmlns:core = "C"
xmlns = ""
attributeFormDefault = "qualified"
elementFormDefault = "qualified">
<xs:import namespace = "C"
schemaLocation = "Base.xsd"/>
<xs:include schemaLocation="Types.xsd"/>
<xs:complexType name="ChildType20">
<xs:annotation>
<xs:documentation>
Doc, doc, doc
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="core:SecondAbstractBase">
<xs:sequence/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ChildType21">
<xs:annotation>
<xs:appinfo>
<asDataModeSupported>true</asDataModeSupported>
<hssDataModeSupported>false</hssDataModeSupported>
</xs:appinfo>
<xs:documentation>
Doc, doc, doc
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="core:SecondAbstractBase">
<xs:sequence>
<xs:element name="userId" type="UserId"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:core="C" attributeFormDefault="qualified" elementFormDefault="qualified">
<xs:simpleType name="UserId">
<xs:annotation>
<xs:documentation>
Doc, doc, doc
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:minLength value="1"/>
<xs:maxLength value="161"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment