How to Draw this xsd element in Tikz?
Here my WME:
\documentclass[11pt,landscape]{article}
\usepackage{tikz}
\usetikzlibrary{shapes.multipart}
\def\vstrut{\vrule height 0.75ex depth 0.75ex width 0pt}
\def\hstrut{\vrule height 0ex depth 0ex width 3mm}
\begin{document}
\newsavebox{\figone}
\savebox{\figone}{%
\begin{tikzpicture}
\fill (-2mm,-1mm) rectangle (2mm,1mm);
\fill[yshift=3mm] (-2mm,-1mm) rectangle (2mm,1mm);
\fill[yshift=-3mm ] (-2mm,-1mm) rectangle (2mm,1mm);
\draw[thick] (-6mm,0) -- (-2mm,0) (6mm,0) -- (2mm,0) ;
\draw[thick] (-2mm,-3mm) -- ++(-2mm,0) -- ++(0mm,6mm)--++(2mm,0);
\draw[thick] (2mm,-3mm) -- ++(2mm,0) -- ++(0mm,6mm)--++(-2mm,0);
\end{tikzpicture}%
}%
\newsavebox{\figtwo}
\savebox{\figtwo}{%
\begin{tikzpicture}
\draw (0mm,-3mm)--++(0,6mm)--++(3mm,3mm)--++(15mm,0)--++(3mm,-3mm)--++(0,-6mm)--++(-3mm,-3mm)--++(-15mm,0)--cycle;
\end{tikzpicture}%
}
\newsavebox{\figfree}
\savebox{\figfree}{%
\begin{tikzpicture}
\draw[thick] (-7.5mm,0) -- (6.5mm,0);
\fill (-6mm,-1mm) rectangle (-3mm,1mm);
\fill (-2mm,-1mm) rectangle (1mm,1mm);
\fill (2mm,-1mm) rectangle (5mm,1mm);
\end{tikzpicture}%
}%
\newsavebox{\tiret}
\savebox{\tiret}{%
\begin{tikzpicture}
\draw[thick] (-2mm,0mm)--++(4mm,0);
\end{tikzpicture}%
}%
\newsavebox{\connect}
\savebox{\connect}{%
\begin{tikzpicture}
\node{\usebox\figone};
\node[inner sep=0pt] (ft){\usebox\figtwo};
\node[draw,minimum size=6mm,anchor=center,inner sep=0pt,fill=white,inner xsep=0](m) at (ft.east){};
\node[inner sep=0pt] at (m) {\usebox\tiret};
\end{tikzpicture}%
}
\newsavebox{\connectII}
\savebox{\connectII}{%
\begin{tikzpicture}
\node{\usebox\figfree};
\node[inner sep=0pt] (ft){\usebox\figtwo};
\node[draw,minimum size=6mm,anchor=center,inner sep=0pt,fill=white,inner xsep=0](m) at (ft.east){};
\node[inner sep=0pt] at (m) {\usebox\tiret};
\end{tikzpicture}%
}
\tikzset{split style/.style={rectangle split, rectangle split parts=2, draw,rectangle split part align={left}}}
\tikzset{square/.style={draw,minimum size=6mm,anchor=center,inner xsep=0pt,fill=white}}
\begin{tikzpicture}[font=\small,scale=.75,transform shape]
\node[split style] (model)
{\vstrut\textbf{model} \qquad 0\ldots$\infty$\hstrut
\nodepart{two} \vstrut type = Tmodel\hstrut};
\node[square] (model_t) at (model.east) {\usebox\tiret};
\node[inner sep=0,anchor=west] (model_c) at ([xshift=.5cm]model_t.east){\usebox\connectII};
\draw (model_t) -- (model_c);
\node[xshift=-0.15cm, yshift=-1cm] (model_ct) at (model_c){1\ldots1};
\end{tikzpicture}
\end{document}
My result: